aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java50
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java46
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ResourceReqDetails.java2
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ServiceReqDetails.java7
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/enums/ArtifactTypeEnum.java2
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/artifacts/DownloadComponentArt.java6
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/category/CatalogDataApiTest.java99
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java22
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/HealthCheckAPI.java68
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java4
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/CsarUtilsTest.java83
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java39
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ToscaTemplateVersionTest.java67
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java8
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/resource/GetLeftPaletteTest.java193
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/service/ServiceComponentInstanceCRUDTest.java75
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/DistributionUtils.java6
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java50
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/general/ElementFactory.java8
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java10
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java12
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CommonRestUtils.java23
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResourceRestUtils.java14
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java2
-rw-r--r--asdc-tests/src/test/resources/CI/tests/importToscaResourceByCreateUrl/loadBalancerTestVersion.yml6
-rw-r--r--asdctool/pom.xml105
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1604/ServiceMigration.java5
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707ArtifactUuidFix.java4
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707Config.java5
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707MissingInfoFix.java220
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/ComponentMigration.java4
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/NodeTemplateMissingDataResolver.java129
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java43
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java39
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java133
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java36
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java92
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java15
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java32
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/ServiceValidationTask.java25
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java13
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/VfValidationTask.java25
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java106
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java26
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java28
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java59
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java93
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResult.java45
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/main/MigrationMenu.java63
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java47
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/config/MigrationSpringConfig.java59
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/DBVersion.java95
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/MigrationException.java13
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationTool.java62
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutionResult.java70
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutor.java15
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImpl.java47
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/Migration.java14
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/MigrationResult.java31
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/main/MigrationMenu.java100
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/MigrationResolver.java16
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolver.java45
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoService.java34
-rw-r--r--asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/ExampleMigration.java27
-rw-r--r--asdctool/src/main/resources/config/configuration.yaml1
-rw-r--r--asdctool/src/main/resources/config/logback.xml15
-rw-r--r--asdctool/src/main/resources/scripts/postMigration1707Fix.sh35
-rw-r--r--asdctool/src/main/resources/scripts/sdc-migration.sh36
-rw-r--r--asdctool/src/main/resources/scripts/validationTool.sh31
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/DummyMigrationFactory.java72
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/DBVersionTest.java57
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationToolTest.java101
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImplTest.java47
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolverTest.java84
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/scanner/ClassScanner.java81
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoServiceTest.java55
-rw-r--r--asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/task/MigrationTasksTest.java56
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogic.java138
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java12
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CassandraHealthCheck.java189
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java130
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java62
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogic.java56
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java31
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/HealthCheckBusinessLogic.java361
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java7
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogic.java282
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ProductComponentInstanceBusinessLogic.java4
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java2019
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java27
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java140
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceComponentInstanceBusinessLogic.java4
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/VFComponentInstanceBusinessLogic.java12
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransition.java9
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogic.java55
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java14
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java2
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java2
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentServlet.java2
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java44
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java2
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/RepresentationUtils.java36
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java60
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java71
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java12
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaMetadata.java27
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/common/transaction/mngr/RollbackManager.java63
-rw-r--r--catalog-be/src/main/resources/config/SDC.zipbin30057 -> 29275 bytes
-rw-r--r--catalog-be/src/main/resources/config/configuration.yaml27
-rw-r--r--catalog-be/src/main/resources/config/error-configuration.yaml518
-rw-r--r--catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml53
-rw-r--r--catalog-be/src/main/resources/import/tosca/data-types/dataTypes.zipbin5277 -> 5408 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types.zipbin72549 -> 0 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.json21
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.yml11
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.zipbin0 -> 320 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.yml20
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.zipbin790 -> 780 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.json21
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.yml10
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.zipbin0 -> 714 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.json21
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.yml10
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.zipbin0 -> 759 bytes
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py7
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json7
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py110
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py5
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py47
-rw-r--r--catalog-be/src/main/webapp/WEB-INF/web.xml1
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java18
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java16
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java75
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java5
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java49
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/configuration.yaml231
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml535
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java9
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactAccessor.java19
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java11
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksAccessor.java17
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksDao.java73
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/Table.java23
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/tables/MigrationTasksTableDescription.java81
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/TitanDao.java15
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/types/EdgeLabelEnum.java4
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/MigrationTaskEntry.java92
-rw-r--r--catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/auditing/AuditingTypesConstants.java41
-rw-r--r--catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java3
-rw-r--r--catalog-model/pom.xml14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java10
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstInputsMap.java6
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceInput.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceProperty.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/CsarInfo.java89
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/GroupDefinition.java8
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/IComponentInstanceConnectedElement.java5
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/IPropertyInputCommon.java14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/NodeTypeInfo.java55
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/RequirementAndRelationshipPair.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/Service.java18
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadComponentInstanceInfo.java18
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperations.java71
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/BaseOperation.java29
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/GroupsOperation.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/NodeTemplateOperation.java206
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/TopologyTemplateOperation.java7
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementLifecycleOperation.java95
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperation.java96
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaOperationFacade.java4041
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/utils/ModelConverter.java46
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java2
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java7
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java54
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java7
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java1
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java5
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java114
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java5
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatStringValidator.java4
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/KeyValidator.java4
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/StringValidator.java4
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiResourceMetadata.java10
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiServiceMetadata.java20
-rw-r--r--catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperationsTest.java85
-rw-r--r--catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTest.java344
-rw-r--r--catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTestImpl.java74
-rw-r--r--catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/utils/GraphTestUtils.java114
-rw-r--r--catalog-ui/configurations/MenuReadMe.txt2
-rw-r--r--catalog-ui/configurations/dev.js14
-rw-r--r--catalog-ui/configurations/menu.js196
-rw-r--r--catalog-ui/configurations/mock.json14
-rw-r--r--catalog-ui/configurations/prod.js13
-rw-r--r--catalog-ui/pom.xml9
-rw-r--r--catalog-ui/src/app/app.ts42
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/common/style/component-instances-nodes-style.ts11
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.directive.ts60
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.html7
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts8
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts15
-rw-r--r--catalog-ui/src/app/directives/graphs-v2/palette/palette.directive.ts66
-rw-r--r--catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html2
-rw-r--r--catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts5
-rw-r--r--catalog-ui/src/app/directives/structure-tree/structure-tree-directive.html2
-rw-r--r--catalog-ui/src/app/directives/utils/sdc-tags/sdc-tags.less4
-rw-r--r--catalog-ui/src/app/models.ts4
-rw-r--r--catalog-ui/src/app/models/app-config.ts12
-rw-r--r--catalog-ui/src/app/models/categories.ts1
-rw-r--r--catalog-ui/src/app/models/component-metadata.ts6
-rw-r--r--catalog-ui/src/app/models/components/component.ts28
-rw-r--r--catalog-ui/src/app/models/components/displayComponent.ts3
-rw-r--r--catalog-ui/src/app/models/components/product.ts125
-rw-r--r--catalog-ui/src/app/models/components/resource.ts28
-rw-r--r--catalog-ui/src/app/models/components/service.ts6
-rw-r--r--catalog-ui/src/app/models/componentsInstances/componentInstance.ts4
-rw-r--r--catalog-ui/src/app/models/modal.ts16
-rw-r--r--catalog-ui/src/app/models/properties-inputs/input-fe-model.ts2
-rw-r--r--catalog-ui/src/app/models/properties-inputs/property-fe-model.ts10
-rw-r--r--catalog-ui/src/app/models/user.ts10
-rw-r--r--catalog-ui/src/app/modules/service-module.ts2
-rw-r--r--catalog-ui/src/app/modules/view-model-module.ts6
-rw-r--r--catalog-ui/src/app/ng2/app.component.ts4
-rw-r--r--catalog-ui/src/app/ng2/app.module.ts8
-rw-r--r--catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.html3
-rw-r--r--catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.ts58
-rw-r--r--catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.html1
-rw-r--r--catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.less2
-rw-r--r--catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.ts10
-rw-r--r--catalog-ui/src/app/ng2/components/modal/modal.component.html16
-rw-r--r--catalog-ui/src/app/ng2/components/modal/modal.component.ts14
-rw-r--r--catalog-ui/src/app/ng2/components/modal/modal.module.ts19
-rw-r--r--catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.html6
-rw-r--r--catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.less9
-rw-r--r--catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.ts43
-rw-r--r--catalog-ui/src/app/ng2/components/properties-table/properties-table.component.less6
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.module.ts10
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.less3
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts8
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/properties.utils.ts21
-rw-r--r--catalog-ui/src/app/ng2/services/component-services/component.service.ts2
-rw-r--r--catalog-ui/src/app/ng2/services/http.interceptor.service.ts24
-rw-r--r--catalog-ui/src/app/ng2/services/modal.service.ts73
-rw-r--r--catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.html5
-rw-r--r--catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.less58
-rw-r--r--catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.ts30
-rw-r--r--catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.html6
-rw-r--r--catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.less35
-rw-r--r--catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.ts30
-rw-r--r--catalog-ui/src/app/services.ts1
-rw-r--r--catalog-ui/src/app/services/available-icons-service.ts17
-rw-r--r--catalog-ui/src/app/services/components/product-service.ts55
-rw-r--r--catalog-ui/src/app/services/components/utils/composition-left-palette-service.ts45
-rw-r--r--catalog-ui/src/app/services/data-types-service.ts3
-rw-r--r--catalog-ui/src/app/services/entity-service.ts17
-rw-r--r--catalog-ui/src/app/utils/component-factory.ts20
-rw-r--r--catalog-ui/src/app/utils/component-instance-factory.ts10
-rw-r--r--catalog-ui/src/app/utils/constants.ts8
-rw-r--r--catalog-ui/src/app/utils/modals-handler.ts18
-rw-r--r--catalog-ui/src/app/view-models/catalog/catalog-view-model.ts8
-rw-r--r--catalog-ui/src/app/view-models/catalog/catalog.less22
-rw-r--r--catalog-ui/src/app/view-models/dashboard/dashboard-view-model.ts7
-rw-r--r--catalog-ui/src/app/view-models/dashboard/dashboard-view.html14
-rw-r--r--catalog-ui/src/app/view-models/dashboard/dashboard.less7
-rw-r--r--catalog-ui/src/app/view-models/dcae-app/dcae-app.less22
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts13
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html2
-rw-r--r--catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.html18
-rw-r--r--catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.less33
-rw-r--r--catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.ts (renamed from catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view-model.ts)88
-rw-r--r--catalog-ui/src/app/view-models/onboard-vendor/onboard-vendor.less22
-rw-r--r--catalog-ui/src/app/view-models/shared/notification-custom-template.html14
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/activity-log/activity-log.less5
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/attributes/attributes.less2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view-model.ts15
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view.html7
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/composition.less65
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts18
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html4
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view.html25
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details.less3
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts49
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html552
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/general/general.less80
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view.html26
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/icons/icons.less65
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/information-artifacts/information-artifacts.less2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/inputs/inputs.less2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts129
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html40
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less130
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/properties/properties.less2
-rw-r--r--catalog-ui/src/app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less5
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace-view-model.ts46
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace-view.html17
-rw-r--r--catalog-ui/src/app/view-models/workspace/workspace.less63
-rw-r--r--catalog-ui/src/assets/languages/en_US.json5
-rw-r--r--catalog-ui/src/assets/styles/app.less5
-rw-r--r--catalog-ui/src/assets/styles/images/resource-icons/vnfconfiguration.pngbin0 -> 2835 bytes
-rw-r--r--catalog-ui/src/assets/styles/images/sprites/sprite-global.pngbin90334 -> 98178 bytes
-rw-r--r--catalog-ui/src/assets/styles/images/sprites/sprite-product-icons.pngbin132122 -> 0 bytes
-rw-r--r--catalog-ui/src/assets/styles/images/sprites/sprite-resource-icons.pngbin474238 -> 476775 bytes
-rw-r--r--catalog-ui/src/assets/styles/mixins.less4
-rw-r--r--catalog-ui/src/assets/styles/modal.less7
-rw-r--r--catalog-ui/src/assets/styles/notification-template.less53
-rw-r--r--catalog-ui/src/assets/styles/sprite-product-icons.less71
-rw-r--r--catalog-ui/src/assets/styles/sprite-resource-icons.less1
-rw-r--r--catalog-ui/src/assets/styles/sprite.less23
-rw-r--r--catalog-ui/src/assets/styles/svg/source/fit-all.svg5
-rw-r--r--catalog-ui/src/assets/styles/svg/source/minus.svg5
-rw-r--r--catalog-ui/src/assets/styles/svg/source/plus.svg5
-rw-r--r--catalog-ui/src/assets/styles/svg/source/search-magnify.svg5
-rw-r--r--catalog-ui/src/assets/styles/variables-old.less2
-rw-r--r--catalog-ui/src/assets/styles/variables.less1
-rw-r--r--catalog-ui/src/third-party/cytoscape.js-edge-editation/CytoscapeEdgeEditation.js21
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java19
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java2
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/api/Constants.java1
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/api/HealthCheckInfo.java38
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/config/EcompErrorCode.java4
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/util/GeneralUtility.java10
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java30
-rw-r--r--common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java6
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java19
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ResourceMetadataDataDefinition.java21
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ServiceMetadataDataDefinition.java38
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java8
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MapDataDefinition.java12
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RelationshipInstDataDefinition.java16
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RequirementDataDefinition.java6
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java3
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/OriginTypeEnum.java4
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ResourceTypeEnum.java12
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java4
-rw-r--r--common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml2
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/ToscaExtensionYamlUtil.java (renamed from openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/yamlutil/ToscaExtensionYamlUtil.java)29
-rw-r--r--common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java4
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/data.yml107
-rw-r--r--common/openecomp-tosca-datatype/src/main/resources/globalTypes/openecomp/nodes.yml33
-rw-r--r--common/pom.xml11
-rw-r--r--onboarding/pom.xml4
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup143
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup36
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup22
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/activity-log-rest/activity-log-rest-types/src/main/java/org/openecomp/sdcrests/activitylog/types/ActivityType.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup63
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup18
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup24
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/pom.xml60
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/HealthCheck.java46
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/mapping/MapHealthCheckInfoToDto.java49
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/services/HealthCheckImpl.java94
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/pom.xml17
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthCheckStatus.java28
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDto.java61
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDtos.java31
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/MonitoredModules.java29
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/pom.xml24
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml5
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup226
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/src/main/webapp/WEB-INF/beans-services.xml10
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup44
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/src/main/java/org/openecomp/sdcrests/errors/DefaultExceptionMapper.java19
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml1
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup28
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup15
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup21
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup152
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup30
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup23
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup135
-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/EntitlementPoolLimits.java103
-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/LicenseKeyGroupLimits.java101
-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/mapping/LimitCreationDto.java13
-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/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java4
-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/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java3
-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/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java3
-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/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java1
-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/mapping/MapLimitEntityToLimitCreationDto.java12
-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/mapping/MapLimitEntityToLimitDto.java23
-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/mapping/MapLimitRequestDtoToLimitEntity.java75
-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.java178
-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.java179
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup29
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java35
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java16
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java2
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java3
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitEntityDto.java86
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitRequestDto.java96
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup21
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup153
-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/ComponentMonitoringForSwaggerFileUpload.java65
-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/ComponentMonitoringUploads.java91
-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/ComponentUploads.java216
-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/Compute.java131
-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/DeploymentFlavors.java88
-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/Images.java159
-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/VendorSoftwareProducts.java40
-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/MapComponentDataToComponentDto.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/MapComponentEntityToComponentCreationDto.java13
-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/MapComponentRequestDtoToComponentEntity.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/MapComputeDataToComputeDetailsDto.java15
-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/MapComputeDetailsDtoToComputeEntity.java17
-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/MapComputeEntityToComputeCreationDto.java13
-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/MapComputeEntityToComputeDto.java22
-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/MapComputeEntityToVspComputeDto.java20
-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/MapDeploymentFlavorEntityDeploymentFlavorToListResponse.java22
-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/MapDeploymentFlavorEntityToDeploymentFlavorCreationDto.java16
-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/MapDeploymentFlavorEntityToDeploymentFlavorDto.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/mapping/MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity.java20
-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/MapDeploymentFlavorToDeploymentDto.java16
-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/MapImageDataToImageDto.java22
-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/MapImageEntityToImageCreationDto.java16
-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/MapImageEntityToImageDto.java21
-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/MapImageRequestDtoToImageEntity.java44
-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/MapMonitoringUploadStatusToDto.java (renamed from 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/MapMibUploadStatusToDto.java)10
-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/MapNicEntityToNicCreationResponseDto.java16
-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/MapNicRequestDtoToNicEntity.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/MapNicToNicDto.java4
-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.java49
-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.java8
-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.java1
-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/MapVspDetailsToVspCreationDto.java (renamed from 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/MspVspDetailsToVspCreationDto.java)5
-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/ComponentMonitoringUploadsImpl.java117
-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/ComponentUploadsImpl.java279
-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/ComponentsImpl.java12
-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/ComputeImpl.java162
-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/DeploymentFlavorsImpl.java129
-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/ImagesImpl.java175
-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/NicsImpl.java8
-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.java81
-rw-r--r--openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup30
-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/ComponentCreationDto.java13
-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/ComponentRequestDto.java28
-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/ComponentValidationResultDto.java25
-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/ComputeCreationDto.java13
-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/ComputeDescription.java31
-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/ComputeDetailsDto.java34
-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/ComputeDto.java40
-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/DeploymentFlavorCreationDto.java14
-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/DeploymentFlavorDto.java14
-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/DeploymentFlavorListResponseDto.java34
-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/DeploymentFlavorRequestDto.java53
-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/DeploymentFlavorValidationResultDto.java25
-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/ImageCreationDto.java14
-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/ImageDto.java14
-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/ImageRequestDto.java75
-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/MonitoringUploadStatusDto.java (renamed from openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/MibUploadStatusDto.java)14
-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/NicCreationResponseDto.java14
-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/NicRequestDto.java30
-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.java6
-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/ValidationResponseDto.java21
-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/VmSizing.java72
-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/VspComputeDto.java31
-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.java14
-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/validation/StringValidator.java36
-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/validation/ValidateString.java44
-rw-r--r--openecomp-be/api/pom.xml.versionsBackup21
-rw-r--r--openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup76
-rw-r--r--openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup36
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml83
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDao.java (renamed from catalog-ui/src/app/models/componentsInstances/productInstance.ts)15
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDaoFactory.java30
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManager.java29
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManagerFactory.java30
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckResult.java45
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckStatus.java28
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthInfo.java73
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/MonitoredModules.java28
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/SiteMode.java27
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoFactoryImpl.java36
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoImpl.java69
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerFactoryImpl.java33
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerImpl.java134
-rw-r--r--openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/resources/factoryConfiguration.json4
-rw-r--r--openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup78
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml2
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup77
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseManager.java12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/errors/LimitErrorBuilder.java30
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java256
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/ArtifactTestUtils.java28
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java388
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/FeatureGroupTest.java140
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java172
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LimitTest.java332
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java127
-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/VSPPackage.zipbin0 -> 33617 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml15
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup159
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManager.java34
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManagerFactory.java11
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManager.java34
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManagerFactory.java13
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManager.java33
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManagerFactory.java12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ManualVspToscaManager.java12
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManager.java (renamed from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManager.java)13
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManagerFactory.java (renamed from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManagerFactory.java)7
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManager.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComponentErrorBuilder.java21
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeleteNicErrorBuilder.java18
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java95
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateComputeInComponentErrorBuilder.java52
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateNicInComponentErrorBuilder.java22
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java59
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MonitoringUploadErrorBuilder.java (renamed from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MibUploadErrorBuilder.java)16
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicInternalNetworkErrorBuilder.java46
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicNetworkIdNotAllowedExternalNetworkErrorBuilder.java19
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NotSupportedHeatOnboardMethodErrorBuilder.java76
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/OnboardingMethodErrorBuilder.java46
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductInvalidErrorBuilder.java19
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerFactoryImpl.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java164
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerFactoryImpl.java27
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java503
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerFactoryImpl.java31
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java396
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerFactoryImpl.java24
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java359
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java117
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImpl.java226
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerFactoryImpl.java (renamed from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerFactoryImpl.java)14
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java269
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerFactoryImpl.java4
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java111
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerFactoryImpl.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java186
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImpl.java2
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java339
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VspManagerFactoryImpl.java9
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ComponentValidationResult.java24
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/DeploymentFlavorValidationResult.java25
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ListComputeResponse.java28
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ValidationResponse.java44
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MonitoringUploadStatus.java (renamed from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MibUploadStatus.java)20
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java418
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VendorSoftwareProductUtils.java41
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/factoryConfiguration.json7
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeTest.java293
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java432
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java463
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java41
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java113
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java377
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java409
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java374
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java562
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java139
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImplTest.java164
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java117
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java24
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java6
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java2
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java8
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java5
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/invalidComponent.json3
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/schema/componentQuestionnaire.json3
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/validComponent.json3
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/validation/zips/various/vesTest-yml_only.zipbin0 -> 6265 bytes
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager/zips/invalid_ves_file.zipbin0 -> 9111 bytes
-rw-r--r--openecomp-be/backend/pom.xml1
-rw-r--r--openecomp-be/backend/pom.xml.versionsBackup26
-rw-r--r--openecomp-be/configuration/pom.xml.versionsBackup17
-rw-r--r--openecomp-be/lib/openecomp-common-lib/pom.xml15
-rw-r--r--openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup44
-rw-r--r--openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java7
-rw-r--r--openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/utils/CommonUtil.java57
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup36
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup35
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup41
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup34
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup45
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/nosqldb/api/NoSqlDb.java2
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml7
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup46
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java133
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java6
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/ConfigurationManager.java2
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/test/java/org/openecomp/core/utilities/Yaml/YamlUtilTest.java2
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup35
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml7
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup83
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java4
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java12
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/yaml/YamlUtil.java292
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/pom.xml4
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java5
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml8
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java5
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorFactoryImpl.java3
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java18
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java18
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/pom.xml8
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java4
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/ElementRepository.java2
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/impl/CassandraElementRepository.java9
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/main/CassandraCollaborationStorePluginImpl.java12
-rw-r--r--openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup22
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup35
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup35
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json3
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup36
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java78
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java117
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/FileDataStructureHealer.java2
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/HeatToToscaTranslationHealer.java4
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java48
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java46
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup23
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup50
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java2
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/EnvironmentTest.java2
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplateTest.java2
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup57
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggerFactory.java311
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java70
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java31
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorCode.java2
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorDescription.java2
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerServiceName.java40
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerTragetServiceName.java28
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup58
-rw-r--r--openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup24
-rw-r--r--openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup151
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup47
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/action/types/ActionArtifact.java5
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java51
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDaoFactory.java31
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup30
-rw-r--r--openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup23
-rw-r--r--openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup39
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup45
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMonitoringUploadInfo.java60
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringArtifactInfo.java (renamed from openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MibInfo.java)2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringUploadType.java (renamed from openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ArtifactType.java)7
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup94
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup127
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java122
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java31
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java23
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java2
-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.java18
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java24
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java28
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/logback.xml13
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup44
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup51
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup56
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/src/main/java/org/openecomp/sdc/model/impl/AbstractServiceModelDao.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml10
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup49
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/src/main/java/org/openecomp/sdc/model/impl/zusammen/ServiceModelDaoZusammenImpl.java23
-rw-r--r--openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup44
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml68
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/ComputeFlavor.java69
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/DeploymentFlavorModel.java90
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/LicenseFlavor.java42
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/MultiFlavorVfcImage.java91
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VendorInfo.java58
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java58
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/pom.xml68
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java433
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java244
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/resources/config-manualVspToscaGenerator.json5
-rw-r--r--openecomp-be/lib/openecomp-sdc-tosca-generator-lib/pom.xml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup70
-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.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup68
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/src/main/java/org/openecomp/core/translator/datatypes/TranslatorOutput.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup75
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java116
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedSubstitutionData.java50
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java28
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java33
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java83
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java289
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/TranslationService.java15
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java97
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java716
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesGenerator.java17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesServiceTemplates.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/VolumeTranslationHelper.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceConnection.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java3
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java44
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java11
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java13
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java478
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java320
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java33
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java1
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedPatternsFullTest.java174
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java3
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml832
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/MainServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_serverServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_2ServiceTemplate.yaml)4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml838
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/MainServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml832
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/MainServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_serverServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_1ServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.env6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.yml87
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/GlobalSubstitutionTypesServiceTemplate.yaml440
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/MainServiceTemplate.yaml193
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/Nested_pd_serverServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_0ServiceTemplate.yaml)40
-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.yaml2062
-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.yaml286
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c1_scalling_instanceServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instanceServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml420
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_a_single_1aServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1bServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_1ServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_serverServiceTemplate.yaml444
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_server_1ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/nested-no_vfc_v0.1ServiceTemplate.yaml757
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in/hot-mog-0108-bs1271.yml10
-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.yaml2320
-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.yaml276
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c1_scalling_instanceServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instanceServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml420
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_a_single_1aServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1bServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_1ServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_serverServiceTemplate.yaml444
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_server_1ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-no_vfc_v0.1ServiceTemplate.yaml757
-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.yaml2208
-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.yaml168
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c1_scalling_instanceServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instanceServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml420
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_a_single_1aServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1bServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_1ServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_serverServiceTemplate.yaml444
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_server_1ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/nested-no_vfc_v0.1ServiceTemplate.yaml757
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in/hot-mog-0108-bs1271.yml113
-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.yaml3678
-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.yaml1073
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c11_scalling_instanceServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c12_scalling_instanceServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instanceServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml)306
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml412
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_2ServiceTemplate.yaml412
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_3ServiceTemplate.yaml420
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_2c2_catalog_instanceServiceTemplate.yaml410
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_1aServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_2aServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1bServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_0ServiceTemplate.yaml)12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_1ServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2bServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_0ServiceTemplate.yaml)8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_1ServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_serverServiceTemplate.yaml444
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_server_1ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/nested-no_vfc_v0.1ServiceTemplate.yaml757
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/MANIFEST.json42
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/main.yml176
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4-same-type.yml66
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4.yml66
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1-no-compute.yml29
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1.yml162
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested2.yml180
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested3.yml34
-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/GlobalSubstitutionTypesServiceTemplate.yaml12765
-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.yaml322
-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/Nested_cmaui_1c1_mainServiceTemplate.yaml301
-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/Nested_cmaui_1c1_main_1ServiceTemplate.yaml301
-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/Nested_cmaui_1c1_nested2ServiceTemplate.yaml301
-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/Nested_pd_server_main_1bServiceTemplate.yaml301
-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/Nested_pd_server_main_1b_1ServiceTemplate.yaml301
-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/Nested_pd_server_nested2_1bServiceTemplate.yaml301
-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/Nested_ps_server_main_1bServiceTemplate.yaml301
-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/Nested_ps_server_main_1b_1ServiceTemplate.yaml301
-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/Nested_ps_server_nested2_1bServiceTemplate.yaml301
-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/nested-pattern-4-same-typeServiceTemplate.yaml425
-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/nested-pattern-4ServiceTemplate.yaml425
-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/nested1-no-computeServiceTemplate.yaml165
-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.yaml2323
-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.yaml1501
-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/nested3ServiceTemplate.yaml87
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/MANIFEST.json27
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/main.yml54
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested1.yml91
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested2.yml96
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested3.yml66
-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/GlobalSubstitutionTypesServiceTemplate.yaml5294
-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/MainServiceTemplate.yaml128
-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/Nested_oam_serverServiceTemplate.yaml310
-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/Nested_pd_serverServiceTemplate.yaml310
-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/Nested_ps_serverServiceTemplate.yaml310
-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/Nested_sm_serverServiceTemplate.yaml310
-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/nested1ServiceTemplate.yaml1093
-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.yaml774
-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/nested3ServiceTemplate.yaml434
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/MANIFEST.json27
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/main.yml73
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested1.yml74
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested2.yml73
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested3.yml68
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml7599
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/MainServiceTemplate.yaml151
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmauiServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmaui_1ServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oamServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oam_1ServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_1ServiceTemplate.yaml)0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_psServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_ps_1ServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested1ServiceTemplate.yaml1191
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested2ServiceTemplate.yaml847
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested3ServiceTemplate.yaml495
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/MANIFEST.json27
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/main.yml73
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested1.yml70
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested2.yml70
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested3.yml65
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml7527
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/MainServiceTemplate.yaml151
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_1ServiceTemplate.yaml)0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_2ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_2ServiceTemplate.yaml)136
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_3ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_0ServiceTemplate.yaml)4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_4ServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_5ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_2ServiceTemplate.yaml)4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_6ServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_7ServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_0ServiceTemplate.yaml)4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested1ServiceTemplate.yaml1176
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested2ServiceTemplate.yaml834
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested3ServiceTemplate.yaml482
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/MANIFEST.json33
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/main.yml41
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-no-compute.yml67
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-pattern-4.yml66
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested1.yml197
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested2.yml197
-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/GlobalSubstitutionTypesServiceTemplate.yaml7902
-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.yaml524
-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/Nested_BE_1c1ServiceTemplate.yaml308
-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/Nested_cmaui_1c1ServiceTemplate.yaml308
-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/Nested_oam_server_1c2ServiceTemplate.yaml317
-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/Nested_osm_server_1c2ServiceTemplate.yaml317
-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/Nested_pd_server_1bServiceTemplate.yaml301
-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/Nested_pd_server_1b_1ServiceTemplate.yaml308
-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/Nested_rd_server_1bServiceTemplate.yaml308
-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/Nested_rd_server_1b_1ServiceTemplate.yaml301
-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/nested-no-computeServiceTemplate.yaml252
-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/nested-pattern-4ServiceTemplate.yaml425
-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.yaml1669
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/main.yml16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/nested1.yml181
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml3844
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/MainServiceTemplate.yaml35
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_cmaui_1c1ServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_oam_server_1c2ServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_pd_server_1bServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_ps_server_1bServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/nested1ServiceTemplate.yaml1404
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/MANIFEST.json28
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/main.yml47
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-no-compute.yml67
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-pattern-4.yml66
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested1.yml186
-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.yaml4674
-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.yaml110
-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/Nested_cmaui_1c1ServiceTemplate.yaml301
-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/Nested_oam_server_1c2ServiceTemplate.yaml308
-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/Nested_pd_server_1bServiceTemplate.yaml301
-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/Nested_ps_server_1bServiceTemplate.yaml301
-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/nested-no-computeServiceTemplate.yaml252
-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/nested-pattern-4ServiceTemplate.yaml425
-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/nested1ServiceTemplate.yaml1411
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/main.yml16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/nested1.yml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml1198
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/MainServiceTemplate.yaml35
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/Nested_cmauiServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/nested1ServiceTemplate.yaml544
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/main.yml16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/nested1.yml62
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml277
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/MainServiceTemplate.yaml35
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/nested1ServiceTemplate.yaml248
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/main.yml16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/nested1.yml68
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml1148
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/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/oneLevel/nestedScalingInstance/out/Nested_cmauiServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/nested1ServiceTemplate.yaml452
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/main.yml19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/nested1.yml79
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/GlobalSubstitutionTypesServiceTemplate.yaml1590
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/MainServiceTemplate.yaml41
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_pd_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_ps_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/nested1ServiceTemplate.yaml511
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/MANIFEST.json22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/main.yml38
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-other-file-1B.yml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-same-file-1B.yml83
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/GlobalSubstitutionTypesServiceTemplate.yaml3183
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/MainServiceTemplate.yaml76
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_oam_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_pd_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_ps_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_sm_serverServiceTemplate.yaml301
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-other-file-1BServiceTemplate.yaml515
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-same-file-1BServiceTemplate.yaml515
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/MANIFEST.json22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/main.yml60
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-other-file-1B.yml84
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-same-file-1B.yml85
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml3207
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/MainServiceTemplate.yaml122
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_oam_serverServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_pd_serverServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_ps_serverServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_sm_serverServiceTemplate.yaml310
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-other-file-1BServiceTemplate.yaml520
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-same-file-1BServiceTemplate.yaml520
-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.yaml18
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml3536
-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.yaml911
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_serverServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_from_volServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_with_volServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml2693
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/MainServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmauiServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_1ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_2ServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_jsaServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested1ServiceTemplate.yaml393
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested2ServiceTemplate.yaml409
-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.yaml391
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested4ServiceTemplate.yaml120
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml1138
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/MainServiceTemplate.yaml232
-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.yaml578
-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.yaml160
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/Nested_computeServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml573
-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.yaml138
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/Nested_computeServiceTemplate.yaml4
-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.yaml12
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml435
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_computeServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_pcm_serverServiceTemplate.yaml319
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/nested-pcm_v0.1ServiceTemplate.yaml587
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml866
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pcm_serverServiceTemplate.yaml319
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pd_serverServiceTemplate.yaml319
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/nested-pcm_v0.1ServiceTemplate.yaml589
-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.yaml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml559
-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.yaml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/nested-pcm_v0.2ServiceTemplate.yaml2
-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.yaml559
-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.yaml14
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml12
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml12
-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.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_pd_serverServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_ps_serverServiceTemplate.yaml4
-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.yaml6
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/GlobalSubstitutionTypesServiceTemplate.yaml1220
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB1ServiceTemplate.yaml201
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB2ServiceTemplate.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB1ServiceTemplate.yaml152
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB2ServiceTemplate.yaml144
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB1ServiceTemplate.yaml148
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB2ServiceTemplate.yaml142
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC1ServiceTemplate.yaml397
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC2ServiceTemplate.yaml387
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.env6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.yml229
-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.yaml833
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/MainServiceTemplate.yaml417
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/Nested_pd_serverServiceTemplate.yaml867
-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.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/Nested_pd_serverServiceTemplate.yaml8
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml12
-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.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml12
-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.yaml20
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_oam_serverServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_pd_serverServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_ps_serverServiceTemplate.yaml8
-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.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/MainServiceTemplate.yaml34
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_serverServiceTemplate.yaml (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_server_0ServiceTemplate.yaml)4
-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.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/MainServiceTemplate.yaml80
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_serverServiceTemplate.yaml294
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_server_0ServiceTemplate.yaml294
-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.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_ps_serverServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/SubstitutionServiceTemplate.yaml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in/MainServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml42
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/SubstitutionServiceTemplate.yaml58
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/in/MainServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml38
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/SubstitutionServiceTemplate.yaml54
-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.yaml8
-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/GlobalSubstitutionTypesServiceTemplate.yaml42
-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.yaml58
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in/MainServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml38
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/SubstitutionServiceTemplate.yaml54
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in/MainServiceTemplate.yaml191
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/out/MainServiceTemplate.yaml345
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out/MainServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in/MainServiceTemplate.yaml8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out/MainServiceTemplate.yaml12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/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/updOutputGetAttrIn/consolidation/out/MainServiceTemplate.yaml10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup68
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup45
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup26
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup92
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup49
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup110
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup103
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ContrailValidator.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/YamlValidator.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java12
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup42
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/util/ValidationUtil.java4
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup24
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup55
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDao.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDaoFactory.java10
-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/EntitlementPoolEntity.java100
-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/FeatureGroupEntity.java17
-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/FeatureGroupModel.java4
-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/LicenseKeyGroupEntity.java62
-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.java193
-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/LimitType.java10
-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/MultiChoiceOrOther.java16
-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/xml/LimitForXml.java (renamed from openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMibInfo.java)33
-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/xml/LimitXml.java95
-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/xml/ThresholdForXml.java6
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/InvalidDateErrorBuilder.java43
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java8
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/resources/factoryConfiguration.json4
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup53
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java5
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LimitDaoFactoryImpl.java17
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java2
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java55
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java13
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LimitZusammenDaoImpl.java215
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java3
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java11
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java62
-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.java58
-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/types/FeatureGroupForArtifact.java5
-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/types/VendorLicenseArtifact.java3
-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/types/VnfLicenseArtifact.java7
-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/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java19
-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/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java19
-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/types/mixins/MixinFeatureGroupEntity.java3
-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/types/mixins/MixinFeatureGroupModel.java3
-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/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java11
-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/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java11
-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/types/mixins/MixinLimitArtifact.java42
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup23
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup67
-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/VendorSoftwareProductConstants.java8
-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/ComponentArtifactDao.java (renamed from openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/MibDao.java)17
-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/ComputeDao.java21
-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/ComputeDaoFactory.java12
-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/DeploymentFlavorDao.java12
-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/DeploymentFlavorDaoFactory.java11
-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/ImageDao.java23
-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/ImageDaoFactory.java11
-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/MonitoringUploadDaoFactory.java (renamed from openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/MibDaoFactory.java)8
-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/VendorSoftwareProductDao.java47
-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/VendorSoftwareProductInfoDao.java2
-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/ComponentEntity.java6
-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/ComponentMonitoringUploadEntity.java (renamed from openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/type/MibEntity.java)17
-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/ComputeEntity.java132
-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/DeploymentFlavorEntity.java159
-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/ImageEntity.java175
-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/NicEntity.java4
-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.java11
-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/composition/CompositionEntityDataManager.java16
-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/impl/HeatFileAnalyzerRowDataImpl.java3
-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/types/composition/Component.java19
-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/types/composition/ComponentComputeAssociation.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/types/composition/ComponentData.java18
-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/types/composition/CompositionEntityType.java5
-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/types/composition/ComputeData.java52
-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/types/composition/DeploymentFlavor.java44
-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/types/composition/ExtractCompositionDataContext.java30
-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/types/composition/Image.java68
-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/types/composition/ImageData.java32
-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/types/composition/ImageFormat.java13
-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/types/composition/Nic.java17
-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/types/composition/VmSizing.java58
-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/types/questionnaire/component/compute/VmSizing.java27
-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/types/questionnaire/component/image/ImageDetails.java33
-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/types/schemagenerator/ComputeCompositionSchemaInput.java25
-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/types/schemagenerator/DeploymentFlavorCompositionSchemaInput.java39
-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/types/schemagenerator/ImageCompositionSchemaInput.java18
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/resources/factoryConfiguration.json5
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup108
-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/ComputeDaoCassandraImpl.java120
-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/ComputeDaoFactoryImpl.java16
-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/DeploymentFlavorDaoCassandraImpl.java93
-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/DeploymentFlavorDaoFactoryImpl.java17
-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/ImageDaoFactoryImpl.java18
-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/ImageDaoImpl.java129
-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/MonitoringUploadDaoFactoryImpl.java (renamed from openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/impl/MibDaoFactoryImpl.java)12
-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/VendorSoftwareProductDaoImpl.java123
-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/VendorSoftwareProductInfoDaoImpl.java5
-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/ComponentArtifactDaoZusammenImpl.java (renamed from 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/MibDaoZusammenImpl.java)131
-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/ComponentDaoZusammenImpl.java6
-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/ComponentDependencyModelPropertyName.java12
-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/ComputeDaoZusammenImpl.java251
-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/DeploymentFlavorDaoZusammenImpl.java179
-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/ElementType.java6
-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/ImageDaoZusammenImpl.java252
-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/StructureElement.java4
-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.java19
-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/errors/VendorSoftwareProductErrorCodes.java64
-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/factory/impl/CompositionEntityDataManagerFactoryImpl.java14
-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/CompositionDataExtractorImpl.java108
-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.java132
-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.java937
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java14
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationArtifact/impl/TxtInformationArtifactGeneratorImplTest.java7
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup22
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup75
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml2
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup54
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup24
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup87
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java9
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaServiceModel.java17
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java29
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java199
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java10
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java133
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/resources/config.properties2
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/TestUtil.java2
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java4
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinitionTest.java2
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinitionTest.java2
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java2
-rw-r--r--openecomp-be/lib/pom.xml1
-rw-r--r--openecomp-be/lib/pom.xml.versionsBackup33
-rw-r--r--openecomp-be/tools/build/scripts/cassandra-commands.json8
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl8
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/compute.ftl17
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl39
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/image.ftl13
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl28
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl85
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl54
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl22
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/pom.xml4
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/MigrationMain.java4
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java1
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/FeatureGroupConvertor.java2
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/MibConvertor.java41
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/VspServiceTemplateConvertor.java2
-rw-r--r--openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/loaders/MibCassandraLoader.java6
-rw-r--r--openecomp-be/tools/swagger-ui/assembly/swagger.xml1
-rw-r--r--openecomp-be/tools/swagger-ui/pom.xml1
-rw-r--r--openecomp-be/tools/zusammen-tools/pom.xml6
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java24
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/main/ZusammenMainTool.java2
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java77
-rw-r--r--openecomp-ui/.gitignore1
-rw-r--r--openecomp-ui/external-resources/healthcheck/v1.0/healthcheck11
-rw-r--r--openecomp-ui/gulpfile.js86
-rw-r--r--openecomp-ui/package.json10
-rw-r--r--openecomp-ui/resources/images/angle-left.svg9
-rw-r--r--openecomp-ui/resources/images/angle-right.svg9
-rw-r--r--openecomp-ui/resources/images/svg/calendar.svg1
-rw-r--r--openecomp-ui/resources/scss/_components.scss2
-rw-r--r--openecomp-ui/resources/scss/_modules.scss3
-rw-r--r--openecomp-ui/resources/scss/bootstrap-cust/_forms.scss2
-rw-r--r--openecomp-ui/resources/scss/bootstrap-cust/_modals.scss6
-rw-r--r--openecomp-ui/resources/scss/bootstrap-cust/_navs.scss2
-rw-r--r--openecomp-ui/resources/scss/bootstrap-cust/_variables.scss2
-rw-r--r--openecomp-ui/resources/scss/bootstrap.scss8
-rw-r--r--openecomp-ui/resources/scss/bootstrap/_mixins.scss2
-rw-r--r--openecomp-ui/resources/scss/common/_typography.scss53
-rw-r--r--openecomp-ui/resources/scss/components/_activityLog.scss4
-rw-r--r--openecomp-ui/resources/scss/components/_buttons.scss3
-rw-r--r--openecomp-ui/resources/scss/components/_datepicker.scss51
-rw-r--r--openecomp-ui/resources/scss/components/_forms.scss2
-rw-r--r--openecomp-ui/resources/scss/components/_grid.scss4
-rw-r--r--openecomp-ui/resources/scss/components/_listEditorView.scss15
-rw-r--r--openecomp-ui/resources/scss/components/_navigationSideBar.scss6
-rw-r--r--openecomp-ui/resources/scss/components/_notifications.scss4
-rw-r--r--openecomp-ui/resources/scss/components/_selectActionTable.scss55
-rw-r--r--openecomp-ui/resources/scss/components/_submitErrorResponse.scss4
-rw-r--r--openecomp-ui/resources/scss/components/_svgIcon.scss51
-rw-r--r--openecomp-ui/resources/scss/components/_validationForm.scss3
-rw-r--r--openecomp-ui/resources/scss/components/_versionController.scss12
-rw-r--r--openecomp-ui/resources/scss/modules/_featureGroup.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_licenseModel.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_licenseModelOverview.scss8
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss19
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductComponentGeneral.scss7
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductComponentImage.scss58
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductComponentNetwork.scss35
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductComponentProcessesPage.scss4
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductCreatePage.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductDependencies.scss6
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductDeployment.scss55
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss14
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareProductProcessesPage.scss13
-rw-r--r--openecomp-ui/resources/scss/modules/_softwareproductComponentLoadBalancing.scss80
-rw-r--r--openecomp-ui/resources/scss/modules/_vspComponentCompute.scss19
-rw-r--r--openecomp-ui/resources/scss/modules/_vspComponentMonitoring.scss8
-rw-r--r--openecomp-ui/resources/scss/modules/_vspComponentQuestionnaire.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/_vspHeatSetup.scss45
-rw-r--r--openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss167
-rw-r--r--openecomp-ui/resources/scss/modules/onboardingCatalog/_createItemTile.scss12
-rw-r--r--openecomp-ui/resources/scss/modules/onboardingCatalog/_onboardHeader.scss2
-rw-r--r--openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss130
-rw-r--r--openecomp-ui/resources/scss/modules/onboardingCatalog/_vspOverlay.scss2
-rw-r--r--openecomp-ui/resources/scss/onboarding.scss81
-rw-r--r--openecomp-ui/runLocalFE.cmd38
-rw-r--r--openecomp-ui/runLocalFE.js104
-rw-r--r--openecomp-ui/src/index.html30
-rw-r--r--openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx4
-rw-r--r--openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx75
-rw-r--r--openecomp-ui/src/nfvo-components/grid/GridSection.jsx5
-rw-r--r--openecomp-ui/src/nfvo-components/icon/SVGIcon.jsx54
-rw-r--r--openecomp-ui/src/nfvo-components/icon/SVGIcon.stories.js50
-rw-r--r--openecomp-ui/src/nfvo-components/input/ExpandableInput.jsx7
-rw-r--r--openecomp-ui/src/nfvo-components/input/dualListbox/DualListboxView.jsx10
-rw-r--r--openecomp-ui/src/nfvo-components/input/validation/Form.jsx17
-rw-r--r--openecomp-ui/src/nfvo-components/input/validation/Input.jsx44
-rw-r--r--openecomp-ui/src/nfvo-components/input/validation/InputWrapper.jsx1
-rw-r--r--openecomp-ui/src/nfvo-components/input/validation/ValidationButtons.jsx18
-rw-r--r--openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx16
-rw-r--r--openecomp-ui/src/nfvo-components/modal/GlobalModal.js34
-rw-r--r--openecomp-ui/src/nfvo-components/modal/GlobalModalConstants.js5
-rw-r--r--openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx12
-rw-r--r--openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx9
-rw-r--r--openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx24
-rw-r--r--openecomp-ui/src/nfvo-utils/Validator.js28
-rw-r--r--openecomp-ui/src/nfvo-utils/i18n/en.json330
-rw-r--r--openecomp-ui/src/nfvo-utils/i18n/i18n.js26
-rw-r--r--openecomp-ui/src/nfvo-utils/i18n/locale.json1
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/ActivityLog.js (renamed from openecomp-ui/src/nfvo-components/activity-log/ActivityLog.js)0
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/ActivityLogActionHelper.js (renamed from openecomp-ui/src/nfvo-components/activity-log/ActivityLogActionHelper.js)0
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/ActivityLogConstants.js (renamed from openecomp-ui/src/nfvo-components/activity-log/ActivityLogConstants.js)0
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/ActivityLogReducer.js (renamed from openecomp-ui/src/nfvo-components/activity-log/ActivityLogReducer.js)0
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/ActivityLogView.jsx (renamed from openecomp-ui/src/nfvo-components/activity-log/ActivityLogView.jsx)6
-rw-r--r--openecomp-ui/src/sdc-app/common/activity-log/LogixUtil.jsx28
-rw-r--r--openecomp-ui/src/sdc-app/common/modal/ModalContentMapper.js24
-rw-r--r--openecomp-ui/src/sdc-app/flows/SequenceDiagram.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js41
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/OnboardingConstants.js10
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx84
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModel.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js8
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js22
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx53
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx4
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx72
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/onboard/CatalogList.jsx2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js4
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js47
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js23
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js13
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js27
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupView.jsx12
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/validation/HeatValidationView.jsx18
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentEditorReducer.js44
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponents.js65
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js88
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js14
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsList.js36
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListReducer.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListView.jsx14
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js169
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentCompute.js11
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx25
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/ComputeFlavors.js116
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/GuestOs.jsx21
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/NumberOfVms.jsx38
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/VmSizing.jsx68
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorConstants.js32
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js55
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditorView.jsx96
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js33
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorReducer.js45
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/VmSizing.jsx106
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreation.js50
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreationView.jsx79
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx77
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js169
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageConstants.js (renamed from openecomp-ui/tools/gulp/deployment/gulpfile.js)17
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditor.js63
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorReducer.js42
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorView.jsx71
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js88
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListReducer.js26
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx132
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js32
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/FileDetails.jsx48
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Format.jsx47
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/ImageDetails.jsx39
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Version.jsx39
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancingRefView.jsx4
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js11
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js62
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js31
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringReducer.js28
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx34
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreation.js51
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationActionHelper.js47
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationReducer.js49
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationView.jsx123
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js5
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorReducer.js9
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorView.jsx9
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js48
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js14
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkList.js29
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx37
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/NameAndPurpose.jsx8
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/Network.jsx21
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentProcessesList.js2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentsProcessesListView.jsx2
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationActionHelper.js7
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationReducer.js6
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx52
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx4
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeployment.js52
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js101
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentConstants.js28
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentListReducer.js25
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentView.jsx94
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js88
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorReducer.js44
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorView.jsx137
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js4
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx186
-rw-r--r--openecomp-ui/src/sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcesses.js2
-rw-r--r--openecomp-ui/src/sdc-app/punch-outs.js1
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js16
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js2
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js28
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js23
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDeploymentFactories.js33
-rw-r--r--openecomp-ui/test/activity-log/ActivityLog.test.js (renamed from openecomp-ui/test/nfvo-components/activity-log/ActivityLog.test.js)6
-rw-r--r--openecomp-ui/test/nfvo-components/listEditor/listEditor.test.js2
-rw-r--r--openecomp-ui/test/nfvo-components/panel/VersionController/versionController.test.js5
-rw-r--r--openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentComputeEditor.test.js85
-rw-r--r--openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentsComputes.test.js48
-rw-r--r--openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperHeatMode.test.js (renamed from openecomp-ui/test/softwareProduct/components/compute/test.js)8
-rw-r--r--openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperManualMode.test.js198
-rw-r--r--openecomp-ui/test/softwareProduct/components/general/ComponentGeneralActionHelper.test.js48
-rw-r--r--openecomp-ui/test/softwareProduct/components/general/SoftwareProductComponentsGeneral.test.js3
-rw-r--r--openecomp-ui/test/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.test.js40
-rw-r--r--openecomp-ui/test/softwareProduct/components/monitoring/test.js153
-rw-r--r--openecomp-ui/test/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.test.js64
-rw-r--r--openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentEditor.test.js81
-rw-r--r--openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentView.test.js77
-rw-r--r--openecomp-ui/test/softwareProduct/landingPage/landingPage.test.js58
-rw-r--r--openecomp-ui/tools/gulp/deployment/package.json23
-rw-r--r--openecomp-ui/tools/gulp/deployment/tools/gulp/tasks/i18nUpdate.js166
-rw-r--r--openecomp-ui/tools/gulp/tasks/i18n.js116
-rw-r--r--openecomp-ui/tools/gulp/tasks/prod.js91
-rw-r--r--openecomp-ui/webapp-onboarding/WEB-INF/web.xml6
-rw-r--r--openecomp-ui/webpack.common.js2
-rw-r--r--openecomp-ui/webpack.production.js16
-rw-r--r--pom.xml6
-rw-r--r--sdc-os-chef/sdc-backend/Dockerfile11
-rw-r--r--sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb9
-rw-r--r--sdc-os-chef/sdc-cassandra/Dockerfile9
-rw-r--r--sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb5
-rw-r--r--sdc-os-chef/sdc-elasticsearch/Dockerfile9
-rw-r--r--sdc-os-chef/sdc-frontend/Dockerfile9
-rw-r--r--sdc-os-chef/sdc-kibana/Dockerfile9
-rw-r--r--sdc-os-chef/sdc-os-common/templates/default/BE-configuration.yaml.erb26
-rw-r--r--sdc-os-chef/sdc-sanity/Dockerfile9
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java14
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/attribute/ComponentInstanceAttributeTest.java4
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java31
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java9
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaResourceTest.java4
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java9
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/MultipleResourceUpdate.java2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaDefinition.java2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaParameterConstants.java9
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarParserUtils.java34
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java122
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/AtomicOperationUtils.java14
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java3
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/LifecycleRestUtils.java15
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java1
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ServiceRestUtils.java2
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/CsarValidationUtils.java33
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java392
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/GetCSARofVF.java68
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/VFCMTExternalAPI.java12
-rw-r--r--test-apis-ci/src/main/resources/ci/conf/attsdc.yaml2
-rw-r--r--test-apis-ci/src/test/resources/CI/error-configuration.yaml6
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/MIBsArtifactsOnResourceInstance.java4
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/DataTestIdEnum.java24
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/CatalogLeftPanelTest.java2
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Onboard.java41
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/OnboardViaApis.java32
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Service.java12
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Vf.java4
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/setup/DriverFactory.java2
-rw-r--r--ui-ci/src/main/java/org/openecomp/sdc/ci/tests/utilities/OnboardingUtils.java29
1491 files changed, 182277 insertions, 30280 deletions
diff --git a/.gitignore b/.gitignore
index e9f00350d3..3ad4296d58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -145,6 +145,7 @@ openecomp-ui/node/*
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/SDC-*.zip
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/sdctool.tar
sdc-os-chef/.idea/*
+node/*
# chef
.delivery
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
index 9428a9b695..60c226136d 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
@@ -91,6 +91,7 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
protected ResourceReqDetails resourceDetailsVFC_02;
protected ResourceReqDetails resourceDetailsVF_01;
protected ResourceReqDetails resourceDetailsVF_02;
+ protected ResourceReqDetails resourceDetailsPNF_01;
protected ResourceReqDetails resourceDetailsCP_01;
protected ResourceReqDetails resourceDetailsCP_02;
protected ResourceReqDetails resourceDetailsVL_01;
@@ -119,6 +120,7 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
resourceDetailsVFC_02 = ElementFactory.getDefaultResourceByType("ciVFC200", NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VFC.toString());
resourceDetailsVF_01 = ElementFactory.getDefaultResourceByType("ciVF100", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VF.toString());
resourceDetailsVF_02 = ElementFactory.getDefaultResourceByType("ciVF200", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VF.toString());
+ resourceDetailsPNF_01 = ElementFactory.getDefaultResourceByType("ciPNF100", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.PNF.toString());
resourceDetailsCP_01 = ElementFactory.getDefaultResourceByType("ciCP100", NormativeTypesEnum.PORT, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, sdncDesignerDetails.getUserId(), ResourceTypeEnum.CP.toString());
resourceDetailsCP_02 = ElementFactory.getDefaultResourceByType("ciCP200", NormativeTypesEnum.PORT, ResourceCategoryEnum.GENERIC_DATABASE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.CP.toString());
resourceDetailsVL_01 = ElementFactory.getDefaultResourceByType("ciVL100", NormativeTypesEnum.NETWORK, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VL.toString());
@@ -338,9 +340,9 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
Function<? super Entry<String, List<CapabilityDefinition>>, List<CapabilityDefinition>> capabilityDefinitionMapper = e -> new ArrayList<>(e.getValue().stream().map(item -> new CapabilityDefinition(item)).collect(Collectors.toList()));
Map<String, List<CapabilityDefinition>> capCopy = resourceCapabilities.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(), capabilityDefinitionMapper));
- setupContainerExpectedReqCap(uniqueId, name, resourceRequirements, resourceCapabilities);
+ setupContainerExpectedReqCap(uniqueId, name, originComponentId, resourceRequirements, resourceCapabilities);
if (component.getComponentType().equals(ComponentTypeEnum.RESOURCE) && ((Resource) component).getResourceType() != ResourceTypeEnum.VF) {
- setupConstInstExpectedReqCap(uniqueId, name, reqCopy, capCopy);
+ setupConstInstExpectedReqCap(uniqueId, name, originComponentId, reqCopy, capCopy);
}
// adding entry for expected componentInstance
@@ -348,12 +350,15 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
expectedContInstReqCap.put(uniqueId, compInstReqCapPair);
}
- private void setupContainerExpectedReqCap(String uniqueId, String name, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
+ private void setupContainerExpectedReqCap(String uniqueId, String name, String componentId, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
for (Entry<String, List<RequirementDefinition>> resReq : componentRequirements.entrySet()) {
List<RequirementDefinition> reqListToAdd = resReq.getValue();
for (RequirementDefinition requirementDefinition : reqListToAdd) {
requirementDefinition.setOwnerId(uniqueId);
requirementDefinition.setOwnerName(name);
+ requirementDefinition.addToPath(uniqueId);
+ requirementDefinition.setSource(componentId);
+ requirementDefinition.setLeftOccurrences(requirementDefinition.getMaxOccurrences());
}
List<RequirementDefinition> expectedReqList = expectedContainerRequirements.get(resReq.getKey());
if (expectedReqList == null) {
@@ -369,6 +374,9 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
for (CapabilityDefinition capDefinition : capListToAdd) {
capDefinition.setOwnerId(uniqueId);
capDefinition.setOwnerName(name);
+ capDefinition.addToPath(uniqueId);
+ capDefinition.setSource(componentId);
+ capDefinition.setLeftOccurrences(capDefinition.getMaxOccurrences());
}
List<CapabilityDefinition> expectedCapList = expectedContainerCapabilities.get(resCap.getKey());
if (expectedCapList == null) {
@@ -380,12 +388,15 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
}
}
- private void setupConstInstExpectedReqCap(String uniqueId, String name, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
+ private void setupConstInstExpectedReqCap(String uniqueId, String name, String componentId, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
for (Entry<String, List<RequirementDefinition>> resReq : componentRequirements.entrySet()) {
List<RequirementDefinition> reqListToAdd = resReq.getValue();
for (RequirementDefinition requirementDefinition : reqListToAdd) {
requirementDefinition.setOwnerId(uniqueId);
requirementDefinition.setOwnerName(name);
+ requirementDefinition.addToPath(uniqueId);
+ requirementDefinition.setSource(componentId);
+ requirementDefinition.setLeftOccurrences(requirementDefinition.getMaxOccurrences());
}
}
@@ -394,6 +405,8 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
for (CapabilityDefinition capDefinition : capListToAdd) {
capDefinition.setOwnerId(uniqueId);
capDefinition.setOwnerName(name);
+ capDefinition.addToPath(uniqueId);
+ capDefinition.setSource(componentId);
}
}
}
@@ -570,6 +583,31 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
return component;
}
+ protected Component getComponentAndValidateRIsOnly(ComponentReqDetails componentDetails, int numberOfRIs, int numberOfRelations) throws IOException, Exception {
+
+ RestResponse getResponse = null;
+ Component component = null;
+ if (componentDetails instanceof ResourceReqDetails) {
+ getResponse = ResourceRestUtils.getResource(sdncAdminDetails, componentDetails.getUniqueId());
+ component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Resource.class);
+ } else if (componentDetails instanceof ServiceReqDetails) {
+ getResponse = ServiceRestUtils.getService((ServiceReqDetails) componentDetails, sdncAdminDetails);
+ component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Service.class);
+ } else if (componentDetails instanceof ProductReqDetails) {
+ getResponse = ProductRestUtils.getProduct(componentDetails.getUniqueId(), sdncAdminDetails.getUserId());
+ component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Product.class);
+ } else {
+ Assert.fail("Unsupported type of componentDetails - " + componentDetails.getClass().getSimpleName());
+ }
+ ResourceRestUtils.checkSuccess(getResponse);
+ int numberOfActualRIs = component.getComponentInstances() != null ? component.getComponentInstances().size() : 0;
+ int numberOfActualRelations = component.getComponentInstancesRelations() != null ? component.getComponentInstancesRelations().size() : 0;
+ assertEquals("Check number of RIs meet the expected number", numberOfRIs, numberOfActualRIs);
+ assertEquals("Check number of RI relations meet the expected number", numberOfRelations, numberOfActualRelations);
+
+ return component;
+ }
+
protected void getComponentAndValidateRIsAfterChangeLifecycleState(String oldComponentUniqueIdToReplace, ComponentReqDetails componentDetails, int numOfRIs, int numOfRelations) throws IOException, Exception {
updateExpectedReqCapAfterChangeLifecycleState(oldComponentUniqueIdToReplace, componentDetails.getUniqueId());
getComponentAndValidateRIs(componentDetails, numOfRIs, numOfRelations);
@@ -612,6 +650,10 @@ public class ComponentInstanceBaseTest extends ComponentBaseTest {
ResourceRestUtils.checkCreateResponse(createVfResponse);
}
+ protected void createPNF(ResourceReqDetails resourceDetails) throws Exception {
+ createVF(resourceDetails, sdncDesignerDetails);
+ }
+
protected void createService(ServiceReqDetails serviceDetails) throws Exception {
createService(serviceDetails, sdncDesignerDetails);
}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
index 0e1c0e4da1..3e4411b06e 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
@@ -45,6 +45,8 @@ public interface Urls {
final String GET_SERVICE_lATEST_VERSION = "http://%s:%s/sdc2/rest/v1/catalog/services/latestversion/notabstract";
+ final String GET_RESOURCE_METADATA_lATEST_VERSION = "http://%s:%s/sdc2/rest/v1/catalog/resources/latestversion/notabstract/metadata";
+
// Get resource artifact list:
// http://172.20.43.124:8080/sdc2/rest/v1/catalog/resources/alien.nodes.Apache/2.0.0-SNAPSHOT/artifacts
final String GET_RESOURCE_ARTIFACTS_LIST = "http://%s:%s/sdc2/rest/v1/catalog/resources/%s/%s/artifacts";
@@ -186,35 +188,35 @@ public interface Urls {
// ***********************************External API's
// (AssetData)****************************************
- final String DELETE_EXTRNAL_API_DELETE_ARTIFACT_OF_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/artifacts/%s";
- final String DELETE_EXTRNAL_API_DELETE_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
+ final String DELETE_EXTRNAL_API_DELETE_ARTIFACT_OF_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/artifacts/%s";
+ final String DELETE_EXTRNAL_API_DELETE_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
- final String POST_EXTERNAL_API_UPDATE_ARTIFACT_OF_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/artifacts/%s";
- final String POST_EXTERNAL_API_UPDATE_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
+ final String POST_EXTERNAL_API_UPDATE_ARTIFACT_OF_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/artifacts/%s";
+ final String POST_EXTERNAL_API_UPDATE_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
- final String POST_EXTERNAL_API_UPLOAD_ARTIFACT_OF_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/artifacts";
- final String POST_EXTERNAL_API_UPLOAD_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/asdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts";
+ final String POST_EXTERNAL_API_UPLOAD_ARTIFACT_OF_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/artifacts";
+ final String POST_EXTERNAL_API_UPLOAD_ARTIFACT_OF_COMPONENTINSTANCE_ON_ASSET = "http://%s:%s/sdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts";
- final String GET_DOWNLOAD_RESOURCE_ARTIFACT_OF_ASSET = "http://%s:%s/asdc/v1/catalog/resources/%s/artifacts/%s";
- final String GET_DOWNLOAD_SERVICE_ARTIFACT_OF_ASSET = "http://%s:%s/asdc/v1/catalog/services/%s/artifacts/%s";
+ final String GET_DOWNLOAD_RESOURCE_ARTIFACT_OF_ASSET = "http://%s:%s/sdc/v1/catalog/resources/%s/artifacts/%s";
+ final String GET_DOWNLOAD_SERVICE_ARTIFACT_OF_ASSET = "http://%s:%s/sdc/v1/catalog/services/%s/artifacts/%s";
- final String GET_DOWNLOAD_RESOURCE_ARTIFACT_OF_COMPONENT_INSTANCE = "http://%s:%s/asdc/v1/catalog/resources/%s/resourceInstances/%s/artifacts/%s";
- final String GET_DOWNLOAD_SERVICE_ARTIFACT_OF_COMPONENT_INSTANCE = "http://%s:%s/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s";
+ final String GET_DOWNLOAD_RESOURCE_ARTIFACT_OF_COMPONENT_INSTANCE = "http://%s:%s/sdc/v1/catalog/resources/%s/resourceInstances/%s/artifacts/%s";
+ final String GET_DOWNLOAD_SERVICE_ARTIFACT_OF_COMPONENT_INSTANCE = "http://%s:%s/sdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s";
- final String GET_ASSET_LIST = "http://%s:%s/asdc/v1/catalog/%s";
- final String GET_FILTERED_ASSET_LIST = "http://%s:%s/asdc/v1/catalog/%s?%s";
- final String GET_TOSCA_MODEL = "http://%s:%s/asdc/v1/catalog/%s/%s/toscaModel";
- // https://{serverRoot}/asdc/v1/catalog/{assetType}/{uuid}/metadata, where
+ final String GET_ASSET_LIST = "http://%s:%s/sdc/v1/catalog/%s";
+ final String GET_FILTERED_ASSET_LIST = "http://%s:%s/sdc/v1/catalog/%s?%s";
+ final String GET_TOSCA_MODEL = "http://%s:%s/sdc/v1/catalog/%s/%s/toscaModel";
+ // https://{serverRoot}/sdc/v1/catalog/{assetType}/{uuid}/metadata, where
// assetType in {resources, services}
- final String GET_ASSET_METADATA = "http://%s:%s/asdc/v1/catalog/%s/%s/metadata";
+ final String GET_ASSET_METADATA = "http://%s:%s/sdc/v1/catalog/%s/%s/metadata";
final String POST_AUTHORIZATION = "http://%s:%s/sdc2/rest/v1/consumers";
- final String GET_DOWNLOAD_SERVICE_RI_ARTIFACT = "http://%s:%s/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s";
- final String GET_DOWNLOAD_SERVICE_ARTIFACT = "http://%s:%s/asdc/v1/catalog/services/%s/artifacts/%s";
+ final String GET_DOWNLOAD_SERVICE_RI_ARTIFACT = "http://%s:%s/sdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s";
+ final String GET_DOWNLOAD_SERVICE_ARTIFACT = "http://%s:%s/sdc/v1/catalog/services/%s/artifacts/%s";
- final String POST_EXTERNAL_API_CREATE_RESOURCE = "http://%s:%s/asdc/v1/catalog/resources";
+ final String POST_EXTERNAL_API_CREATE_RESOURCE = "http://%s:%s/sdc/v1/catalog/resources";
- final String CHANGE_RESOURCE_LIFECYCLE_STATE_EXTERNAL_API = "http://%s:%s/asdc/v1/catalog/resources/%s/lifecycleState/%s";
- final String CHANGE_SERVICE_LIFECYCLE_STATE_EXTERNAL_API = "http://%s:%s/asdc/v1/catalog/services/%s/lifecycleState/%s";
+ final String CHANGE_RESOURCE_LIFECYCLE_STATE_EXTERNAL_API = "http://%s:%s/sdc/v1/catalog/resources/%s/lifecycleState/%s";
+ final String CHANGE_SERVICE_LIFECYCLE_STATE_EXTERNAL_API = "http://%s:%s/sdc/v1/catalog/services/%s/lifecycleState/%s";
// *****************************************************************************************************
@@ -238,8 +240,8 @@ public interface Urls {
final String DISTRIB_DOWNLOAD_SERVICE_ARTIFACT = "/sdc2/rest/v1/catalog/services/%s/%s/artifacts/%s";
// "/sdc2/v1/services/<serviceName>/<0.1>/resources/{resourceName}/{resourceVersion}/artifacts/<opeartion_name>_aaa.hh"
final String DISTRIB_DOWNLOAD_RESOURCE_ARTIFACT = "/sdc2/rest/v1/catalog/services/%s/%s/resources/%s/%s/artifacts/%s";
- final String DISTRIB_DOWNLOAD_SERVICE_ARTIFACT_RELATIVE_URL = "/asdc/v1/catalog/services/%s/%s/artifacts/%s";
- final String DISTRIB_DOWNLOAD_RESOURCE_ARTIFACT_RELATIVE_URL = "/asdc/v1/catalog/services/%s/%s/resources/%s/%s/artifacts/%s";
+ final String DISTRIB_DOWNLOAD_SERVICE_ARTIFACT_RELATIVE_URL = "/sdc/v1/catalog/services/%s/%s/artifacts/%s";
+ final String DISTRIB_DOWNLOAD_RESOURCE_ARTIFACT_RELATIVE_URL = "/sdc/v1/catalog/services/%s/%s/resources/%s/%s/artifacts/%s";
final String DOWNLOAD_SERVICE_ARTIFACT_FULL_URL = "http://%s:%s%s";
final String DOWNLOAD_RESOURCE_ARTIFACT_FULL_URL = "http://%s:%s%s";
// **********************************************************************************
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ResourceReqDetails.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ResourceReqDetails.java
index 8456e5b35b..d8bd80115e 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ResourceReqDetails.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ResourceReqDetails.java
@@ -29,6 +29,7 @@ public class ResourceReqDetails extends ComponentReqDetails {
List<String> derivedFrom;
String vendorName;
String vendorRelease;
+ String resourceVendorModelNumber;
// Unsettable/unupdatable fields
@@ -55,6 +56,7 @@ public class ResourceReqDetails extends ComponentReqDetails {
this.derivedFrom = resource.getDerivedFrom();
this.vendorName = resource.getVendorName();
this.vendorRelease = resource.getVendorRelease();
+ this.resourceVendorModelNumber = resource.getResourceVendorModelNumber();
this.contactId = resource.getContactId();
this.icon = resource.getIcon();
this.toscaResourceName = resource.getToscaResourceName();
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ServiceReqDetails.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ServiceReqDetails.java
index e33183ca94..022caecf41 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ServiceReqDetails.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/ServiceReqDetails.java
@@ -26,6 +26,9 @@ import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
public class ServiceReqDetails extends ComponentReqDetails {
+
+ String serviceType;
+ String serviceRole;
public ServiceReqDetails(String serviceName, String category, ArrayList<String> tags, String description,
String contactId, String icon) {
@@ -35,6 +38,8 @@ public class ServiceReqDetails extends ComponentReqDetails {
this.description = description;
this.contactId = contactId;
this.icon = icon;
+ this.serviceType = "";
+ this.serviceRole = "";
projectCode = "12345";
CategoryDefinition categoryDefinition = new CategoryDefinition();
categoryDefinition.setName(category);
@@ -56,6 +61,8 @@ public class ServiceReqDetails extends ComponentReqDetails {
this.uniqueId = service.getUniqueId();
this.UUID = service.getUUID();
this.version = service.getVersion();
+ this.serviceType = service.getServiceType();
+ this.serviceRole = service.getServiceRole();
}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/enums/ArtifactTypeEnum.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/enums/ArtifactTypeEnum.java
index eafdf80a0a..724fca2b4d 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/enums/ArtifactTypeEnum.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/datatypes/enums/ArtifactTypeEnum.java
@@ -33,7 +33,7 @@ public enum ArtifactTypeEnum {
TOSCA_TEMPLATE("TOSCA_TEMPLATE"), TOSCA_CSAR("TOSCA_CSAR"), VNF_CATALOG("VNF_CATALOG"), VF_LICENSE("VF_LICENSE"), VENDOR_LICENSE("VENDOR_LICENSE"),
MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"), MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"), APPC_CONFIG("APPC_CONFIG"), HEAT_NESTED("HEAT_NESTED"),
HEAT_ARTIFACT("HEAT_ARTIFACT"), VF_MODULES_METADATA("VF_MODULES_METADATA"), LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"),
- VES_EVENTS("VES_EVENTS"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),
+ VES_EVENTS("VES_EVENTS"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"), UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"),
// DCAE Artifacts
DCAE_TOSCA("DCAE_TOSCA"), DCAE_JSON("DCAE_JSON"), DCAE_POLICY("DCAE_POLICY"), DCAE_DOC("DCAE_DOC"), DCAE_EVENT("DCAE_EVENT"), DCAE_INVENTORY_TOSCA("DCAE_INVENTORY_TOSCA"),
DCAE_INVENTORY_JSON("DCAE_INVENTORY_JSON"), DCAE_INVENTORY_POLICY("DCAE_INVENTORY_POLICY"), DCAE_INVENTORY_DOC("DCAE_INVENTORY_DOC"),
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/artifacts/DownloadComponentArt.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/artifacts/DownloadComponentArt.java
index 5ec4a86977..e4c89bee94 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/artifacts/DownloadComponentArt.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/artifacts/DownloadComponentArt.java
@@ -178,7 +178,7 @@ public class DownloadComponentArt extends ComponentBaseTest {
expectedResourceAuditJavaObject.setDesc("OK");
expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- String resource_url = String.format("/asdc/v1/catalog/resources/%s/artifacts/%s", resourceUUID, artifactUUID);
+ String resource_url = String.format("/sdc/v1/catalog/resources/%s/artifacts/%s", resourceUUID, artifactUUID);
expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
@@ -250,7 +250,7 @@ public class DownloadComponentArt extends ComponentBaseTest {
expectedResourceAuditJavaObject.setDesc("OK");
expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- String resource_url = String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceUUID, artifactUUID);
+ String resource_url = String.format("/sdc/v1/catalog/services/%s/artifacts/%s", resourceUUID, artifactUUID);
expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
@@ -313,7 +313,7 @@ public class DownloadComponentArt extends ComponentBaseTest {
expectedResourceAuditJavaObject.setDesc("OK");
expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- String resource_url = String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceUUID, componentNormalizedName, artifactUUID);
+ String resource_url = String.format("/sdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceUUID, componentNormalizedName, artifactUUID);
expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/category/CatalogDataApiTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/category/CatalogDataApiTest.java
index 86641eb2c7..44b781f065 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/category/CatalogDataApiTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/category/CatalogDataApiTest.java
@@ -20,26 +20,21 @@
package org.openecomp.sdc.ci.tests.execute.category;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
-import org.apache.log4j.lf5.util.ResourceUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.junit.Rule;
import org.junit.rules.TestName;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
import org.openecomp.sdc.ci.tests.api.Urls;
import org.openecomp.sdc.ci.tests.config.Config;
import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.*;
import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
import org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
@@ -49,9 +44,8 @@ import org.openecomp.sdc.ci.tests.utils.rest.CatalogRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
-import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -62,6 +56,7 @@ public class CatalogDataApiTest extends ComponentBaseTest {
protected Config config = Config.instance();
protected String contentTypeHeaderData = "application/json";
protected String acceptHeaderDate = "application/json";
+ protected boolean isInitialized = false;
@Rule
public static TestName name = new TestName();
@@ -79,28 +74,36 @@ public class CatalogDataApiTest extends ComponentBaseTest {
@BeforeMethod
public void setUp() throws Exception {
+ if (isInitialized)
+ return;
user = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
resourceDetails1 = buildResourceDetails(user, "TestResource1");
+ resourceDetails1.setResourceType(ResourceTypeEnum.VFCMT.name());
resourceDetails2 = buildResourceDetails(user, "TestResource2");
svcDetails1 = buildServiceDetails("TestService1");
+ // VFCMT
res1 = createResource(user, resourceDetails1);
AssertJUnit.assertEquals("create resorce failed", 201, res1.getErrorCode().intValue());
resourceDetails1.setUniqueId(ResponseParser.getUniqueIdFromResponse(res1));
+
resourceDetails2.setVersion(ResponseParser.getVersionFromResponse(res1));
+ // VFC
res2 = createResource(user, resourceDetails2);
AssertJUnit.assertEquals("create resorce failed", 201, res2.getErrorCode().intValue());
resourceDetails2.setUniqueId(ResponseParser.getUniqueIdFromResponse(res2));
resourceDetails2.setVersion(ResponseParser.getVersionFromResponse(res2));
+ // SERVICE
svc1 = createService(user, svcDetails1);
AssertJUnit.assertEquals("create resorce failed", 201, svc1.getErrorCode().intValue());
svcDetails1.setUniqueId(ResponseParser.convertServiceResponseToJavaObject(svc1.getResponse()).getUniqueId());
svcDetails1.setVersion(ResponseParser.convertServiceResponseToJavaObject(svc1.getResponse()).getVersion());
+ isInitialized = true;
}
- @AfterMethod
+ @AfterClass
public void tearDown() throws Exception {
deleteResource(resourceDetails1.getUniqueId(), user.getUserId());
deleteResource(resourceDetails2.getUniqueId(), user.getUserId());
@@ -131,6 +134,66 @@ public class CatalogDataApiTest extends ComponentBaseTest {
}
+ @Test
+ public void getCatalogDataNoVFCMT() throws Exception {
+
+ List<String> excludeTyps = Arrays.asList(OriginTypeEnum.VFCMT.name());
+ RestResponse res = CatalogRestUtils.getCatalog(user.getUserId(), excludeTyps);
+ String json = res.getResponse();
+ JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
+ JSONArray resources = (JSONArray) jsonResp.get("resources");
+ JSONArray services = (JSONArray) jsonResp.get("services");
+
+ // Verify all the expected resources received except of resource1 which is VFCMT
+ AssertJUnit.assertFalse("check resource1 is in response",
+ isComponentInArray(resourceDetails1.getUniqueId(), resources));
+ AssertJUnit.assertTrue("check resource2 is in response",
+ isComponentInArray(resourceDetails2.getUniqueId(), resources));
+ AssertJUnit.assertTrue("check service1 is in response",
+ isComponentInArray(svcDetails1.getUniqueId(), services));
+
+ }
+
+ @Test
+ public void getCatalogDataNoVFCandVFCMT() throws Exception {
+
+ List<String> excludeTyps = Arrays.asList(OriginTypeEnum.VFCMT.name(), OriginTypeEnum.VFC.name());
+ RestResponse res = CatalogRestUtils.getCatalog(user.getUserId(), excludeTyps);
+ String json = res.getResponse();
+ JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
+ JSONArray resources = (JSONArray) jsonResp.get("resources");
+ JSONArray services = (JSONArray) jsonResp.get("services");
+
+ // Verify all the expected resources received except of VFCMT & VFC
+ AssertJUnit.assertFalse("check resource1 is in response",
+ isComponentInArray(resourceDetails1.getUniqueId(), resources));
+ AssertJUnit.assertFalse("check resource2 is in response",
+ isComponentInArray(resourceDetails2.getUniqueId(), resources));
+ AssertJUnit.assertTrue("check service1 is in response",
+ isComponentInArray(svcDetails1.getUniqueId(), services));
+
+ }
+
+ @Test
+ public void getCatalogDataNoServiceAndVFC() throws Exception {
+
+ List<String> excludeTyps = Arrays.asList(OriginTypeEnum.SERVICE.name(), OriginTypeEnum.VFC.name());
+ RestResponse res = CatalogRestUtils.getCatalog(user.getUserId(), excludeTyps);
+ String json = res.getResponse();
+ JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
+ JSONArray resources = (JSONArray) jsonResp.get("resources");
+ JSONArray services = (JSONArray) jsonResp.get("services");
+
+ // Verify all the expected resources received except of VFC & SERVICE
+ AssertJUnit.assertTrue("check resource1 is in response",
+ isComponentInArray(resourceDetails1.getUniqueId(), resources));
+ AssertJUnit.assertFalse("check resource2 is in response",
+ isComponentInArray(resourceDetails2.getUniqueId(), resources));
+ AssertJUnit.assertFalse("check service1 is in response",
+ isComponentInArray(svcDetails1.getUniqueId(), services));
+
+ }
+
protected void deleteResource(String resourceUniqueId, String httpCspUserId) throws Exception {
RestResponse deleteResourceResponse = ResourceRestUtils.deleteResource(resourceUniqueId, httpCspUserId);
@@ -171,6 +234,7 @@ public class CatalogDataApiTest extends ComponentBaseTest {
protected RestResponse createService(User user, ServiceReqDetails svcDetails) throws Exception {
+ deleteService(svcDetails1.getUniqueId(), user);
Config config = Utils.getConfig();
Map<String, String> headersMap = getHeadersMap(user);
@@ -189,7 +253,7 @@ public class CatalogDataApiTest extends ComponentBaseTest {
Map<String, String> headersMap = new HashMap<String, String>();
headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
- headersMap.put(HttpHeaderEnum.USER_ID.getValue(), user.getUserId());
+ headersMap.put("USER_ID", user.getUserId());
return headersMap;
}
@@ -210,15 +274,8 @@ public class CatalogDataApiTest extends ComponentBaseTest {
}
public RestResponse deleteService(String serviceId, User user) throws Exception {
- HttpRequest httpRequest = new HttpRequest();
- String url = String.format(Urls.DELETE_SERVICE, config.getCatalogBeHost(), config.getCatalogBePort(),
- serviceId);
-
- Map<String, String> headersMap = getHeadersMap(user);
- RestResponse res = httpRequest.httpSendDelete(url, headersMap);
- // System.out.println("Delete service was finished with response:
- // "+res.getErrorCode());
- return res;
+ RestResponse deleteServiceResponse = ResourceRestUtils.deleteResource(serviceId, user.getUserId());
+ return deleteServiceResponse;
}
public class NewObject {
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
index 7e8d5cf8cc..4a4e5a4529 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
@@ -435,7 +435,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts");
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
return restResponse;
@@ -584,13 +584,13 @@ public class CRUDExternalAPI extends ComponentBaseTest {
//
// if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getComponentInstances().get(0).getName());
-// String resource_url = String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
+// String resource_url = String.format("/sdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
//
// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
// } else {
// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getName());
-// String resource_url = String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
+// String resource_url = String.format("/sdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
// }
//
@@ -1092,7 +1092,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentResourceInstanceDetails != null) {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
} else {
expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
@@ -1148,7 +1148,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentResourceInstanceDetails != null) {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
} else {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
@@ -2354,7 +2354,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentInstance != null) {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
} else {
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
@@ -2511,7 +2511,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
return restResponse;
@@ -3151,7 +3151,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentInstance != null) {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
} else {
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
@@ -3248,7 +3248,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
return restResponse;
@@ -3314,13 +3314,13 @@ public class CRUDExternalAPI extends ComponentBaseTest {
//
// if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getComponentInstances().get(0).getName());
-// String resource_url = String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
+// String resource_url = String.format("/sdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
//
// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
// } else {
// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getName());
-// String resource_url = String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
+// String resource_url = String.format("/sdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
// }
//
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/HealthCheckAPI.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/HealthCheckAPI.java
new file mode 100644
index 0000000000..cb36619f80
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/HealthCheckAPI.java
@@ -0,0 +1,68 @@
+package org.openecomp.sdc.ci.tests.execute.devCI;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.CommonRestUtils;
+import org.openecomp.sdc.common.api.HealthCheckInfo;
+import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckComponent;
+import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus;
+import org.openecomp.sdc.common.api.HealthCheckWrapper;
+import org.testng.annotations.Test;
+
+import com.google.gson.Gson;
+
+public class HealthCheckAPI extends ComponentBaseTest {
+
+ @Rule
+ public static TestName name = new TestName();
+
+ private static final int STATUS_CODE_GET_SUCCESS = 200;
+
+ public HealthCheckAPI() {
+ super(name, HealthCheckAPI.class.getName());
+ }
+
+ @Test
+ public void checkAmdocsHealthCheckAPI() throws Exception {
+ RestResponse healthCheckInfoResponse = CommonRestUtils.getHealthCheck();
+ BaseRestUtils.checkSuccess(healthCheckInfoResponse);
+
+ Gson gson = new Gson();
+ HealthCheckWrapper healthCheckInfo = gson.fromJson(healthCheckInfoResponse.getResponse(), HealthCheckWrapper.class);
+ assertNotNull("Health check not contains components info", healthCheckInfo.getComponentsInfo());
+ HealthCheckInfo amdocsHC = healthCheckInfo.getComponentsInfo().stream().filter(x -> x.getHealthCheckComponent() == HealthCheckInfo.HealthCheckComponent.ON_BOARDING).findFirst().orElse(null);
+ assertNotNull("Amdocs health check not exists in Health Check info", amdocsHC);
+ assertEquals("Amdocs health check is down", HealthCheckInfo.HealthCheckStatus.UP, amdocsHC.getHealthCheckStatus());
+ assertNotNull("Amdocs additionalInfo not exists in health check", amdocsHC.getComponentsInfo());
+ Map<HealthCheckComponent, HealthCheckStatus> amdocsHCComponents = amdocsHC.getComponentsInfo().stream().collect(Collectors.toMap(HealthCheckInfo::getHealthCheckComponent, HealthCheckInfo::getHealthCheckStatus));
+ assertNotNull(amdocsHCComponents);
+ assertTrue("Amdocs health check ZU component is down or not exists", amdocsHCComponents.get(HealthCheckComponent.ZU) != null && amdocsHCComponents.get(HealthCheckComponent.ZU).equals(HealthCheckStatus.UP));
+ assertTrue("Amdocs health check BE component is down or not exists", amdocsHCComponents.get(HealthCheckComponent.BE) != null && amdocsHCComponents.get(HealthCheckComponent.BE).equals(HealthCheckStatus.UP));
+ assertTrue("Amdocs health check CAS component is down or not exists", amdocsHCComponents.get(HealthCheckComponent.CAS) != null && amdocsHCComponents.get(HealthCheckComponent.CAS).equals(HealthCheckStatus.UP));
+ }
+
+ @Test
+ public void checkCassandraHealthCheck() throws Exception {
+ RestResponse healthCheckInfoResponse = CommonRestUtils.getHealthCheck();
+ BaseRestUtils.checkSuccess(healthCheckInfoResponse);
+
+ Gson gson = new Gson();
+ HealthCheckWrapper healthCheckInfo = gson.fromJson(healthCheckInfoResponse.getResponse(), HealthCheckWrapper.class);
+ assertNotNull("Health check not contains components info", healthCheckInfo.getComponentsInfo());
+ HealthCheckInfo cassandraHC = healthCheckInfo.getComponentsInfo().stream().filter(x -> x.getHealthCheckComponent() == HealthCheckInfo.HealthCheckComponent.CASSANDRA).findFirst().orElse(null);
+ assertNotNull("Cassandra health check not exists in Health Check info", cassandraHC);
+ assertEquals("Cassandra health check is down", HealthCheckInfo.HealthCheckStatus.UP, cassandraHC.getHealthCheckStatus());
+ }
+
+} \ No newline at end of file
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
index bc114e22c5..c52ee470cf 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
@@ -163,13 +163,13 @@ public class BasicHttpAuthenticationTest extends ComponentBaseTest {
ValidationUtils.convertToSystemName(serviceDetails.getName()), serviceDetails.getVersion(),
ValidationUtils.convertToSystemName(resourceDetails.getName()), resourceDetails.getVersion(),
ValidationUtils.normalizeFileName(deploymentArtifact.getArtifactName()));
- expectedDownloadResourceUrl = expectedDownloadResourceUrl.substring("/asdc/".length(),
+ expectedDownloadResourceUrl = expectedDownloadResourceUrl.substring("/sdc/".length(),
expectedDownloadResourceUrl.length());
expectedDownloadServiceUrl = String.format(Urls.DISTRIB_DOWNLOAD_SERVICE_ARTIFACT_RELATIVE_URL,
ValidationUtils.convertToSystemName(serviceDetails.getName()), serviceDetails.getVersion(),
ValidationUtils.normalizeFileName(deploymentArtifact.getArtifactName()));
- expectedDownloadServiceUrl = expectedDownloadServiceUrl.substring("/asdc/".length(),
+ expectedDownloadServiceUrl = expectedDownloadServiceUrl.substring("/sdc/".length(),
expectedDownloadServiceUrl.length());
sdncAdminUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/CsarUtilsTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/CsarUtilsTest.java
index 16d3fcb092..a58ec18840 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/CsarUtilsTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/CsarUtilsTest.java
@@ -43,6 +43,8 @@ import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
@@ -51,7 +53,9 @@ import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
import org.openecomp.sdc.common.util.YamlToObjectConverter;
import org.testng.annotations.Test;
import org.yaml.snakeyaml.Yaml;
@@ -94,13 +98,18 @@ public class CsarUtilsTest extends ComponentBaseTest {
public void createResourceCsarBasicTest() throws Exception {
Resource resourceVF = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
+ User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+
resourceVF = (Resource) AtomicOperationUtils
.changeComponentState(resourceVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
byte[] downloadCSAR = downloadCSAR(sdncModifierDetails, resourceVF);
csarBasicValidation(resourceVF, downloadCSAR);
+
+ validateVFCsar(resourceVF, downloadCSAR, 1, 0, 0, 0, 0, 0, 0);
+
+
}
@Test(enabled = true)
@@ -138,6 +147,7 @@ public class CsarUtilsTest extends ComponentBaseTest {
Resource resourceVF1 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
+
AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.YANG_XML, resourceVF1, UserRoleEnum.DESIGNER, true, true);
AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_ARTIFACT, resourceVF1, UserRoleEnum.DESIGNER, true, true);
@@ -157,7 +167,7 @@ public class CsarUtilsTest extends ComponentBaseTest {
public void createResourceCsarInclInformationalArtTest() throws Exception {
Resource resourceVF1 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
-
+
AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.YANG_XML, resourceVF1, UserRoleEnum.DESIGNER, false, true);
AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceVF1, UserRoleEnum.DESIGNER, false, true);
@@ -173,6 +183,59 @@ public class CsarUtilsTest extends ComponentBaseTest {
validateVFCsar(resourceVF1, downloadCSAR, 1, 0, 0, 0, 1, 1, 0);
}
+ @Test(enabled = true)
+ public void createServiceCsarNotMandatoryMetadataFieldsTest() throws Exception {
+
+ Service service = AtomicOperationUtils.createDefaultService(UserRoleEnum.DESIGNER, true).left().value();
+ User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+
+ service.setServiceType("serviceTypeTest");
+ service.setServiceRole("serviceRoleTest");
+ ServiceRestUtils.updateService(new ServiceReqDetails(service), sdncModifierDetails);
+
+ Resource resourceVF1 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
+ Resource resourceVF2 = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
+
+ resourceVF1 = (Resource) AtomicOperationUtils
+ .changeComponentState(resourceVF1, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
+ resourceVF2 = (Resource) AtomicOperationUtils
+ .changeComponentState(resourceVF2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceVF1, service, UserRoleEnum.DESIGNER, true);
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceVF2, service, UserRoleEnum.DESIGNER, true);
+
+ service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
+ byte[] downloadCSAR = downloadCSAR(sdncModifierDetails, service);
+
+ csarBasicValidation(service, downloadCSAR);
+
+ validateServiceCsar(resourceVF1, resourceVF2, service, downloadCSAR, 3, 3, 0, 0);
+ }
+
+ @Test(enabled = true)
+ public void createResourceCsarNotMandatoryMetadataFieldsTest() throws Exception {
+
+ Resource resourceVF = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
+ User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+
+ resourceVF.setResourceVendorModelNumber("modelNumberTest");
+ ResourceRestUtils.updateResourceMetadata(new ResourceReqDetails(resourceVF), sdncModifierDetails, resourceVF.getUniqueId());
+
+ resourceVF = (Resource) AtomicOperationUtils
+ .changeComponentState(resourceVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
+ byte[] downloadCSAR = downloadCSAR(sdncModifierDetails, resourceVF);
+
+ csarBasicValidation(resourceVF, downloadCSAR);
+
+ validateVFCsar(resourceVF, downloadCSAR, 1, 0, 0, 0, 0, 0, 0);
+
+
+ }
+
+
private void csarBasicValidation(Component mainComponent, byte[] downloadCSAR) {
try (ByteArrayInputStream ins = new ByteArrayInputStream(downloadCSAR);
ZipInputStream zip = new ZipInputStream(ins);) {
@@ -234,11 +297,12 @@ public class CsarUtilsTest extends ComponentBaseTest {
while ((len = zip.read(buffer)) > 0) {
sb.append(new String(buffer, 0, len));
}
- assertTrue(nextEntry.getName().equals("csar.meta"));
-
+ assertTrue(nextEntry.getName().equals("csar.meta"));
readNextEntry(sb, len, buffer, zip);
nextEntry = zip.getNextEntry();
assertTrue(nextEntry.getName().equals("TOSCA-Metadata/TOSCA.meta"));
+ readNextEntry(sb, len, buffer, zip);
+
YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
@@ -483,15 +547,24 @@ public class CsarUtilsTest extends ComponentBaseTest {
String UUID = (String) metadata.get("UUID");
assertNotNull(UUID);
- assertEquals("Validate component invariantUUID", component.getUUID(), UUID);
+ assertEquals("Validate component UUID", component.getUUID(), UUID);
String type = (String) metadata.get("type");
assertNotNull(type);
if (component.getComponentType().equals(ComponentTypeEnum.SERVICE)) {
assertEquals("Validate component type", component.getComponentType().getValue(), type);
+ String serviceType = (String) metadata.get("serviceType");
+ assertNotNull(serviceType);
+ assertEquals("Validate service type", ((Service )component).getServiceType(), serviceType);
+ String serviceRole = (String) metadata.get("serviceRole");
+ assertNotNull(serviceRole);
+ assertEquals("Validate service role", ((Service )component).getServiceRole(), serviceRole);
} else {
assertEquals("Validate component type", ((Resource) component).getResourceType(),
ResourceTypeEnum.valueOf(type));
+ String resourceVendorModelNumber = (String) metadata.get("resourceVendorModelNumber");
+ assertNotNull(resourceVendorModelNumber);
+ assertEquals("Validate resource vendor model number", ((Resource )component).getResourceVendorModelNumber(), resourceVendorModelNumber);
}
}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
index 192f6759c3..2edd3284c4 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.openecomp.sdc.ci.tests.utils.ToscaParserUtils.downloadAndParseToscaTemplate;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
@@ -49,6 +50,7 @@ import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstInputsMap;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.ComponentInstanceInput;
+import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupProperty;
@@ -66,7 +68,9 @@ import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.general.ImportUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
@@ -155,7 +159,7 @@ public class ExportToscaTest extends ComponentBaseTest {
assertNotNull(vfModulesInRes);
assertNotNull(groups);
- assertEquals("Validate count of vf module instanses", vfModulesInRes.size(), groups.size());
+ assertEquals("Validate count of vf module instances", vfModulesInRes.size(), groups.size());
vfModulesInRes.forEach(modInRes -> {
validateVfModuleVsInstance(normalizedName, groups, modInRes);
@@ -361,7 +365,7 @@ public class ExportToscaTest extends ComponentBaseTest {
JsonParser jsonParser = new JsonParser();
- for (Map.Entry<String, List<ComponentInstanceProperty>> entry : componentInstancesProperties.entrySet()) {
+ for (Entry<String, List<ComponentInstanceProperty>> entry : componentInstancesProperties.entrySet()) {
Optional<ComponentInstance> findFirst = componentInstances.stream().filter(ci -> ci.getUniqueId().equals(entry.getKey())).findFirst();
assertTrue(findFirst.isPresent());
@@ -472,10 +476,10 @@ public class ExportToscaTest extends ComponentBaseTest {
// 6 add instance inputs in service
RestResponse getComponentInstanceInputsResponse = InputsRestUtils.getComponentInstanceInputs(service, vfi);
BaseValidationUtils.checkSuccess(getComponentInstanceInputsResponse);
- List<InputDefinition> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<InputDefinition>>() {
+ List<ComponentInstancePropInput> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<ComponentInstancePropInput>>() {
}.getType());
// Take only the 2 first inputs
- List<InputDefinition> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
+ List<ComponentInstancePropInput> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
// 7 Build component instances input map to add to server
ComponentInstInputsMap buildComponentInstInputsMap = buildComponentInstInputsMap(vfi.getUniqueId(), inputsToAdd);
@@ -626,29 +630,6 @@ public class ExportToscaTest extends ComponentBaseTest {
assertEquals("validate input description", inputDef.getDescription(), (String) inputInFile.get("description"));
}
- private Map<String, Object> downloadAndParseToscaTemplate(User sdncModifierDetails, Component createdComponent) throws Exception {
- String artifactUniqeId = createdComponent.getToscaArtifacts().get("assettoscatemplate").getUniqueId();
- RestResponse toscaTemplate;
-
- if (createdComponent.getComponentType() == ComponentTypeEnum.RESOURCE) {
- toscaTemplate = ArtifactRestUtils.downloadResourceArtifactInternalApi(createdComponent.getUniqueId(), sdncModifierDetails, artifactUniqeId);
-
- } else {
- toscaTemplate = ArtifactRestUtils.downloadServiceArtifactInternalApi(createdComponent.getUniqueId(), sdncModifierDetails, artifactUniqeId);
- }
- BaseRestUtils.checkSuccess(toscaTemplate);
-
- ArtifactUiDownloadData artifactUiDownloadData = ResponseParser.parseToObject(toscaTemplate.getResponse(), ArtifactUiDownloadData.class);
- byte[] fromUiDownload = artifactUiDownloadData.getBase64Contents().getBytes();
- byte[] decodeBase64 = Base64.decodeBase64(fromUiDownload);
- Yaml yaml = new Yaml();
-
- InputStream inputStream = new ByteArrayInputStream(decodeBase64);
-
- Map<String, Object> load = (Map<String, Object>) yaml.load(inputStream);
- return load;
- }
-
public ArtifactDefinition findMasterArtifact(Map<String, ArtifactDefinition> deplymentArtifact, List<ArtifactDefinition> artifacts, List<String> artifactsList) {
for (String artifactUid : artifactsList) {
for (Entry<String, ArtifactDefinition> entry : deplymentArtifact.entrySet()) {
@@ -674,8 +655,8 @@ public class ExportToscaTest extends ComponentBaseTest {
return masterArtifact;
}
- private ComponentInstInputsMap buildComponentInstInputsMap(String addToInput, List<InputDefinition> inputs) {
- Map<String, List<InputDefinition>> map = new HashMap<>();
+ private ComponentInstInputsMap buildComponentInstInputsMap(String addToInput, List<ComponentInstancePropInput> inputs) {
+ Map<String, List<ComponentInstancePropInput>> map = new HashMap<>();
map.put(addToInput, inputs);
ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
componentInstInputsMap.setComponentInstanceInputsMap(map);
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ToscaTemplateVersionTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ToscaTemplateVersionTest.java
new file mode 100644
index 0000000000..1fbcd428ca
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ToscaTemplateVersionTest.java
@@ -0,0 +1,67 @@
+package org.openecomp.sdc.ci.tests.execute.imports;
+
+import org.junit.rules.TestName;
+import org.openecomp.sdc.be.model.Service;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.config.Config;
+import org.openecomp.sdc.ci.tests.datatypes.ImportReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.ToscaParserUtils;
+import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.general.ImportUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.nio.file.Paths;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+
+public class ToscaTemplateVersionTest extends ComponentBaseTest {
+
+ private static final String EXPECTED_EXPORT_TOSCA_VERSION = "tosca_simple_yaml_1_1";
+ private static final String YML_110_VERSION = "loadBalancerTestVersion.yml";
+ public static TestName name = new TestName();
+ private String SOURCE_DIR;
+ private static String WORK_DIR = "importToscaResourceByCreateUrl";
+
+ public ToscaTemplateVersionTest() {
+ super(name, ToscaTemplateVersionTest.class.getName());
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ SOURCE_DIR = config.getResourceConfigDir();
+ }
+
+ @Test
+ public void verifyExportYamlVersion() throws Exception {
+ User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ ServiceReqDetails serviceDetails = ElementFactory.getDefaultService("ciYamlVersionTest", ServiceCategoriesEnum.MOBILITY, defaultUser.getUserId());
+ RestResponse serviceResponse = ServiceRestUtils.createService(serviceDetails, defaultUser);
+ BaseRestUtils.checkCreateResponse(serviceResponse);
+ Service service = ResponseParser.parseToObjectUsingMapper(serviceResponse.getResponse(), Service.class);
+ Map<String, Object> load = ToscaParserUtils.downloadAndParseToscaTemplate(defaultUser, service);
+ assertEquals(ToscaParserUtils.getToscaVersion(load), EXPECTED_EXPORT_TOSCA_VERSION);
+ }
+
+ @Test
+ public void testVerifyImportYamlVersion_1_1_0() throws Exception {
+ String testResourcesPath = Paths.get(SOURCE_DIR, WORK_DIR).toString();
+ ImportReqDetails importReqDetails = ImportUtils.getImportResourceDetailsByPathAndName(ElementFactory.getDefaultImportResource(), testResourcesPath,
+ YML_110_VERSION);
+ RestResponse importResourceResponse = ResourceRestUtils.createImportResource(importReqDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ null);
+ BaseRestUtils.checkCreateResponse(importResourceResponse);
+
+ }
+}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
index b71240b527..633ce45178 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
@@ -141,10 +141,10 @@ public class InputsApiTests extends ComponentBaseTest {
ComponentInstance vfInstance = serviceInstances.get(0);
RestResponse getComponentInstanceInputsResponse = InputsRestUtils.getComponentInstanceInputs(service, vfInstance);
BaseValidationUtils.checkSuccess(getComponentInstanceInputsResponse);
- List<InputDefinition> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<InputDefinition>>(){}.getType());
+ List<ComponentInstancePropInput> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<ComponentInstancePropInput>>(){}.getType());
// Take only the 2 first inputs
- List<InputDefinition> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
+ List<ComponentInstancePropInput> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
// Build component instances input map to add to server
ComponentInstInputsMap buildComponentInstInputsMap = buildComponentInstInputsMap(vfInstance.getUniqueId(), inputsToAdd);
@@ -321,8 +321,8 @@ public class InputsApiTests extends ComponentBaseTest {
* @param inputs
* @return {@link org.openecomp.sdc.be.model.ComponentInstInputsMap}
*/
- private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<InputDefinition> inputs) {
- Map<String, List<InputDefinition>> map = new HashMap<>();
+ private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<ComponentInstancePropInput> inputs) {
+ Map<String, List<ComponentInstancePropInput>> map = new HashMap<>();
map.put(addToInput, inputs);
ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
componentInstInputsMap.setComponentInstanceInputsMap(map);
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/resource/GetLeftPaletteTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/resource/GetLeftPaletteTest.java
new file mode 100644
index 0000000000..4ad008633a
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/resource/GetLeftPaletteTest.java
@@ -0,0 +1,193 @@
+package org.openecomp.sdc.ci.tests.execute.resource;
+
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.JSONValue;
+import org.junit.rules.TestName;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import static org.testng.AssertJUnit.assertTrue;
+
+/**
+ * Created by chaya on 6/15/2017.
+ */
+public class GetLeftPaletteTest extends ComponentBaseTest {
+
+ private static Logger logger = LoggerFactory.getLogger(GetLeftPaletteTest.class.getName());
+ protected User designerDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ protected ResourceReqDetails vlResourceDetails;
+ protected ResourceReqDetails cpResourceDetails;
+ protected ResourceReqDetails vfcResourceDetails;
+ protected ResourceReqDetails vfcmtResourceDetails;
+ protected ResourceReqDetails vfResourceDetails;
+
+
+ public static TestName name = new TestName();
+
+ public GetLeftPaletteTest() {
+ super(name, GetLeftPaletteTest.class.getName());
+ }
+
+ @BeforeClass
+ public void setUp() throws Exception {
+ // create VL
+ vlResourceDetails = createResource(vlResourceDetails, "vlRes", ResourceTypeEnum.VL);
+ checkInResource(vlResourceDetails);
+
+ // create CP
+ cpResourceDetails = createResource(cpResourceDetails, "cpRes", ResourceTypeEnum.CP);
+ checkInResource(cpResourceDetails);
+
+ // create VFC
+ vfcResourceDetails = createResource(vfcResourceDetails, "vfcRes", ResourceTypeEnum.VFC);
+ checkInResource(vfcResourceDetails);
+
+ // create VFCMT
+ vfcmtResourceDetails = createResource(vfcmtResourceDetails, "vfcmtRes", ResourceTypeEnum.VFCMT);
+ checkInResource(vfcmtResourceDetails);
+
+ // create VF
+ vfResourceDetails = createResource(vfResourceDetails, "vfRes", ResourceTypeEnum.VF);
+ checkInResource(vfResourceDetails);
+ }
+
+
+
+ @Test
+ public void testGetLeftPaletteForPNF() throws IOException {
+
+ RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionListMetadata(designerDetails, "PNF");
+ assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
+ getResourceLatestVersionResponse.getErrorCode() == 200);
+
+ String json = getResourceLatestVersionResponse.getResponse();
+ JSONArray jsonResp = (JSONArray) JSONValue.parse(json);
+
+ AssertJUnit.assertTrue("check vlResource is in response",
+ isComponentInArray(vlResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertTrue("check cpResource is in response",
+ isComponentInArray(cpResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfcResource is not in response",
+ isComponentInArray(vfcResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfResource is not in response",
+ isComponentInArray(vfResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfcmtResource is not in response",
+ isComponentInArray(vfcmtResourceDetails.getUniqueId(), jsonResp));
+
+ }
+
+ @Test
+ public void testGetLeftPaletteForVF() throws IOException {
+
+ RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionListMetadata(designerDetails, "VF");
+ assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
+ getResourceLatestVersionResponse.getErrorCode() == 200);
+
+ String json = getResourceLatestVersionResponse.getResponse();
+ JSONArray jsonResp = (JSONArray) JSONValue.parse(json);
+
+ AssertJUnit.assertTrue("check vlResource is in response",
+ isComponentInArray(vlResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertTrue("check cpResource is in response",
+ isComponentInArray(cpResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertTrue("check vfcResource is not in response",
+ isComponentInArray(vfcResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfResource is not in response",
+ isComponentInArray(vfResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfcmtResource is not in response",
+ isComponentInArray(vfcmtResourceDetails.getUniqueId(), jsonResp));
+
+ }
+
+ @Test
+ public void testGetLeftPaletteForService() throws IOException {
+
+ RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionListMetadata(designerDetails, "SERVICE");
+ assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
+ getResourceLatestVersionResponse.getErrorCode() == 200);
+
+ String json = getResourceLatestVersionResponse.getResponse();
+ JSONArray jsonResp = (JSONArray) JSONValue.parse(json);
+
+ AssertJUnit.assertTrue("check vlResource is in response",
+ isComponentInArray(vlResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertTrue("check cpResource is in response",
+ isComponentInArray(cpResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfcResource is not in response",
+ isComponentInArray(vfcResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertTrue("check vfResource is not in response",
+ isComponentInArray(vfResourceDetails.getUniqueId(), jsonResp));
+
+ AssertJUnit.assertFalse("check vfcmtResource is not in response",
+ isComponentInArray(vfcmtResourceDetails.getUniqueId(), jsonResp));
+
+ }
+
+ private ResourceReqDetails createResource(ResourceReqDetails resDetails, String name, ResourceTypeEnum resType) throws Exception {
+ resDetails = new ResourceReqDetails(name, "desc",Arrays.asList(name), "Generic", Arrays.asList("tosca.nodes.Root"), "c", "1", "111", "myIcon", resType.name());
+ resDetails.addCategoryChain(ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS.getCategory(),
+ ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS.getSubCategory());
+ RestResponse response = ResourceRestUtils.createResource(resDetails, designerDetails);
+ assertTrue("response code is not 200, returned :" + response.getErrorCode(),
+ response.getErrorCode() == 201);
+ resDetails.setUniqueId(ResponseParser.getUniqueIdFromResponse(response));
+ return resDetails;
+ }
+
+ private void checkInResource(ResourceReqDetails resDetails) throws IOException {
+ RestResponse checkInResponse = LifecycleRestUtils.changeResourceState(resDetails, designerDetails, "0.1",
+ LifeCycleStatesEnum.CHECKIN);
+ AssertJUnit.assertEquals("check in operation failed", 200, checkInResponse.getErrorCode().intValue());
+
+ }
+
+ protected boolean isComponentInArray(String id, JSONArray component) {
+ for (int i = 0; i < component.size(); i++) {
+ JSONObject jobject = (JSONObject) component.get(i);
+ if (jobject.get("uniqueId").toString().equals(id.toLowerCase())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @AfterClass
+ public void tearDown() throws IOException {
+ ResourceRestUtils.deleteResource(vlResourceDetails.getUniqueId(), designerDetails.getUserId());
+ ResourceRestUtils.deleteResource(cpResourceDetails.getUniqueId(), designerDetails.getUserId());
+ ResourceRestUtils.deleteResource(vfcResourceDetails.getUniqueId(), designerDetails.getUserId());
+ ResourceRestUtils.deleteResource(vfcmtResourceDetails.getUniqueId(), designerDetails.getUserId());
+ ResourceRestUtils.deleteResource(vfResourceDetails.getUniqueId(), designerDetails.getUserId());
+ }
+}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/service/ServiceComponentInstanceCRUDTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/service/ServiceComponentInstanceCRUDTest.java
index 149febf05c..2939a8a09e 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/service/ServiceComponentInstanceCRUDTest.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/service/ServiceComponentInstanceCRUDTest.java
@@ -34,13 +34,7 @@ import org.json.JSONArray;
import org.junit.rules.TestName;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.model.CapReqDef;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
-import org.openecomp.sdc.be.model.RequirementDefinition;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.ci.tests.api.ComponentInstanceBaseTest;
import org.openecomp.sdc.ci.tests.api.Urls;
import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
@@ -93,10 +87,13 @@ public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest
createAtomicResource(resourceDetailsVFC_01);
createAtomicResource(resourceDetailsVFC_02);
createAtomicResource(resourceDetailsCP_01);
+ LifecycleRestUtils.changeResourceState(resourceDetailsCP_01, sdncAdminDetails, "0.1",
+ LifeCycleStatesEnum.CHECKIN);
createAtomicResource(resourceDetailsVL_01);
createAtomicResource(resourceDetailsVL_02);
createVF(resourceDetailsVF_01);
createVF(resourceDetailsVF_02);
+ createPNF(resourceDetailsPNF_01);
createService(serviceDetails_01);
certifyResource(resourceDetailsVFC_01);
certifyResource(resourceDetailsVFC_02);
@@ -173,6 +170,10 @@ public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest
return createVFInstance(containerDetails, compInstOriginDetails, modifier);
}
+ private RestResponse createCheckedinPNFInstance(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
+ return createCheckedinVFInstance(containerDetails, compInstOriginDetails, modifier);
+ }
+
private RestResponse createCheckedinAtomicInstanceForService(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
changeResourceLifecycleState(compInstOriginDetails, compInstOriginDetails.getCreatorUserId(), LifeCycleStatesEnum.CHECKIN);
return createAtomicInstanceForService(containerDetails, compInstOriginDetails, modifier);
@@ -205,6 +206,16 @@ public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest
}
@Test
+ public void createPNFInstanceSuccessfullyTest() throws Exception {
+ RestResponse createPNFInstResp = createCheckedinPNFInstance(serviceDetails_01, resourceDetailsPNF_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createPNFInstResp);
+ getComponentAndValidateRIs(serviceDetails_01, 1, 0);
+// createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_02, sdncDesignerDetails);
+// ResourceRestUtils.checkCreateResponse(createVFInstResp);
+// getComponentAndValidateRIs(serviceDetails_01, 2, 0);
+ }
+
+ @Test
public void createVFAndAtomicInstanceTest() throws Exception {
RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
ResourceRestUtils.checkCreateResponse(createVFInstResp);
@@ -218,6 +229,56 @@ public class ServiceComponentInstanceCRUDTest extends ComponentInstanceBaseTest
}
@Test
+ public void createPNFAndAtomicInstanceTest() throws Exception {
+ RestResponse createPNFInstResp = createCheckedinPNFInstance(serviceDetails_01, resourceDetailsPNF_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createPNFInstResp);
+ RestResponse createVLInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createVLInstResp);
+ getComponentAndValidateRIs(serviceDetails_01, 2, 0);
+
+
+ }
+
+ private String createCpInstance() throws Exception {
+ // Create CP instance
+ RestResponse createAtomicResourceInstance = createAtomicInstanceForVF(resourceDetailsPNF_01,
+ resourceDetailsCP_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createAtomicResourceInstance);
+ getComponentAndValidateRIs(resourceDetailsPNF_01, 1, 0);
+ return ResponseParser.getUniqueIdFromResponse(createAtomicResourceInstance);
+ }
+
+ @Test
+ public void createPNFAndAtomicInstanceAssociatedTest() throws Exception {
+ reqOwnerId = createCpInstance();
+ RestResponse createPNFInstResp = createCheckedinPNFInstance(serviceDetails_01, resourceDetailsPNF_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createPNFInstResp);
+ String fromCompInstId = ResponseParser.getUniqueIdFromResponse(createPNFInstResp);
+ RestResponse createVLInstResp = createCheckedinAtomicInstanceForService(serviceDetails_01, resourceDetailsVL_01, sdncDesignerDetails);
+ ResourceRestUtils.checkCreateResponse(createVLInstResp);
+ capOwnerId = ResponseParser.getUniqueIdFromResponse(createVLInstResp);
+ String toCompInstId = ResponseParser.getUniqueIdFromResponse(createVLInstResp);
+
+ String capType = "tosca.capabilities.network.Linkable";
+ String reqName = "link";
+
+ RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
+ ResourceRestUtils.checkSuccess(getResourceResponse);
+ CapReqDef capReqDef = ResponseParser.parseToObjectUsingMapper(getResourceResponse.getResponse(), CapReqDef.class);
+ List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
+ List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
+
+ RequirementCapabilityRelDef requirementDef = getReqCapRelation(fromCompInstId, toCompInstId, capType, reqName, capList, reqList);
+
+ associateComponentInstancesForService(requirementDef, serviceDetails_01, sdncDesignerDetails);
+ getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(sdncDesignerDetails, serviceDetails_01);
+ capReqDef = ResponseParser.parseToObjectUsingMapper(getResourceResponse.getResponse(), CapReqDef.class);
+ List<RequirementDefinition> list = capReqDef.getRequirements().get(capType);
+// AssertJUnit.assertEquals("Check requirement", null, list);
+ getComponentAndValidateRIsOnly(serviceDetails_01, 2, 1);
+ }
+
+ @Test
public void deleteAtomicInstanceTest() throws Exception {
RestResponse createVFInstResp = createCheckedinVFInstance(serviceDetails_01, resourceDetailsVF_01, sdncDesignerDetails);
// 1 rel
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/DistributionUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/DistributionUtils.java
index 85b01e6d2b..6bfa1b8e94 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/DistributionUtils.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/DistributionUtils.java
@@ -63,7 +63,7 @@ import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
//
public class DistributionUtils {
- final static String serviceDistributionSuffix = "/asdc/v1/catalog/services/";
+ final static String serviceDistributionSuffix = "/sdc/v1/catalog/services/";
public static ServiceDistributionStatus getLatestServiceDistributionObject(Service service) throws IOException, ParseException {
ServiceDistributionStatus serviceDistributionStatus = null;
@@ -124,13 +124,13 @@ import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
}
private static String buildServiceDeploymentUrl(Service service, String artifactName, String artifactUUID) {
-// format "/asdc/v1/catalog/services/" + service.getSystemName() + "/" + service.getVersion() + "/artifacts/AAI-" + service.getName() + "-service-1.xml"
+// format "/sdc/v1/catalog/services/" + service.getSystemName() + "/" + service.getVersion() + "/artifacts/AAI-" + service.getName() + "-service-1.xml"
return serviceDistributionSuffix + service.getSystemName() + "/" + service.getVersion() + "/artifacts/" + artifactName;
}
public static String buildResourceInstanceDeploymentUrl(Service service, String artifactName, String artifactUUID){
-// /asdc/v1/catalog/services/Servicefordistribution/1.0 /resourceInstances/nestedfrommarina2 /artifacts/FEAdd_On_Module_vProbeLauncher.yaml
+// /sdc/v1/catalog/services/Servicefordistribution/1.0 /resourceInstances/nestedfrommarina2 /artifacts/FEAdd_On_Module_vProbeLauncher.yaml
String resourceInstanceNormalizedName = getResourceInstanceNormalizeName(service, artifactName, artifactUUID );
return serviceDistributionSuffix + service.getSystemName() + "/" + service.getVersion() + "/resourceInstances/" + resourceInstanceNormalizedName +"/artifacts/" + artifactName;
}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
index e5928b327f..5449a5fc6b 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
@@ -22,19 +22,30 @@ package org.openecomp.sdc.ci.tests.utils;
import static org.testng.AssertJUnit.assertNotNull;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.apache.commons.codec.binary.Base64;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactUiDownloadData;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.datatypes.enums.ToscaKeysEnum;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaNodeTemplatesTopologyTemplateDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaNodeTypesDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaPropertiesNodeTemplatesDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaRequirementsNodeTemplatesDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaTopologyTemplateDefinition;
+import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
import org.openecomp.sdc.ci.tests.utils.validation.CsarValidationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,6 +65,29 @@ public class ToscaParserUtils {
return null;
}
+ public static Map<String, Object> downloadAndParseToscaTemplate(User sdncModifierDetails, Component createdComponent) throws Exception {
+ String artifactUniqeId = createdComponent.getToscaArtifacts().get("assettoscatemplate").getUniqueId();
+ RestResponse toscaTemplate;
+
+ if (createdComponent.getComponentType() == ComponentTypeEnum.RESOURCE) {
+ toscaTemplate = ArtifactRestUtils.downloadResourceArtifactInternalApi(createdComponent.getUniqueId(), sdncModifierDetails, artifactUniqeId);
+
+ } else {
+ toscaTemplate = ArtifactRestUtils.downloadServiceArtifactInternalApi(createdComponent.getUniqueId(), sdncModifierDetails, artifactUniqeId);
+ }
+ BaseRestUtils.checkSuccess(toscaTemplate);
+
+ ArtifactUiDownloadData artifactUiDownloadData = ResponseParser.parseToObject(toscaTemplate.getResponse(), ArtifactUiDownloadData.class);
+ byte[] fromUiDownload = artifactUiDownloadData.getBase64Contents().getBytes();
+ byte[] decodeBase64 = Base64.decodeBase64(fromUiDownload);
+ Yaml yaml = new Yaml();
+
+ InputStream inputStream = new ByteArrayInputStream(decodeBase64);
+
+ Map<String, Object> load = (Map<String, Object>) yaml.load(inputStream);
+ return load;
+ }
+
public static ToscaDefinition getToscaDefinitionObjectByCsarUuid(String csarUUID) throws Exception {
String TOSCAMetaLocation = "TOSCA-Metadata/TOSCA.meta";
@@ -70,7 +104,7 @@ public class ToscaParserUtils {
ToscaKeysEnum toscaKey = ToscaKeysEnum.findToscaKey((String) key);
switch (toscaKey) {
case TOSCA_DEFINITION_VERSION:
- getToscaDefinitionVersion(toscaMap, toscaDefinition);
+ enrichToscaDefinitionWithToscaVersion(toscaMap, toscaDefinition);
break;
case NODE_TYPES:
getToscaNodeTypes(toscaMap, toscaDefinition);
@@ -92,19 +126,23 @@ public class ToscaParserUtils {
}
- public static void getToscaDefinitionVersion(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) {
+ public static void enrichToscaDefinitionWithToscaVersion(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) {
if (toscaMap.get("tosca_definitions_version") != null) {
- toscaDefinition.setToscaDefinitionVersion((String) toscaMap.get("tosca_definitions_version"));
+ toscaDefinition.setToscaDefinitionVersion(getToscaVersion(toscaMap));
}
}
+ public static String getToscaVersion(Map<?, ?> toscaMap) {
+ return (String) toscaMap.get("tosca_definitions_version");
+ }
+
// spec 90 page
public static void getToscaNodeTypes(Map<?, ?> toscaMap, ToscaDefinition toscaDefinition) {
@SuppressWarnings("unchecked")
Map<String, Map<String, String>> nodeTypes = (Map<String, Map<String, String>>) toscaMap.get("node_types");
List<ToscaNodeTypesDefinition> listToscaNodeTypes = new ArrayList<>();
if (nodeTypes != null) {
- for (Map.Entry<String, Map<String, String>> entry : nodeTypes.entrySet()) {
+ for (Entry<String, Map<String, String>> entry : nodeTypes.entrySet()) {
ToscaNodeTypesDefinition toscaNodeTypes = new ToscaNodeTypesDefinition();
String toscaNodeName = entry.getKey();
toscaNodeTypes.setName(toscaNodeName);
@@ -179,7 +217,7 @@ public class ToscaParserUtils {
@SuppressWarnings("unchecked")
List<Map<String, Object>> requirementList = (List<Map<String, Object>>) node.get("requirements");
for (int i = 0; i < requirementList.size(); i++) {
- for (Map.Entry<String, Object> requirement : requirementList.get(i).entrySet()) {
+ for (Entry<String, Object> requirement : requirementList.get(i).entrySet()) {
ToscaRequirementsNodeTemplatesDefinition toscaRequirement = new ToscaRequirementsNodeTemplatesDefinition();
if (requirement.getKey() != null) {
String requirementName = requirement.getKey();
@@ -237,7 +275,7 @@ public class ToscaParserUtils {
if (node.get("properties") != null) {
@SuppressWarnings("unchecked")
Map<String, Object> properties = (Map<String, Object>) node.get("properties");
- for (Map.Entry<String, Object> property : properties.entrySet()) {
+ for (Entry<String, Object> property : properties.entrySet()) {
ToscaPropertiesNodeTemplatesDefinition toscaProperty = new ToscaPropertiesNodeTemplatesDefinition();
String propertyName = property.getKey();
Object propertyValue = property.getValue();
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/general/ElementFactory.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/general/ElementFactory.java
index c06cb570f8..1578b6eba0 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/general/ElementFactory.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/general/ElementFactory.java
@@ -689,7 +689,7 @@ public class ElementFactory {
ExpectedExternalAudit expectedExternalAudit = new ExpectedExternalAudit();
expectedExternalAudit.setACTION(action.getName());
expectedExternalAudit.setCONSUMER_ID("ci");
- expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetType.getValue() + (query == null ? "" : query));
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + (query == null ? "" : query));
expectedExternalAudit.setSTATUS("200");
expectedExternalAudit.setDESC("OK");
return expectedExternalAudit;
@@ -752,7 +752,7 @@ public class ElementFactory {
expectedResourceAuditJavaObject.setResourceName(resourceName);
expectedResourceAuditJavaObject.setResourceType("Resource");
expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- expectedResourceAuditJavaObject.setRESOURCE_URL("/asdc/v1/catalog/resources");
+ expectedResourceAuditJavaObject.setRESOURCE_URL("/sdc/v1/catalog/resources");
expectedResourceAuditJavaObject.setMODIFIER("");
expectedResourceAuditJavaObject.setPrevVersion("");
expectedResourceAuditJavaObject.setCurrVersion("0.1");
@@ -769,7 +769,7 @@ public class ElementFactory {
public static ExpectedExternalAudit getDefaultExternalArtifactAuditSuccess(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, String componentUUID, String resourceInstanceName) {
ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalArtifactAuditSuccess(assetType, action, artifactDefinition, componentUUID);
- expectedExternalArtifactAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
+ expectedExternalArtifactAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
return expectedExternalArtifactAudit;
}
@@ -794,7 +794,7 @@ public class ElementFactory {
String resourceInstanceName) {
ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalArtifactAuditFailure(assetType, action, artifactDefinition, componentUUID, errorInfo, variables);
- expectedExternalArtifactAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
+ expectedExternalArtifactAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
return expectedExternalArtifactAudit;
}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
index 7272e345ae..5565780dd5 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/AssetRestUtils.java
@@ -76,10 +76,10 @@ public class AssetRestUtils extends BaseRestUtils {
static final String contentTypeHeaderData = "application/json";
static final String acceptHeaderDate = "application/json";
static final String basicAuthentication = "Basic Y2k6MTIzNDU2";
- // /asdc/v1/catalog/{services/resources}/{componentUUID}/artifacts/{artifactUUID}
- static final String COMPONENT_ARTIFACT_URL = "/asdc/v1/catalog/%s/%s/artifacts/%s";
- // /asdc/v1/catalog/{services/resources}/{componentUUID}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}
- static final String RESOURCE_INSTANCE_ARTIFACT_URL = "/asdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
+ // /sdc/v1/catalog/{services/resources}/{componentUUID}/artifacts/{artifactUUID}
+ static final String COMPONENT_ARTIFACT_URL = "/sdc/v1/catalog/%s/%s/artifacts/%s";
+ // /sdc/v1/catalog/{services/resources}/{componentUUID}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}
+ static final String RESOURCE_INSTANCE_ARTIFACT_URL = "/sdc/v1/catalog/%s/%s/resourceInstances/%s/artifacts/%s";
public static HttpResponse getComponentToscaModel(AssetTypeEnum assetType, String uuid) throws IOException {
Config config = Utils.getConfig();
@@ -338,7 +338,7 @@ public class AssetRestUtils extends BaseRestUtils {
// assertNotNull("Expected artifact asset resourceInvariantUUID
// is null",
// resourceInstanceAssetStructure.getResourceInvariantUUID());
- // String expectedArtifactUrl = "/asdc/v1/catalog/" +
+ // String expectedArtifactUrl = "/sdc/v1/catalog/" +
// assetType.getValue() + "/" + componentUuid + "/artifacts/" +
// componentDeploymentArtifactValue.getArtifactUUID();
String expectedArtifactUrl = "";
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
index a265639804..522a91f7d3 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
@@ -21,8 +21,7 @@
package org.openecomp.sdc.ci.tests.utils.rest;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import org.openecomp.sdc.ci.tests.api.Urls;
import org.openecomp.sdc.ci.tests.config.Config;
@@ -52,6 +51,15 @@ public class CatalogRestUtils extends BaseRestUtils {
return sendGet(url, userId);
}
+ public static RestResponse getCatalog(String userId, List<String> excludeList) throws IOException {
+ Config config = Utils.getConfig();
+ String url = String.format(Urls.GET_CATALOG_DATA, config.getCatalogBeHost(), config.getCatalogBePort());
+ StringBuilder sb = new StringBuilder();
+ sb.append(url).append("?");
+ Optional.ofNullable(excludeList).orElse(Collections.emptyList()).forEach(type -> sb.append("excludeTypes="+type+"&"));
+ return sendGet(sb.toString(), userId);
+ }
+
public static RestResponse getAllCategoriesTowardsCatalogBe() throws IOException {
Config config = Utils.getConfig();
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CommonRestUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CommonRestUtils.java
new file mode 100644
index 0000000000..bc807df7fa
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CommonRestUtils.java
@@ -0,0 +1,23 @@
+package org.openecomp.sdc.ci.tests.utils.rest;
+
+import org.openecomp.sdc.ci.tests.api.Urls;
+import org.openecomp.sdc.ci.tests.config.Config;
+import org.openecomp.sdc.ci.tests.utils.Utils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+
+public class CommonRestUtils extends BaseRestUtils {
+
+ private static Logger logger = LoggerFactory.getLogger(CommonRestUtils.class.getName());
+
+ public static RestResponse getHealthCheck() throws Exception {
+
+ Config config = Utils.getConfig();
+ String url = String.format(Urls.GET_HEALTH_CHECK_VIA_PROXY, config.getCatalogFeHost(), config.getCatalogFePort());
+
+ return sendGet(url, null);
+
+ }
+}
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResourceRestUtils.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResourceRestUtils.java
index 90371662a7..b17deb3756 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResourceRestUtils.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResourceRestUtils.java
@@ -254,6 +254,20 @@ public class ResourceRestUtils extends BaseRestUtils {
return sendGet(url, sdncModifierDetails.getUserId());
}
+ public static RestResponse getResourceLatestVersionListMetadata(User sdncModifierDetails, String internalComponentType) throws IOException {
+
+ Config config = Utils.getConfig();
+ StringBuilder sb = new StringBuilder();
+ String url = String.format(Urls.GET_RESOURCE_METADATA_lATEST_VERSION, config.getCatalogBeHost(),
+ config.getCatalogBePort());
+ sb.append(url);
+ if (internalComponentType != null && !internalComponentType.isEmpty()) {
+ sb.append("?internalComponentType="+internalComponentType);
+ }
+ return sendGet(sb.toString(), sdncModifierDetails.getUserId());
+
+ }
+
public static RestResponse getResourceByNameAndVersion(String userId, String resourceName, String resourceVersion)
throws IOException {
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
index 39f2c04b55..6ffb2b29b5 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
@@ -436,7 +436,7 @@ public class ResponseParser {
}
public static List<String> getDerivedListFromJson(RestResponse res) throws JSONException {
- JSONArray listFromJson = getListFromJson(res, "derivedList");
+ JSONArray listFromJson = getListFromJson(res, "derivedFrom");
List<String> lst = new ArrayList<String>();
for (int i = 0; i < listFromJson.length(); i++) {
lst.add(listFromJson.getString(i));
diff --git a/asdc-tests/src/test/resources/CI/tests/importToscaResourceByCreateUrl/loadBalancerTestVersion.yml b/asdc-tests/src/test/resources/CI/tests/importToscaResourceByCreateUrl/loadBalancerTestVersion.yml
new file mode 100644
index 0000000000..6b68dd00d4
--- /dev/null
+++ b/asdc-tests/src/test/resources/CI/tests/importToscaResourceByCreateUrl/loadBalancerTestVersion.yml
@@ -0,0 +1,6 @@
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+node_types:
+ org.openecomp.resource.vfc.nodes.LoadBalancerTest1:
+ derived_from: tosca.nodes.Root
+ properties:
+
diff --git a/asdctool/pom.xml b/asdctool/pom.xml
index da1b9160fd..a7a122f43b 100644
--- a/asdctool/pom.xml
+++ b/asdctool/pom.xml
@@ -48,17 +48,100 @@
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>org.openecomp.sdc</groupId>
<artifactId>catalog-be</artifactId>
<version>${project.version}</version>
<!-- Comment Out in order to debug in eclipse -->
- <classifier>classes</classifier>
+ <classifier>classes</classifier>
+
+ <exclusions>
+ <exclusion>
+ <groupId>org.openecomp.ecompsdkos</groupId>
+ <artifactId>epsdk-fw</artifactId>
+ </exclusion>
+
+ <exclusion>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-core</artifactId>
+ </exclusion>
+
+ <exclusion>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ </exclusion>
+ </exclusions>
+
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.ecompsdkos</groupId>
+ <artifactId>epsdk-fw</artifactId>
+ <version>${ecomp.version}</version>
<scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.att.nsa</groupId>
+ <artifactId>cambriaClient</artifactId>
+ </exclusion>
+
+ <exclusion>
+ <artifactId>slf4j-log4j12</artifactId>
+ <groupId>org.slf4j</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
+
+ <!--Artifact Generator-->
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-api</artifactId>
+ <version>${artifact-generator-api.version}</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-sdc-artifact-generator-core</artifactId>
+ <version>${artifact-generator-core.version}</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${dox-common-lib.version}</version>
+ <type>pom</type>
+ <exclusions>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+
<!-- ASDC dependencies end -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
@@ -76,6 +159,12 @@
</dependency>
<dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
@@ -417,6 +506,20 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>${testng.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>${mockito.version}</version>
+ <scope>test</scope>
+ </dependency>
<!-- testing end -->
</dependencies>
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1604/ServiceMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1604/ServiceMigration.java
index ee5171d8ab..0ef435e1c3 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1604/ServiceMigration.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1604/ServiceMigration.java
@@ -706,7 +706,7 @@ public class ServiceMigration {
Either<ImmutablePair<ComponentInstanceData, GraphEdge>, TitanOperationStatus> reqInst = titanGenericDao.getParentNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RelationshipInst), rel.getUniqueId(), GraphEdgeLabels.RELATIONSHIP_INST,
NodeTypeEnum.ResourceInstance, ComponentInstanceData.class);
if (reqInst.isRight()) {
- log.debug("updateRelations : failed to fetch capabilty component instance for relation {}, error {}", rel.getUniqueId(), reqInst.right().value());
+ log.debug("updateRelations : failed to fetch capability component instance for relation {}, error {}", rel.getUniqueId(), reqInst.right().value());
return false;
}
ComponentInstanceData requirementInstanceData = reqInst.left().value().getLeft();
@@ -917,6 +917,9 @@ public class ServiceMigration {
case CP:
originType = OriginTypeEnum.CP;
break;
+ case CVFC:
+ originType = OriginTypeEnum.CVFC;
+ break;
default:
log.debug("updateComponentInstanceType failed, no supported resource type {} for origin resource with id {}", resourceType, originId);
return false;
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707ArtifactUuidFix.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707ArtifactUuidFix.java
index c14301ae5e..b3f138241e 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707ArtifactUuidFix.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707ArtifactUuidFix.java
@@ -103,10 +103,10 @@ public class Migration1707ArtifactUuidFix {
if (runMode.equals("fix") || runMode.equals("fix_only_services")) {
log.info("Mode {}. Start fix", runMode);
if (fix(vfLst, serviceList) == false) {
- log.info("Mode {}. Fix finished withh failure", runMode);
+ log.info("Mode {}. Fix finished with failure", runMode);
return false;
}
- log.info("Mode {}. Fix finished withh success", runMode);
+ log.info("Mode {}. Fix finished with success", runMode);
}
return true;
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707Config.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707Config.java
index 21a6ae1416..36919d7520 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707Config.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707Config.java
@@ -271,4 +271,9 @@ public class Migration1707Config {
return new NodeTemplateMissingDataResolver<>();
}
+ @Bean(name = "migration1707MissingInfoFix")
+ public Migration1707MissingInfoFix migration1707MissingInfoFix() {
+ return new Migration1707MissingInfoFix();
+ }
+
}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707MissingInfoFix.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707MissingInfoFix.java
new file mode 100644
index 0000000000..ff41f12b8e
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/Migration1707MissingInfoFix.java
@@ -0,0 +1,220 @@
+package org.openecomp.sdc.asdctool.impl.migration.v1707;
+
+import fj.data.Either;
+import org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel.NodeTemplateMissingDataResolver;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
+import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
+import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.elements.*;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
+import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
+import org.openecomp.sdc.be.model.*;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.model.operations.api.IServiceOperation;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+@org.springframework.stereotype.Component("migration1707MissingInfoFix")
+public class Migration1707MissingInfoFix {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(Migration1707MissingInfoFix.class);
+
+ @Resource(name = "service-operation")
+ private IServiceOperation serviceOperation;
+
+ @Resource(name = "node-template-missing-data-resolver")
+ private NodeTemplateMissingDataResolver nodeTemplateMissingDataResolver;
+
+ @Resource(name = "tosca-operation-facade")
+ private ToscaOperationFacade toscaOperations;
+
+ @Resource(name = "titan-dao")
+ private TitanDao titanDao;
+
+
+ public boolean migrate(){
+ boolean res = updateVFs();
+ if(res)
+ res = updateServices();
+ return res;
+ }
+
+ private ComponentParametersView getFilter() {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreComponentInstances(false);
+ filter.setIgnoreArtifacts(false);
+ filter.setIgnoreGroups(false);
+ filter.setIgnoreComponentInstancesInputs(false);
+ return filter;
+ }
+
+ // if new service has VF instances with no groups - try to fetch them from old graph
+ private boolean oldServiceModelRequired(Component newService) {
+ Predicate<ComponentInstance> vfInstanceWithNoGroups = p -> OriginTypeEnum.VF == p.getOriginType() && (null == p.getGroupInstances() || p.getGroupInstances().isEmpty());
+ return null != newService.getComponentInstances() && newService.getComponentInstances().stream()
+ .anyMatch(vfInstanceWithNoGroups);
+ }
+
+
+
+ private List<GraphVertex> fetchVertices(Map<GraphPropertyEnum, Object> hasProps){
+ Either<List<GraphVertex>, TitanOperationStatus> componentsByCriteria = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, JsonParseFlagEnum.ParseAll);
+ if (componentsByCriteria.isRight()) {
+ LOGGER.debug("couldn't fetch assets from sdctitan");
+ return null;
+ }
+ return componentsByCriteria.left().value();
+ }
+
+ private boolean updateVFs() {
+
+ boolean res = true;
+ Map<GraphPropertyEnum, Object> hasProps = new HashMap<>();
+ hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF.name());
+
+ List<GraphVertex> resources = fetchVertices(hasProps);
+ if(null == resources)
+ return false;
+ ComponentParametersView filter = getFilter();
+ Map<String, ToscaElement> origCompMap = new HashMap<>();
+
+ for (GraphVertex gv : resources) {
+ boolean fixed = true;
+ Either<Component, StorageOperationStatus> toscaElement = toscaOperations.getToscaElement(gv.getUniqueId(), filter);
+ if (toscaElement.isRight()) {
+ LOGGER.debug("Failed to fetch resource {} {}", gv.getUniqueId(), toscaElement.right().value());
+ return false;
+ }
+ Component resource = toscaElement.left().value();
+ Map<String, Boolean> updateMap = new HashMap<>();
+ nodeTemplateMissingDataResolver.updateVFComposition(resource, origCompMap, updateMap);
+ if(updateMap.get(JsonConstantKeysEnum.COMPOSITION.name())){
+ LOGGER.info("applying instance tosca name fix on VF {}", gv.getUniqueId());
+ fixed = toscaOperations.updateComponentInstanceMetadataOfTopologyTemplate(resource).isLeft();
+ }
+ if(updateMap.get(EdgeLabelEnum.GROUPS.name())) {
+ List<GroupDataDefinition> groups = new ArrayList<>(resource.getGroups());
+ LOGGER.info("applying groups vertex fix on VF {}", gv.getUniqueId());
+ fixed = fixed && toscaOperations.updateGroupsOnComponent(resource, ComponentTypeEnum.RESOURCE, groups).isLeft();
+ }
+
+ res = res && fixed;
+ titanDao.commit();
+ }
+ return res;
+ }
+
+ private Map<String, MapPropertiesDataDefinition> buildInstancesInputsMap(Component component){
+ Map<String, MapPropertiesDataDefinition> instanceInputsMap = new HashMap<>();
+ for (Map.Entry<String, List<ComponentInstanceInput>> entry : component.getComponentInstancesInputs().entrySet()) {
+ MapPropertiesDataDefinition inputsMap = new MapPropertiesDataDefinition();
+ inputsMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
+ instanceInputsMap.put(entry.getKey(), inputsMap);
+ }
+ return instanceInputsMap;
+ }
+
+
+
+ private Map<String, MapGroupsDataDefinition> buildGroupInstanceMap(Component component) {
+ Map<String, MapGroupsDataDefinition> instGroupsMap = new HashMap<>();
+ for (ComponentInstance instance : component.getComponentInstances()) {
+ if (instance.getGroupInstances() != null) {
+ MapGroupsDataDefinition groupsMap = new MapGroupsDataDefinition();
+ groupsMap.setMapToscaDataDefinition(instance.getGroupInstances().stream().map(e -> new GroupInstanceDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
+ instGroupsMap.put(instance.getUniqueId(), groupsMap);
+ }
+ }
+ return instGroupsMap;
+ }
+
+ private <T extends ToscaDataDefinition> boolean updateDataVertex(GraphVertex componentVertex, VertexTypeEnum vertexType, EdgeLabelEnum edgeLabel, Map<String, T> dataMap){
+ Either<GraphVertex, TitanOperationStatus> dataVertexEither = titanDao.getChildVertex(componentVertex, edgeLabel, JsonParseFlagEnum.ParseJson);
+ if (dataVertexEither.isRight()) {
+ if(TitanOperationStatus.NOT_FOUND != dataVertexEither.right().value())
+ return false;
+ return (nodeTemplateMissingDataResolver.topologyTemplateOperation.assosiateElementToData(componentVertex, vertexType, edgeLabel, dataMap)).isLeft();
+ }
+ GraphVertex dataVertex = dataVertexEither.left().value();
+ dataVertex.setJson(dataMap);
+ return (titanDao.updateVertex(dataVertex)).isLeft();
+
+ }
+
+
+ private boolean updateServices(){
+
+ boolean res = true;
+ Map<GraphPropertyEnum, Object> hasProps = new HashMap<>();
+ hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+
+ List<GraphVertex> componentsByCriteria = fetchVertices(hasProps);
+ if(null == componentsByCriteria)
+ return false;
+
+ ComponentParametersView filter = getFilter();
+ Map<String, ToscaElement> origCompMap = new HashMap<>();
+
+ Predicate<ComponentInstance> containsGroupInstances = p -> null != p.getGroupInstances() && !p.getGroupInstances().isEmpty();
+
+ for (GraphVertex gv : componentsByCriteria) {
+
+ boolean fixed = true;
+ Either<org.openecomp.sdc.be.model.Service, StorageOperationStatus> toscaElement = toscaOperations.getToscaElement(gv.getUniqueId(), filter);
+ if (toscaElement.isRight()) {
+ LOGGER.debug("Failed to fetch service {} {}", gv.getUniqueId(), toscaElement.right().value());
+ return false;
+ }
+ Component service = toscaElement.left().value();
+ Component oldService = null;
+
+ if(oldServiceModelRequired(service)){
+ Either<Service, StorageOperationStatus> oldServiceEither = serviceOperation.getService(gv.getUniqueId(), filter, false);
+ if (oldServiceEither.isRight()){
+ LOGGER.debug("couldn't fetch service {} from old titan", gv.getUniqueId());
+ }else {
+ oldService = oldServiceEither.left().value();
+ oldService = oldService.getComponentInstances().stream().anyMatch(containsGroupInstances) ? oldService : null;
+ }
+ }
+
+ Map<String, Boolean> updateMap = new HashMap<>();
+ nodeTemplateMissingDataResolver.updateServiceComposition(service, origCompMap, oldService, updateMap);
+ if(updateMap.get(JsonConstantKeysEnum.COMPOSITION.name())) {
+ LOGGER.info("applying instance tosca name fix on service {}", gv.getUniqueId());
+ fixed = (toscaOperations.updateComponentInstanceMetadataOfTopologyTemplate(service)).isLeft();
+ }
+ if(updateMap.get(EdgeLabelEnum.INST_GROUPS.name())) {
+ Map<String, MapGroupsDataDefinition> groupsMap = buildGroupInstanceMap(service);
+ LOGGER.info("applying groups instances vertex fix on service {}", gv.getUniqueId());
+ fixed = fixed && updateDataVertex(gv, VertexTypeEnum.INST_GROUPS, EdgeLabelEnum.INST_GROUPS, groupsMap);
+ }
+ if(updateMap.get(EdgeLabelEnum.INST_INPUTS.name())) {
+ Map<String, MapPropertiesDataDefinition> instInputs = buildInstancesInputsMap(service);
+ LOGGER.info("applying instances inputs vertex fix on service {}", gv.getUniqueId());
+ fixed = fixed && updateDataVertex(gv, VertexTypeEnum.INST_INPUTS, EdgeLabelEnum.INST_INPUTS, instInputs);
+ }
+ res = res && fixed;
+ titanDao.commit();
+ }
+ return res;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/ComponentMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/ComponentMigration.java
index d69363be89..7603a5704a 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/ComponentMigration.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/ComponentMigration.java
@@ -109,8 +109,8 @@ public abstract class ComponentMigration <T extends Component> extends JsonModel
protected void setMissingTemplateInfo(List<T> components) {
Map<String, ToscaElement> origCompMap = new HashMap<>();
for (T component : components) {
- List<ComponentInstance> instances = component.getComponentInstances();
- if(null != instances) {
+ List<ComponentInstance> instances = component.getComponentInstances();
+ if(null != instances) {
for (ComponentInstance instance : instances) {
nodeTemplateMissingDataResolver.resolveNodeTemplateInfo(instance, origCompMap, component);
nodeTemplateMissingDataResolver.fixVFGroupInstances(component, instance);
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/NodeTemplateMissingDataResolver.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/NodeTemplateMissingDataResolver.java
index 01e36345e1..c83421066c 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/NodeTemplateMissingDataResolver.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/migration/v1707/jsonmodel/NodeTemplateMissingDataResolver.java
@@ -17,23 +17,18 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.asdctool.impl.migration.v1707.jsonmodel;
-
-
+import fj.data.Either;
+import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
import fj.data.Either;
import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.ComponentInstanceInput;
-import org.openecomp.sdc.be.model.GroupDefinition;
-import org.openecomp.sdc.be.model.GroupInstance;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate;
import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
@@ -45,6 +40,8 @@ import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.*;
+import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -59,32 +56,98 @@ public class NodeTemplateMissingDataResolver <T extends Component> {
private ToscaElementLifecycleOperation lifecycleOperation;
@Resource(name = "topology-template-operation")
- private TopologyTemplateOperation topologyTemplateOperation;
+ public TopologyTemplateOperation topologyTemplateOperation;
public void resolveNodeTemplateInfo(ComponentInstanceDataDefinition vfInst, Map<String, ToscaElement> origCompMap, T component) {
lifecycleOperation.resolveToscaComponentName(vfInst, origCompMap);
if(OriginTypeEnum.VF == vfInst.getOriginType()) {
- Map<String, List<ComponentInstanceInput>> componentInstancesInputs = Optional.ofNullable(component.getComponentInstancesInputs()).orElse(new HashMap<>());
- collectVFInstanceInputs(componentInstancesInputs, origCompMap, vfInst);
+ collectVFInstanceInputs(component, origCompMap, vfInst);
+ }
+ }
+
+
+
+
+ public void updateServiceComposition(Component component, Map<String, ToscaElement> origCompMap, Component oldModelService, Map<String, Boolean> updateMap){
+
+ boolean composition = false;
+ boolean instInputs = false;
+ boolean instGroups = false;
+ List<ComponentInstance> instances = component.getComponentInstances();
+ if(null != instances) {
+ for (ComponentInstance instance : instances) {
+ composition = composition || lifecycleOperation.resolveToscaComponentName(instance, origCompMap);
+ if(OriginTypeEnum.VF == instance.getOriginType()) {
+ instInputs = instInputs || collectVFInstanceInputs(component, origCompMap, instance);
+ instGroups = instGroups || resolveInstGroupsFromOldTitanGraphAndApplyFix(component, instance, oldModelService);
+ }
+ }
}
+ updateMap.put(JsonConstantKeysEnum.COMPOSITION.name(), composition);
+ updateMap.put(EdgeLabelEnum.INST_INPUTS.name(), instInputs);
+ updateMap.put(EdgeLabelEnum.INST_GROUPS.name(), instGroups);
+ }
+
+
+ public void updateVFComposition(Component component, Map<String, ToscaElement> origCompMap, Map<String, Boolean> updateMap) {
+
+ boolean composition = false;
+ boolean groups = fixVFGroups(component);
+ List<ComponentInstance> instances = component.getComponentInstances();
+ if(null != instances) {
+ for (ComponentInstance instance : instances) {
+ composition = composition || lifecycleOperation.resolveToscaComponentName(instance, origCompMap);
+ }
+ }
+ updateMap.put(JsonConstantKeysEnum.COMPOSITION.name(), composition);
+ updateMap.put(EdgeLabelEnum.GROUPS.name(), groups);
+ }
+
+
+
+ private boolean resolveInstGroupsFromOldTitanGraphAndApplyFix(Component component, ComponentInstance instance, Component oldService){
+
+ boolean res = false;
+ //info already exists, apply fix if needed
+ if(null != instance.getGroupInstances() && !instance.getGroupInstances().isEmpty()) {
+ res = fixVFGroupInstances(component, instance);
+ //get group instances from old model
+ }else if(null != oldService){
+ ComponentInstance origInstance = oldService.getComponentInstances().stream()
+ .filter(p -> instance.getUniqueId().equals(p.getUniqueId()))
+ .findAny().orElse(null);
+ if(null != origInstance && null != origInstance.getGroupInstances()) {
+ fixVFGroupInstances(oldService, origInstance);
+ instance.setGroupInstances(origInstance.getGroupInstances());
+ res = true;
+ }
+ }
+ return res;
}
- private void collectVFInstanceInputs(Map<String, List<ComponentInstanceInput>> instInputs, Map<String, ToscaElement> origCompMap, ComponentInstanceDataDefinition vfInst) {
+ private boolean collectVFInstanceInputs(Component component, Map<String, ToscaElement> origCompMap, ComponentInstanceDataDefinition vfInst) {
+ boolean res = false;
String ciUid = vfInst.getUniqueId();
String origCompUid = vfInst.getComponentUid();
+ if(null == component.getComponentInstancesInputs())
+ component.setComponentInstancesInputs(new HashMap<>());
+ Map<String, List<ComponentInstanceInput>> componentInstInputs = component.getComponentInstancesInputs();
Either<ToscaElement, StorageOperationStatus> origComp = fetchToscaElement(origCompMap, vfInst, origCompUid);
if(origComp.isRight())
- return;
+ return false;
Map<String, PropertyDataDefinition> origVFInputs = ((TopologyTemplate)origComp.left().value()).getInputs();
if (origVFInputs != null && !origVFInputs.isEmpty()) {
+ res = true;
Map<String, ComponentInstanceInput> collectedVFInputs = origVFInputs.values().stream()
.collect(Collectors.toMap(PropertyDataDefinition::getName, ComponentInstanceInput::new));
- List<ComponentInstanceInput> instInputList = instInputs.get(ciUid);
+
+ List<ComponentInstanceInput> instInputList = componentInstInputs.get(ciUid);
Map<String, ComponentInstanceInput> existingInstInputs = ToscaDataDefinition.listToMapByName(instInputList);
collectedVFInputs.putAll(existingInstInputs);
List<ComponentInstanceInput> mergedList = new ArrayList<>(collectedVFInputs.values());
- instInputs.put(ciUid, mergedList);
+ componentInstInputs.put(ciUid, mergedList);
}
+ return res;
}
private Either<ToscaElement, StorageOperationStatus> fetchToscaElement(Map<String, ToscaElement> origCompMap, ComponentInstanceDataDefinition vfInst, String origCompUid) {
@@ -201,22 +264,23 @@ public class NodeTemplateMissingDataResolver <T extends Component> {
return artifactLabel;
}
- protected boolean fixVFGroups(Component component){
- boolean res = true;
-
+ public boolean fixVFGroups(Component component){
+ boolean res = false;
+
Map<String, ArtifactDefinition> deploymentArtifacts = component.getDeploymentArtifacts();
List<GroupDefinition> groups = component.getGroups();
if (groups == null || groups.isEmpty()) {
- LOGGER.debug("No groups in component {} id {} ", component.getName(), component.getUniqueId());
+ LOGGER.debug("No groups in component {} id {} ", component.getName(), component.getUniqueId());
return res;
}
for (GroupDefinition group : groups) {
if (group.getType().equals(Constants.DEFAULT_GROUP_VF_MODULE) && deploymentArtifacts != null) {
if (isProblematicGroup(group, component.getName(), deploymentArtifacts)) {
- List<String> groupArtifacts = new ArrayList<String>(group.getArtifacts());
- group.getArtifacts().clear();
- group.getArtifactsUuid().clear();
+ res = true;
+ List<String> groupArtifacts = null == group.getArtifacts()? new ArrayList<>() : new ArrayList<>(group.getArtifacts());
+ group.setArtifacts(new ArrayList<>());
+ group.setArtifactsUuid(new ArrayList<>());
for (String artifactId : groupArtifacts) {
String artifactlabel = findArtifactLabelFromArtifactId(artifactId);
LOGGER.debug("fix group: group name {} artifactId for fix {} artifactlabel {} ", group.getName(), artifactId, artifactlabel);
@@ -229,19 +293,16 @@ public class NodeTemplateMissingDataResolver <T extends Component> {
if (correctArtifactUUID != null && !correctArtifactUUID.isEmpty()) {
group.getArtifactsUuid().add(correctArtifactUUID);
}
-
}
}
}
}
-
- }
-
+ }
return res;
}
- protected boolean fixVFGroupInstances(Component component, ComponentInstance instance){
- boolean res = true;
+ public boolean fixVFGroupInstances(Component component, ComponentInstance instance){
+ boolean res = false;
Map<String, ArtifactDefinition> deploymentArtifacts = instance.getDeploymentArtifacts();
List<GroupInstance> groupInstances = instance.getGroupInstances();
@@ -252,10 +313,9 @@ public class NodeTemplateMissingDataResolver <T extends Component> {
for (GroupInstance group : groupInstances) {
if (group.getType().equals(Constants.DEFAULT_GROUP_VF_MODULE)) {
if (isProblematicGroupInstance(group, instance.getName(), component.getName(), deploymentArtifacts)) {
-
- LOGGER.debug("Migration1707ArtifactUuidFix fix group: resource id {}, group name {} ", component.getUniqueId(), group.getName());
- List<String> groupArtifacts = Optional.ofNullable(group.getArtifacts()).orElse(new ArrayList<>());
-
+ res = true;
+ LOGGER.debug("Migration1707ArtifactUuidFix fix group: resource id {}, group name {} ", component.getUniqueId(), group.getName());
+ List<String> groupArtifacts = null == group.getArtifacts()? new ArrayList<>() : new ArrayList<>(group.getArtifacts());
group.setArtifacts(new ArrayList<>());
group.setArtifactsUuid(new ArrayList<>());
group.setGroupInstanceArtifacts(new ArrayList<>());
@@ -285,12 +345,9 @@ public class NodeTemplateMissingDataResolver <T extends Component> {
}
}
}
-
}
}
}
-
return res;
}
-
}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java
new file mode 100644
index 0000000000..a57a237e76
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java
@@ -0,0 +1,43 @@
+package org.openecomp.sdc.asdctool.impl.validator;
+
+import org.openecomp.sdc.asdctool.impl.validator.executers.ValidatorExecuter;
+import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+@Component
+public class ValidationToolBL {
+
+ private static Logger log = LoggerFactory.getLogger(ValidationToolBL.class.getName());
+
+ @Autowired
+ protected List<ValidatorExecuter> validators;
+
+ @Autowired
+ protected ReportManager reportManager;
+
+ private boolean allValid = true;
+
+
+ public boolean validateAll() {
+ for (ValidatorExecuter validatorExec: validators) {
+ System.out.println("ValidatorExecuter "+validatorExec.getName()+" started");
+ if (!validatorExec.executeValidations()) {
+ allValid = false;
+ System.out.println("ValidatorExecuter "+validatorExec.getName()+" finished with warnings");
+ }
+ else {
+ System.out.println("ValidatorExecuter "+validatorExec.getName()+" finished successfully");
+ }
+ }
+ return allValid;
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java
new file mode 100644
index 0000000000..facb9d70f2
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java
@@ -0,0 +1,39 @@
+package org.openecomp.sdc.asdctool.impl.validator.config;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * Created by chaya on 7/4/2017.
+ */
+public class ValidationConfigManager {
+
+ private static Properties prop = new Properties();
+
+ public static String getOutputFilePath() {
+ return outputFilePath;
+ }
+
+ public static void setOutputFilePath(String outputFilePath) {
+ ValidationConfigManager.outputFilePath = outputFilePath;
+ }
+
+ private static String outputFilePath;
+
+ public static Properties setValidationConfiguration(String path){
+ InputStream input = null;
+ try {
+ input = new FileInputStream(path);
+ prop.load(input);
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ return prop;
+ }
+
+ public static Properties getValidationConfiguration() {
+ return prop;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java
new file mode 100644
index 0000000000..87b27c7369
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java
@@ -0,0 +1,133 @@
+package org.openecomp.sdc.asdctool.impl.validator.config;
+
+import org.openecomp.sdc.asdctool.impl.migration.v1707.MigrationTitanStrategy;
+import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ArtifactValidationUtils;
+import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ServiceArtifactValidationTask;
+import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.VfArtifactValidationTask;
+import org.openecomp.sdc.asdctool.impl.validator.executers.ServiceValidatorExecuter;
+import org.openecomp.sdc.asdctool.impl.validator.executers.VfValidatorExecuter;
+import org.openecomp.sdc.asdctool.impl.validator.ValidationToolBL;
+import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager;
+import org.openecomp.sdc.be.dao.DAOTitanStrategy;
+import org.openecomp.sdc.be.dao.TitanClientStrategy;
+import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
+import org.openecomp.sdc.be.dao.cassandra.CassandraClient;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.titan.TitanGraphClient;
+import org.openecomp.sdc.be.model.DerivedNodeTypeResolver;
+import org.openecomp.sdc.be.model.jsontitan.operations.*;
+import org.openecomp.sdc.be.model.operations.api.ToscaDefinitionPathCalculator;
+import org.openecomp.sdc.be.model.operations.impl.ToscaDefinitionPathCalculatorImpl;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+@Configuration
+public class ValidationToolConfiguration {
+
+ @Bean
+ public ServiceValidatorExecuter basicServiceValidator() { return new ServiceValidatorExecuter();}
+
+ @Bean
+ public VfArtifactValidationTask vfArtifactValidationTask() { return new VfArtifactValidationTask(); }
+
+ @Bean
+ public ServiceArtifactValidationTask serviceArtifactValidationTask() { return new ServiceArtifactValidationTask();}
+
+ @Bean
+ public ValidationToolBL validationToolBL() {
+ return new ValidationToolBL();
+ }
+
+ @Bean
+ public VfValidatorExecuter basicVfValidator() { return new VfValidatorExecuter();}
+
+ @Bean
+ public ReportManager reportManager() { return new ReportManager();}
+
+ @Bean(name = "artifact-cassandra-dao")
+ public ArtifactCassandraDao artifactCassandraDao() {
+ return new ArtifactCassandraDao();
+ }
+
+ @Bean
+ public ArtifactValidationUtils artifactValidationUtils() { return new ArtifactValidationUtils();}
+
+ @Bean(name = "groups-operation")
+ public GroupsOperation jsonGroupsOperation() {
+ return new GroupsOperation();
+ }
+
+ @Bean(name = "cassandra-client")
+ public CassandraClient cassandraClient() {
+ return new CassandraClient();
+ }
+
+ @Bean(name = "dao-titan-strategy")
+ public TitanClientStrategy daoStrategy() {
+ return new DAOTitanStrategy();
+ }
+
+ @Bean(name = "migration-titan-client", initMethod = "createGraph")
+ public TitanGraphClient titanMigrationClient(@Qualifier("dao-titan-strategy") TitanClientStrategy titanClientStrategy) {
+ return new TitanGraphClient(titanClientStrategy);
+ }
+
+ @Bean(name = "tosca-operation-facade")
+ public ToscaOperationFacade toscaOperationFacade() {
+ return new ToscaOperationFacade();
+ }
+
+ @Bean(name = "node-type-operation")
+ public NodeTypeOperation nodeTypeOperation(@Qualifier("mig-derived-resolver") DerivedNodeTypeResolver migrationDerivedNodeTypeResolver) {
+ return new NodeTypeOperation(migrationDerivedNodeTypeResolver);
+ }
+
+ @Bean(name = "topology-template-operation")
+ public TopologyTemplateOperation topologyTemplateOperation() {
+ return new TopologyTemplateOperation();
+ }
+
+ @Bean(name = "node-template-operation")
+ public NodeTemplateOperation nodeTemplateOperation() {
+ return new NodeTemplateOperation();
+ }
+
+ @Bean(name = "mig-derived-resolver")
+ public DerivedNodeTypeResolver migrationDerivedNodeTypeResolver() {
+ return new ByToscaNameDerivedNodeTypeResolver();
+ }
+
+ @Bean(name = "titan-dao")
+ public TitanDao titanDao(@Qualifier("migration-titan-client") TitanGraphClient titanGraphClient) {
+ return new TitanDao(titanGraphClient);
+ }
+
+ @Bean(name = "category-operation")
+ public CategoryOperation categoryOperation() {
+ return new CategoryOperation();
+ }
+
+ @Bean(name = "tosca-path-calculator")
+ public ToscaDefinitionPathCalculator pathCalculator() {
+ return new ToscaDefinitionPathCalculatorImpl();
+ }
+
+ @Bean(name = "artifacts-operation")
+ public ArtifactsOperations artifactsOperation() {
+ return new ArtifactsOperations();
+ }
+
+ @Bean(name = "tosca-data-operation")
+ public ToscaDataOperation toscaDataOperation() {
+ return new ToscaDataOperation();
+ }
+
+ @Bean(name = "tosca-element-lifecycle-operation")
+ public ToscaElementLifecycleOperation toscaElementLifecycleOperation() {
+ return new ToscaElementLifecycleOperation();
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java
new file mode 100644
index 0000000000..817ab15418
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java
@@ -0,0 +1,36 @@
+package org.openecomp.sdc.asdctool.impl.validator.executers;
+
+import org.openecomp.sdc.asdctool.impl.validator.tasks.ServiceValidationTask;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.*;
+
+/**
+ * Created by chaya on 7/4/2017.
+ */
+public class ServiceValidatorExecuter extends TopologyTemplateValidatorExecuter implements ValidatorExecuter {
+
+ @Autowired(required = false)
+ List<ServiceValidationTask> tasks = new ArrayList<>();
+
+ private static Logger log = LoggerFactory.getLogger(VfValidatorExecuter.class.getName());
+
+ public ServiceValidatorExecuter() {
+ setName("SERVICE_VALIDATOR");
+ }
+
+ @Override
+ public boolean executeValidations() {
+ List<GraphVertex> vertices = getVerticesToValidate(ComponentTypeEnum.SERVICE);
+ return validate(tasks, vertices);
+ }
+
+ @Override
+ public String getName() {
+ return super.getName();
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java
new file mode 100644
index 0000000000..16a479dc75
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java
@@ -0,0 +1,92 @@
+package org.openecomp.sdc.asdctool.impl.validator.executers;
+
+import fj.data.Either;
+import org.openecomp.sdc.asdctool.impl.validator.tasks.TopologyTemplateValidationTask;
+import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.*;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+public class TopologyTemplateValidatorExecuter {
+
+ private static Logger log = LoggerFactory.getLogger(VfValidatorExecuter.class.getName());
+
+ @Autowired
+ protected TitanDao titanDao;
+
+ @Autowired
+ protected ToscaOperationFacade toscaOperationFacade;
+
+ @Autowired
+ protected TopologyTemplateOperation topologyTemplateOperation;
+
+ protected String name;
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void reportValidateTaskStatus(TopologyTemplateValidationTask validationTask, boolean success, GraphVertex vertexScanned) {
+ ReportManager.reportValidationTaskStatus(vertexScanned, validationTask.getTaskName(), validationTask.getTaskResultStatus(), success);
+ }
+
+ protected List<GraphVertex> getVerticesToValidate(ComponentTypeEnum type) {
+ Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
+ props.put(GraphPropertyEnum.COMPONENT_TYPE, type.name());
+ if(type.equals(ComponentTypeEnum.RESOURCE)) {
+ props.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF);
+ }
+
+ Either<List<GraphVertex>, TitanOperationStatus> results = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props);
+ if (results.isRight()) {
+ System.out.println("getVerticesToValidate failed "+ results.right().value());
+ return new ArrayList<GraphVertex>();
+ }
+ System.out.println("getVerticesToValidate: "+results.left().value().size()+" vertices to scan");
+ return results.left().value();
+ }
+
+ protected boolean validate(List<? extends TopologyTemplateValidationTask> tasks, List<GraphVertex> vertices) {
+ ReportManager.reportStartValidatorRun(getName(), vertices.size());
+ Set<String> failedTasks = new HashSet<>();
+ Set<String> successTasks = new HashSet<>();
+ boolean successAllVertices = true;
+ for (GraphVertex vertex: vertices) {
+ boolean successAllTasks = true;
+ for (TopologyTemplateValidationTask task: tasks) {
+ ReportManager.reportStartTaskRun(vertex, task.getTaskName());
+ boolean success = task.validate(vertex);
+ if (!success) {
+ failedTasks.add(task.getTaskName());
+ successAllVertices = false;
+ successAllTasks = false;
+ } else {
+ successTasks.add(task.getTaskName());
+ }
+ reportValidateTaskStatus(task, success, vertex);
+ }
+ String componentScanStatus = successAllTasks? "success" : "failed";
+ System.out.println("Topology Template "+vertex.getUniqueId()+" Validation finished with "+componentScanStatus);
+ }
+ ReportManager.reportValidatorTypeSummary(getName(), failedTasks, successTasks);
+ return successAllVertices;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java
new file mode 100644
index 0000000000..8281d1f353
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java
@@ -0,0 +1,15 @@
+package org.openecomp.sdc.asdctool.impl.validator.executers;
+
+import org.openecomp.sdc.asdctool.impl.validator.utils.ElementTypeEnum;
+import org.openecomp.sdc.be.model.Component;
+
+import java.util.List;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+public interface ValidatorExecuter {
+
+ boolean executeValidations();
+ String getName();
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java
new file mode 100644
index 0000000000..913a36fbd4
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java
@@ -0,0 +1,32 @@
+package org.openecomp.sdc.asdctool.impl.validator.executers;
+
+import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.*;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+public class VfValidatorExecuter extends TopologyTemplateValidatorExecuter implements ValidatorExecuter {
+
+ @Autowired(required = false)
+ private List<VfValidationTask> tasks = new ArrayList<>();
+
+ public VfValidatorExecuter() {
+ setName("BASIC_VF_VALIDATOR");
+ }
+
+ @Override
+ public boolean executeValidations() {
+ List<GraphVertex> vertices = getVerticesToValidate(ComponentTypeEnum.RESOURCE);
+ return validate(tasks, vertices);
+ }
+
+ @Override
+ public String getName() {
+ return super.getName();
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/ServiceValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/ServiceValidationTask.java
new file mode 100644
index 0000000000..89444768a4
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/ServiceValidationTask.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks;
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+public abstract class ServiceValidationTask implements TopologyTemplateValidationTask {
+ protected String name = "";
+ protected String taskStatus = "NOT_STARTED";
+
+ @Override
+ public String getTaskName() {
+ return this.name;
+ }
+
+ @Override
+ public String getTaskResultStatus() {
+ return this.taskStatus;
+ }
+
+ @Override
+ public void setTaskResultStatus(String status) {
+ this.taskStatus = status;
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java
new file mode 100644
index 0000000000..6ca012546b
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks;
+
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+public interface TopologyTemplateValidationTask {
+ boolean validate(GraphVertex vertex);
+ String getTaskName();
+ String getTaskResultStatus();
+ void setTaskResultStatus(String status);
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/VfValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/VfValidationTask.java
new file mode 100644
index 0000000000..ec621b86ae
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/VfValidationTask.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks;
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+public abstract class VfValidationTask implements TopologyTemplateValidationTask {
+ protected String taskStatus = "NOT_STARTED";
+ protected String name = "";
+
+ @Override
+ public String getTaskName() {
+ return this.name;
+ }
+
+ @Override
+ public String getTaskResultStatus() {
+ return taskStatus;
+ }
+
+ @Override
+ public void setTaskResultStatus(String status) {
+ this.taskStatus = status;
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java
new file mode 100644
index 0000000000..dfdeec8c67
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java
@@ -0,0 +1,106 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts;
+
+import fj.data.Either;
+import org.openecomp.sdc.asdctool.impl.validator.utils.ReportManager;
+import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
+import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
+import org.openecomp.sdc.be.model.ComponentParametersView;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.*;
+
+/**
+ * Created by chaya on 7/6/2017.
+ */
+public class ArtifactValidationUtils {
+
+ @Autowired
+ private ArtifactCassandraDao artifactCassandraDao;
+
+ @Autowired
+ private TopologyTemplateOperation topologyTemplateOperation;
+
+ public boolean validateArtifactsAreInCassandra(GraphVertex vertex, String taskName, List<ArtifactDataDefinition> artifacts) {
+ boolean allArtifactsExist = true;
+ for(ArtifactDataDefinition artifact:artifacts) {
+ boolean isArtifactExist = isArtifcatInCassandra(artifact.getEsId());
+ String status = isArtifactExist ? "Artifact " + artifact.getEsId() + " is in Cassandra" :
+ "Artifact " + artifact.getEsId() + " doesn't exist in Cassandra";
+ ReportManager.writeReportLineToFile(status);
+ if (!isArtifactExist) {
+ allArtifactsExist = false;
+ }
+ }
+ return allArtifactsExist;
+ }
+
+ public boolean isArtifcatInCassandra(String uniueId) {
+ Either<Long, CassandraOperationStatus> countOfArtifactsEither =
+ artifactCassandraDao.getCountOfArtifactById(uniueId);
+ if (countOfArtifactsEither.isRight()) {
+ // print to console
+ System.out.print("Failed to retrieve artifact with id: "+uniueId+" from Cassandra" );
+ return false;
+ }
+ Long count = countOfArtifactsEither.left().value();
+ if (count <1) {
+ //System.out.print("Artifact "+uniueId+" count is: "+count);
+ return false;
+ }
+ return true;
+ }
+
+ public List<ArtifactDataDefinition> addRelevantArtifacts(Map<String, ArtifactDataDefinition> artifactsMap) {
+ List<ArtifactDataDefinition> artifacts = new ArrayList<>();
+ Optional.ofNullable(artifactsMap).orElse(Collections.emptyMap()).forEach( (key, dataDef) -> {
+ if (dataDef.getEsId() != null && !dataDef.getEsId().isEmpty()) {
+ artifacts.add(dataDef);
+ }
+ });
+ return artifacts;
+ }
+
+ public boolean validateTopologyTemplateArtifacts(GraphVertex vertex, String taskName) {
+ ComponentParametersView paramView = new ComponentParametersView();
+ paramView.disableAll();
+ paramView.setIgnoreArtifacts(false);
+ paramView.setIgnoreComponentInstances(false);
+ Either<ToscaElement, StorageOperationStatus> toscaElementEither = topologyTemplateOperation.getToscaElement(vertex.getUniqueId(), paramView);
+ if (toscaElementEither.isRight()) {
+ return false;
+ }
+ TopologyTemplate element = (TopologyTemplate) toscaElementEither.left().value();
+ Map<String, ArtifactDataDefinition> deploymentArtifacts = element.getDeploymentArtifacts();
+ Map<String, ArtifactDataDefinition> artifacts = element.getArtifacts();
+ Map<String, ArtifactDataDefinition> apiArtifacts = element.getServiceApiArtifacts();
+ Map<String, MapArtifactDataDefinition> instanceArtifacts = element.getInstanceArtifacts();
+ Map<String, MapArtifactDataDefinition> instanceDeploymentArtifacts = element.getInstDeploymentArtifacts();
+
+ List<ArtifactDataDefinition> allArtifacts = new ArrayList<>();
+
+ allArtifacts.addAll(addRelevantArtifacts(deploymentArtifacts));
+ allArtifacts.addAll(addRelevantArtifacts(artifacts));
+ allArtifacts.addAll(addRelevantArtifacts(apiArtifacts));
+
+ if (instanceArtifacts != null) {
+ instanceArtifacts.forEach((key, artifactMap) -> {
+ allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()));
+ });
+ }
+
+ if (instanceDeploymentArtifacts != null) {
+ instanceDeploymentArtifacts.forEach((key, artifactMap) -> {
+ allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()));
+ });
+ }
+
+ return validateArtifactsAreInCassandra(vertex, taskName, allArtifacts);
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java
new file mode 100644
index 0000000000..410691fb47
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java
@@ -0,0 +1,26 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts;
+
+import org.openecomp.sdc.asdctool.impl.validator.tasks.ServiceValidationTask;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * Created by chaya on 7/6/2017.
+ */
+public class ServiceArtifactValidationTask extends ServiceValidationTask {
+
+ @Autowired
+ private ArtifactValidationUtils artifactValidationUtils;
+
+
+
+ public ServiceArtifactValidationTask() {
+ this.name = "Service Artifact Validation Task";
+ }
+
+ @Override
+ public boolean validate(GraphVertex vertex) {
+ return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName());
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java
new file mode 100644
index 0000000000..01bc26fe2b
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java
@@ -0,0 +1,28 @@
+package org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts;
+
+import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * Created by chaya on 7/4/2017.
+ */
+public class VfArtifactValidationTask extends VfValidationTask {
+
+ @Autowired
+ ArtifactValidationUtils artifactValidationUtils;
+
+ @Autowired
+ protected TopologyTemplateOperation topologyTemplateOperation;
+
+ public VfArtifactValidationTask() {
+ this.name = "Artifact Validation Task";
+ }
+
+ @Override
+ public boolean validate(GraphVertex vertex) {
+ return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName());
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java
new file mode 100644
index 0000000000..245d38c853
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java
@@ -0,0 +1,59 @@
+package org.openecomp.sdc.asdctool.impl.validator.utils;
+
+import org.openecomp.sdc.asdctool.impl.validator.executers.VfValidatorExecuter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by chaya on 7/4/2017.
+ */
+public enum ElementTypeEnum {
+
+ VF ("vf", VfValidatorExecuter.class);
+ //SERVICE("service", ServiceValidatorExecuter.class)
+
+ private String elementType;
+ private Class clazz;
+
+ ElementTypeEnum(String elementType, Class clazz) {
+ this. elementType = elementType;
+ this.clazz = clazz;
+ }
+
+ public static ElementTypeEnum getByType(String elementType){
+ for(ElementTypeEnum currType :ElementTypeEnum.values()){
+ if(currType.getElementType().equals(elementType)){
+ return currType;
+ }
+ }
+ return null;
+ }
+
+ public static List<String> getAllTypes() {
+
+ List<String> arrayList = new ArrayList<String>();
+
+ for (ElementTypeEnum graphType : ElementTypeEnum.values()) {
+ arrayList.add(graphType.getElementType());
+ }
+ return arrayList;
+ }
+
+
+ public String getElementType() {
+ return elementType;
+ }
+
+ public void setElementType(String elementType) {
+ this.elementType = elementType;
+ }
+
+ public Class getClazz() {
+ return clazz;
+ }
+
+ public void setClazz(Class clazz) {
+ this.clazz = clazz;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java
new file mode 100644
index 0000000000..1fdde7dd80
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java
@@ -0,0 +1,93 @@
+package org.openecomp.sdc.asdctool.impl.validator.utils;
+
+import org.apache.commons.lang.text.StrBuilder;
+import org.openecomp.sdc.asdctool.impl.validator.tasks.TopologyTemplateValidationTask;
+import org.openecomp.sdc.asdctool.impl.validator.config.ValidationConfigManager;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+public class ReportManager {
+
+ private static List<ValidationTaskResult> taskResults;
+ private static String reportOutputFilePath;
+
+ public ReportManager() {
+ try {
+ taskResults = new ArrayList<>();
+ // open file for first time
+ reportOutputFilePath = ValidationConfigManager.getOutputFilePath();
+ StrBuilder sb = new StrBuilder();
+ sb.appendln("-----------------------Validation Tool Results:-------------------------");
+ Files.write(Paths.get(reportOutputFilePath), sb.toString().getBytes());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void reportValidationTaskStatus(GraphVertex vertexScanned, String taskName, String taskResultMessage, boolean success) {
+ taskResults.add(new ValidationTaskResult(vertexScanned, taskName, taskResultMessage, success));
+ printValidationTaskStatus(vertexScanned, taskName, success);
+ }
+
+ private static void printValidationTaskStatus(GraphVertex vertexScanned, String taskName, boolean success) {
+ String successStatus = success ? "success" : "failed";
+ String line = "-----------------------Vertex: "+vertexScanned.getUniqueId()+", Task " + taskName + " " +successStatus+"-----------------------";
+ StrBuilder sb = new StrBuilder();
+ writeReportLineToFile(sb.appendNewLine().toString());
+ sb.appendln(line);
+ sb.appendNewLine();
+ writeReportLineToFile(line);
+ }
+
+ public static void reportValidationTaskSummary(TopologyTemplateValidationTask task, int numOfFailedComponents, int numOfSuccessComponents) {
+ StrBuilder sb = new StrBuilder();
+ sb.appendNewLine();
+ sb.appendln("-----------------------Task " + task.getTaskName() + " Validation Summary-----------------------");
+ sb.appendln("Num of failed components: "+ numOfFailedComponents);
+ sb.appendln("Num of success components: "+ numOfSuccessComponents);
+ sb.appendln("Total components scanned: " + numOfFailedComponents+numOfSuccessComponents);
+ writeReportLineToFile(sb.toString());
+ }
+
+ public static void writeReportLineToFile(String message) {
+ try {
+ Files.write(Paths.get(reportOutputFilePath), new StrBuilder().appendNewLine().toString().getBytes(), StandardOpenOption.APPEND);
+ Files.write(Paths.get(reportOutputFilePath), message.getBytes(), StandardOpenOption.APPEND);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void reportValidatorTypeSummary(String validatorName, Set<String> failedTasksNames, Set<String> successTasksNames){
+ StrBuilder sb = new StrBuilder();
+ sb.appendNewLine().appendNewLine();
+ sb.appendln("-----------------------ValidatorExecuter " + validatorName + " Validation Summary-----------------------");
+ sb.appendln("Failed tasks: "+ failedTasksNames);
+ sb.appendln("Success tasks: "+ successTasksNames);
+ writeReportLineToFile(sb.toString());
+ }
+
+ public static void reportStartValidatorRun(String validatorName, int componenentsNum) {
+ StrBuilder sb = new StrBuilder();
+ sb.appendNewLine().appendNewLine();
+ sb.appendln("------ValidatorExecuter " + validatorName + " Validation Started, on "+componenentsNum+" components---------");
+ writeReportLineToFile(sb.toString());
+ }
+
+ public static void reportStartTaskRun(GraphVertex vertex, String taskName){
+ StrBuilder sb = new StrBuilder();
+ sb.appendNewLine().appendNewLine();
+ sb.appendln("-----------------------Vertex: "+vertex.getUniqueId()+", Task " + taskName + " Started-----------------------");
+ writeReportLineToFile(sb.toString());
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResult.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResult.java
new file mode 100644
index 0000000000..8fad932941
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResult.java
@@ -0,0 +1,45 @@
+package org.openecomp.sdc.asdctool.impl.validator.utils;
+
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.model.Component;
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+public class ValidationTaskResult {
+ public ValidationTaskResult(GraphVertex vertex, String name, String resultMessage, boolean isSuccessful) {
+ this.vertexScanned = vertex;
+ this.name = name;
+ this.resultMessage = resultMessage;
+ this.isSuccessful = isSuccessful;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getResultMessage() {
+ return resultMessage;
+ }
+
+ public void setResultMessage(String resultMessage) {
+ this.resultMessage = resultMessage;
+ }
+
+ public boolean isSuccessful() {
+ return isSuccessful;
+ }
+
+ public void setSuccessful(boolean successful) {
+ isSuccessful = successful;
+ }
+
+ private String name;
+ private String resultMessage;
+ private boolean isSuccessful;
+ private GraphVertex vertexScanned;
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/MigrationMenu.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/MigrationMenu.java
index dd9fa86084..600ebf848a 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/MigrationMenu.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/MigrationMenu.java
@@ -33,12 +33,7 @@ import org.openecomp.sdc.asdctool.impl.migration.v1607.CsarMigration;
import org.openecomp.sdc.asdctool.impl.migration.v1610.TitanFixUtils;
import org.openecomp.sdc.asdctool.impl.migration.v1610.ToscaArtifactsAlignment;
import org.openecomp.sdc.asdctool.impl.migration.v1702.Migration1702;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.Migration1707;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.Migration1707ArtifactUuidFix;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.Migration1707Config;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.DistributionStatusUpdate;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.Migration1707VnfFix;
-import org.openecomp.sdc.asdctool.impl.migration.v1707.VfModulesPropertiesAdding;
+import org.openecomp.sdc.asdctool.impl.migration.v1707.*;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.common.api.ConfigurationSource;
import org.openecomp.sdc.common.impl.ExternalConfiguration;
@@ -53,17 +48,17 @@ public class MigrationMenu {
private static final String SERVICE_MIGARTION_BEAN = "serviceMigrationBean";
private static enum MigrationOperationEnum {
- MIGRATION_1602_1604("migrate-1602-1604", SERVICE_MIGARTION_BEAN),
- ALIGN_DERIVED_FROM_1604("align-derived-from-1604", "derivedFromAlignment"),
- MIGRATE_1604_1607("migrate-1604-1607", SERVICE_MIGARTION_BEAN),
- ALIGN_VFC_NAMES_1604("align-vfc-names-1604", "vfcNamingAlignmentBean"),
- TEST_REMOVE_HEAT_PLACEHOLDERS("testremoveheatplaceholders", SERVICE_MIGARTION_BEAN),
- TEST_ADD_GROUP_UUIDS("testaddgroupuuids", SERVICE_MIGARTION_BEAN),
- ALIGN_GROUPS("align-groups", "groupsAlignment"),
- CLEAN_CSAR("clean-csar", "csarMigration"),
- POPULATE_COMPONENT_CACHE("populate-component-cache", "populateComponentCache"),
- FIX_PROPERTIES("fix-properties", "titanFixUtils"),
- ALIGN_TOSCA_ARTIFACTS("align-tosca-artifacts", "toscaArtifactsAlignment"),
+ MIGRATION_1602_1604("migrate-1602-1604", SERVICE_MIGARTION_BEAN),
+ ALIGN_DERIVED_FROM_1604("align-derived-from-1604", "derivedFromAlignment"),
+ MIGRATE_1604_1607("migrate-1604-1607", SERVICE_MIGARTION_BEAN),
+ ALIGN_VFC_NAMES_1604("align-vfc-names-1604", "vfcNamingAlignmentBean"),
+ TEST_REMOVE_HEAT_PLACEHOLDERS("testremoveheatplaceholders", SERVICE_MIGARTION_BEAN),
+ TEST_ADD_GROUP_UUIDS("testaddgroupuuids", SERVICE_MIGARTION_BEAN),
+ ALIGN_GROUPS("align-groups", "groupsAlignment"),
+ CLEAN_CSAR("clean-csar", "csarMigration"),
+ POPULATE_COMPONENT_CACHE("populate-component-cache", "populateComponentCache"),
+ FIX_PROPERTIES("fix-properties", "titanFixUtils"),
+ ALIGN_TOSCA_ARTIFACTS("align-tosca-artifacts", "toscaArtifactsAlignment"),
FIX_ICONS("fix-icons", "titanFixUtils"),
MIGRATION_1610_1702("migrate-1610-1702", "migration1702"),
MIGRATION_1702_1707("migrate-1702-1707", "migration1707"),
@@ -71,7 +66,8 @@ public class MigrationMenu {
VFMODULES_PROPERTIES_ADDING("vfModules-properties-adding", "vfModulesPropertiesAdding"),
MIGRATION_1707_RELATIONS_FIX("fix-relations-after-migration-1707", "migration1707relationsFix"),
MIGRATION_1707_VNF_FIX("fix-vnf-after-migration-1707", "migration1707vnfFix"),
- MIGRATION_1707_UUID_FIX("fix-UUID-1707", "migration1707UuidFix");
+ MIGRATION_1707_UUID_FIX("fix-UUID-1707", "migration1707UuidFix"),
+ MIGRATION_1707_MISSING_INFO_FIX("fix-missing-info-1707", "migration1707MissingInfoFix");
// UPDATE_DATA_TYPES("update_data_types", "updateDataTypes");
private String value, beanName;
@@ -225,7 +221,7 @@ public class MigrationMenu {
ToscaArtifactsAlignment toscaArtifactsAlignment = (ToscaArtifactsAlignment) context.getBean(operationEnum.getBeanName());
boolean isSuccessful = toscaArtifactsAlignment.alignToscaArtifacts();
if (isSuccessful) {
- log.info("Tosca Artifacts alignment was finished successfull");
+ log.info("Tosca Artifacts alignment was finished successfully");
System.exit(0);
} else {
log.info("Tosca Artifacts alignment has failed");
@@ -233,20 +229,20 @@ public class MigrationMenu {
}
break;
case MIGRATION_1610_1702:
- log.info("Start ASDC migration from 1610 to 1702");
+ log.info("Start SDC migration from 1610 to 1702");
Migration1702 migration = (Migration1702) context.getBean(operationEnum.getBeanName());
isSuccessful = migration.migrate(appConfigDir);
if (isSuccessful) {
- log.info("ASDC migration from 1610 to 1702 was finished successful");
+ log.info("SDC migration from 1610 to 1702 was finished successful");
System.exit(0);
} else{
- log.info("ASDC migration from 1610 to 1702 has failed");
+ log.info("SDC migration from 1610 to 1702 has failed");
System.exit(2);
}
-
+
break;
case MIGRATION_1702_1707://this migration is currently not needed, but will be commented out for production env
- log.info("Start ASDC migration from 1702 to 1707");
+// log.info("Start SDC migration from 1702 to 1707");
Migration1707 migration1707 = (Migration1707) context.getBean(operationEnum.getBeanName());
isSuccessful = migration1707.migrate();
if (isSuccessful) {
@@ -278,8 +274,8 @@ public class MigrationMenu {
}
String fixServices = args[3];
String runMode = args[4];
- log.info("Start fixing artifact UUID after 1707 migration with arguments run with configutation [{}] , for [{}] services", runMode, fixServices);
-
+ log.info("Start fixing artifact UUID after 1707 migration with arguments run with configuration [{}] , for [{}] services", runMode, fixServices);
+
Migration1707ArtifactUuidFix migrationFix = (Migration1707ArtifactUuidFix) context.getBean(operationEnum.getBeanName());
isSuccessful = migrationFix.migrate(fixServices, runMode);
if (isSuccessful) {
@@ -290,6 +286,20 @@ public class MigrationMenu {
}
System.exit(0);
break;
+ case MIGRATION_1707_MISSING_INFO_FIX:
+
+ log.info("Start fixing missing group and instance info after 1707 migration");
+
+ Migration1707MissingInfoFix migration1707Fix = (Migration1707MissingInfoFix) context.getBean(operationEnum.getBeanName());
+ isSuccessful = migration1707Fix.migrate();
+ if (isSuccessful) {
+ log.info("Fixing groups and node templates missing info was finished successfully");
+ } else{
+ log.info("Fixing groups and node templates missing info has failed");
+ System.exit(2);
+ }
+ System.exit(0);
+ break;
default:
usageAndExit();
}
@@ -330,5 +340,6 @@ public class MigrationMenu {
System.out.println("Usage: fix-relations-after-migration-1707 <configuration dir>");
System.out.println("Usage: fix-vnf-after-migration-1707 <configuration dir>");
System.out.println("Usage: fix-UUID-1707 <configuration dir> <all/distributed_only> <services/service_vf/fix/fix_only_services>");
+ System.out.println("Usage: fix-missing-info-1707 <configuration dir>");
}
}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java
new file mode 100644
index 0000000000..6b10615ad3
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java
@@ -0,0 +1,47 @@
+package org.openecomp.sdc.asdctool.main;
+
+import org.openecomp.sdc.asdctool.impl.validator.ValidationToolBL;
+import org.openecomp.sdc.asdctool.impl.validator.config.ValidationConfigManager;
+import org.openecomp.sdc.asdctool.impl.validator.config.ValidationToolConfiguration;
+import org.openecomp.sdc.asdctool.impl.migration.v1604.AppConfig;
+import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.common.api.ConfigurationSource;
+import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+/**
+ * Created by chaya on 7/3/2017.
+ */
+public class ValidationTool {
+
+ private static Logger log = LoggerFactory.getLogger(ValidationTool.class.getName());
+
+ public static void main(String[] args) throws Exception {
+
+ String outputFilePath = args[0];
+ ValidationConfigManager.setOutputFilePath(outputFilePath);
+
+ String appConfigDir = args[1];
+ AnnotationConfigApplicationContext context = initContext(appConfigDir);
+ ValidationToolBL validationToolBL = context.getBean(ValidationToolBL.class);
+
+ System.out.println("Start Validation Tool");
+ if (validationToolBL.validateAll()) {
+ System.out.println("Validation finished successfully");
+ System.exit(0);
+ } else {
+ System.out.println("Validation finished with warnings");
+ System.exit(2);
+ }
+ }
+
+ private static AnnotationConfigApplicationContext initContext(String appConfigDir) {
+ ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
+ ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ValidationToolConfiguration.class);
+ return context;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/config/MigrationSpringConfig.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/config/MigrationSpringConfig.java
new file mode 100644
index 0000000000..0457c2136d
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/config/MigrationSpringConfig.java
@@ -0,0 +1,59 @@
+package org.openecomp.sdc.asdctool.migration.config;
+
+import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
+import org.openecomp.sdc.asdctool.migration.resolver.SpringBeansMigrationResolver;
+import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
+import org.openecomp.sdc.be.dao.cassandra.CassandraClient;
+import org.openecomp.sdc.be.dao.cassandra.MigrationTasksDao;
+import org.openecomp.sdc.be.dao.config.DAOSpringConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+@Import(DAOSpringConfig.class)
+@ComponentScan({"org.openecomp.sdc.asdctool.migration.tasks",//migration tasks
+ "org.openecomp.sdc.be.model.operations.impl",
+ "org.openecomp.sdc.be.model.cache",
+ "org.openecomp.sdc.be.dao.titan",
+ "org.openecomp.sdc.be.dao.cassandra",
+ "org.openecomp.sdc.be.model.jsontitan.operations",
+ "org.openecomp.sdc.be.dao.jsongraph"})
+public class MigrationSpringConfig {
+
+ @Autowired(required=false)
+ private List<Migration> migrations = new ArrayList<>();
+
+ @Bean(name = "sdc-migration-tool")
+ public SdcMigrationTool sdcMigrationTool(MigrationResolver migrationResolver, SdcRepoService sdcRepoService) {
+ return new SdcMigrationTool(migrationResolver, sdcRepoService);
+ }
+
+ @Bean(name = "spring-migrations-resolver")
+ public SpringBeansMigrationResolver migrationResolver(SdcRepoService sdcRepoService) {
+ return new SpringBeansMigrationResolver(migrations, sdcRepoService);
+ }
+
+ @Bean(name = "sdc-repo-service")
+ public SdcRepoService sdcRepoService(MigrationTasksDao migrationTasksDao) {
+ return new SdcRepoService(migrationTasksDao);
+ }
+
+ @Bean(name = "sdc-migration-tasks-cassandra-dao")
+ public MigrationTasksDao migrationTasksDao() {
+ return new MigrationTasksDao();
+ }
+
+ @Bean(name = "cassandra-client")
+ public CassandraClient cassandraClient() {
+ return new CassandraClient();
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/DBVersion.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/DBVersion.java
new file mode 100644
index 0000000000..003a27a1e4
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/DBVersion.java
@@ -0,0 +1,95 @@
+package org.openecomp.sdc.asdctool.migration.core;
+
+import java.math.BigInteger;
+
+public class DBVersion implements Comparable<DBVersion>{
+
+ private static final String VERSION_PARTS_SEPARATOR = "\\.";
+ private static final int MAJOR_PART_IDX = 0;
+ private static final int MINOR_PART_IDX = 1;
+ private BigInteger major;
+ private BigInteger minor;
+
+ /**
+ * The current db version. should be tested against real db to verify it is compatible to the db version
+ */
+ public static final DBVersion CURRENT_VERSION = new DBVersion(1710, 0);
+
+ private DBVersion(BigInteger major, BigInteger minor) {
+ this.major = major;
+ this.minor = minor;
+ }
+
+ private DBVersion(int major, int minor) {
+ this.major = BigInteger.valueOf(major);
+ this.minor = BigInteger.valueOf(minor);
+ }
+
+ public BigInteger getMajor() {
+ return major;
+ }
+
+ public BigInteger getMinor() {
+ return minor;
+ }
+
+ public static DBVersion from(BigInteger major, BigInteger minor) {
+ return new DBVersion(major, minor);
+ }
+
+ public static DBVersion fromString(String version) {
+ String[] split = version.split(VERSION_PARTS_SEPARATOR);
+ if (split.length != 2) {
+ throw new MigrationException("version must be of pattern: <major>.<minor>");
+ }
+ return new DBVersion(getVersionPart(split[MAJOR_PART_IDX]),
+ getVersionPart(split[MINOR_PART_IDX]));
+
+ }
+
+ private static BigInteger getVersionPart(String versionPart) {
+ try {
+ return new BigInteger(versionPart);
+ } catch (NumberFormatException e) {
+ throw new MigrationException(String.format("version part %s is non numeric", versionPart));
+ }
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s.%s", major, minor);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ DBVersion dbVersion = (DBVersion) o;
+
+ return major.equals(dbVersion.major) && minor.equals(dbVersion.minor);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = major.hashCode();
+ result = 31 * result + minor.hashCode();
+ return result;
+ }
+
+ @Override
+ public int compareTo(DBVersion o) {
+ if (o == null) {
+ return 1;
+ }
+ int majorsComparision = this.major.compareTo(o.major);
+ if (majorsComparision != 0) {
+ return majorsComparision;
+ }
+ int minorsComparision = this.minor.compareTo(o.minor);
+ if (minorsComparision != 0) {
+ return minorsComparision;
+ }
+ return 0;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/MigrationException.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/MigrationException.java
new file mode 100644
index 0000000000..e9e805355e
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/MigrationException.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdc.asdctool.migration.core;
+
+public class MigrationException extends RuntimeException {
+
+ public MigrationException(String message) {
+ super(message);
+ }
+
+ public MigrationException(String message, RuntimeException e) {
+ super(message, e);
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationTool.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationTool.java
new file mode 100644
index 0000000000..e2691dc7f8
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationTool.java
@@ -0,0 +1,62 @@
+package org.openecomp.sdc.asdctool.migration.core;
+
+import org.openecomp.sdc.asdctool.migration.core.execution.MigrationExecutionResult;
+import org.openecomp.sdc.asdctool.migration.core.execution.MigrationExecutorImpl;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
+import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+public class SdcMigrationTool {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SdcMigrationTool.class);
+
+ private MigrationResolver migrationsResolver;
+
+ private SdcRepoService sdcRepoService;
+
+ public SdcMigrationTool(MigrationResolver migrationsResolver, SdcRepoService sdcRepoService) {
+ this.migrationsResolver = migrationsResolver;
+ this.sdcRepoService = sdcRepoService;
+ }
+
+ public SdcMigrationTool() {
+ }
+
+ public boolean migrate(boolean enforceAll) {
+ LOGGER.info("starting migration process");
+ handleEnforceMigrationFlag(enforceAll);
+ List<Migration> migrations = migrationsResolver.resolveMigrations();
+ LOGGER.info("there are {} migrations task to execute", migrations.size());
+ for (Migration migration : migrations) {
+ try {
+ MigrationExecutionResult executionResult = new MigrationExecutorImpl().execute(migration);
+ if (migrationHasFailed(executionResult)) {
+ LOGGER.error("migration {} with version {} has failed. error msg: {}", migration.getClass().getName(), migration.getVersion().toString(), executionResult.getMsg());
+ return false;
+ }
+ sdcRepoService.createMigrationTask(executionResult.toMigrationTaskEntry());
+ } catch (RuntimeException e) {
+ LOGGER.error("migration {} with version {} has failed. error msg: {}", migration.getClass().getName(), migration.getVersion().toString(), e);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private boolean migrationHasFailed(MigrationExecutionResult migrationResult) {
+ return migrationResult.getMigrationStatus().equals(MigrationResult.MigrationStatus.FAILED);
+ }
+
+ private void handleEnforceMigrationFlag(boolean enforceAll) {
+ if (enforceAll) {
+ LOGGER.info("enforcing migration for current version");
+ sdcRepoService.clearTasksForCurrentMajor();
+ }
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutionResult.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutionResult.java
new file mode 100644
index 0000000000..4ebec6e440
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutionResult.java
@@ -0,0 +1,70 @@
+package org.openecomp.sdc.asdctool.migration.core.execution;
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.openecomp.sdc.be.resources.data.MigrationTaskEntry;
+
+import java.util.Date;
+
+public class MigrationExecutionResult {
+
+ private MigrationResult.MigrationStatus migrationStatus;
+ private String msg;
+ private double executionTime;
+ private DBVersion version;
+ private String taskName;
+
+ public MigrationTaskEntry toMigrationTaskEntry() {
+ MigrationTaskEntry migrationTaskEntry = new MigrationTaskEntry();
+ migrationTaskEntry.setMajorVersion(this.getVersion().getMajor().longValue());
+ migrationTaskEntry.setMinorVersion(this.getVersion().getMinor().longValue());
+ migrationTaskEntry.setTimestamp(new Date());
+ migrationTaskEntry.setTaskName(this.getTaskName());
+ migrationTaskEntry.setTaskStatus(this.getMigrationStatus().name());
+ migrationTaskEntry.setMessage(this.getMsg());
+ migrationTaskEntry.setExecutionTime(this.getExecutionTime());
+ return migrationTaskEntry;
+ }
+
+
+ public MigrationResult.MigrationStatus getMigrationStatus() {
+ return migrationStatus;
+ }
+
+ void setMigrationStatus(MigrationResult.MigrationStatus migrationStatus) {
+ this.migrationStatus = migrationStatus;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ double getExecutionTime() {
+ return executionTime;
+ }
+
+ void setExecutionTime(double executionTime) {
+ this.executionTime = executionTime;
+ }
+
+ public DBVersion getVersion() {
+ return version;
+ }
+
+ public void setVersion(DBVersion version) {
+ this.version = version;
+ }
+
+ String getTaskName() {
+ return taskName;
+ }
+
+ void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutor.java
new file mode 100644
index 0000000000..aba5056b48
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutor.java
@@ -0,0 +1,15 @@
+package org.openecomp.sdc.asdctool.migration.core.execution;
+
+import org.openecomp.sdc.asdctool.migration.core.MigrationException;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+
+public interface MigrationExecutor {
+
+ /**
+ * @param migration the migration to execute
+ * @return a {@link MigrationExecutionResult} with the relevant data on the current migration execution;
+ * @throws MigrationException in case there was an unexpected exception during migration
+ */
+ MigrationExecutionResult execute(Migration migration) throws MigrationException;
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImpl.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImpl.java
new file mode 100644
index 0000000000..2e4d3ba8b0
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImpl.java
@@ -0,0 +1,47 @@
+package org.openecomp.sdc.asdctool.migration.core.execution;
+
+import org.openecomp.sdc.asdctool.migration.core.MigrationException;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.StopWatch;
+
+
+public class MigrationExecutorImpl implements MigrationExecutor {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(MigrationExecutorImpl.class);
+
+ @Override
+ public MigrationExecutionResult execute(Migration migration) throws MigrationException {
+ try {
+ LOGGER.info("starting migration {}. description: {}. version {}", migration.getClass().getName(), migration.description(), migration.getVersion().toString());
+ StopWatch stopWatch = new StopWatch();
+ stopWatch.start();
+ MigrationResult migrationResult = migration.migrate();
+ stopWatch.stop();
+ double executionTime = stopWatch.getTotalTimeSeconds();
+ return logAndCreateExecutionResult(migration, migrationResult, executionTime);
+ } catch (RuntimeException e) {
+ LOGGER.error("migration {} has failed!", migration.description(), e);
+ throw new MigrationException("migration %s failed!!!", e);
+
+ }
+ }
+
+ private MigrationExecutionResult logAndCreateExecutionResult(Migration migration, MigrationResult migrationResult, double executionTime) {
+ LOGGER.info("finished migration {}. with version {}. migration status: {}, migration message: {}, execution time: {}", migration.getClass().getName(), migration.getVersion().toString(), migrationResult.getMigrationStatus().name(), migrationResult.getMsg(), executionTime);
+ return createMigrationTask(migration, migrationResult, executionTime);
+ }
+
+ private MigrationExecutionResult createMigrationTask(Migration migration, MigrationResult migrationResult, double totalTimeSeconds) {
+ MigrationExecutionResult migrationExecutionResult = new MigrationExecutionResult();
+ migrationExecutionResult.setExecutionTime(totalTimeSeconds);
+ migrationExecutionResult.setMigrationStatus(migrationResult.getMigrationStatus());
+ migrationExecutionResult.setMsg(migrationResult.getMsg());
+ migrationExecutionResult.setTaskName(migration.getClass().getName());
+ migrationExecutionResult.setVersion(migration.getVersion());
+ return migrationExecutionResult;
+ }
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/Migration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/Migration.java
new file mode 100644
index 0000000000..58f201acf5
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/Migration.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdc.asdctool.migration.core.task;
+
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+
+public interface Migration {
+
+ String description();
+
+ DBVersion getVersion();
+
+ MigrationResult migrate();
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/MigrationResult.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/MigrationResult.java
new file mode 100644
index 0000000000..8c4c090d94
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/core/task/MigrationResult.java
@@ -0,0 +1,31 @@
+package org.openecomp.sdc.asdctool.migration.core.task;
+
+public class MigrationResult {
+
+ private String msg;
+ private MigrationStatus migrationStatus;
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public MigrationStatus getMigrationStatus() {
+ return migrationStatus;
+ }
+
+ public void setMigrationStatus(MigrationStatus migrationStatus) {
+ this.migrationStatus = migrationStatus;
+ }
+
+ public enum MigrationStatus {
+ COMPLETED,
+ COMPLETED_WITH_ERRORS,
+ FAILED
+ }
+
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/main/MigrationMenu.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/main/MigrationMenu.java
new file mode 100644
index 0000000000..1e8a533624
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/main/MigrationMenu.java
@@ -0,0 +1,100 @@
+package org.openecomp.sdc.asdctool.migration.main;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.openecomp.sdc.asdctool.migration.config.MigrationSpringConfig;
+import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
+import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.common.api.ConfigurationSource;
+import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+public class MigrationMenu {
+
+ private final static Logger LOGGER = LoggerFactory.getLogger(MigrationMenu.class);
+
+ public static void main(String[] args) {
+ CommandLine commandLine = initCmdLineOptions(args);
+ String appConfigDir = commandLine.getOptionValue("c");
+ boolean enforceAll = commandLine.hasOption("e");
+ uploadConfiguration(appConfigDir);
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MigrationSpringConfig.class);
+ doMigrate(enforceAll, context);
+
+ }
+
+ private static void doMigrate(boolean enforceAll, AnnotationConfigApplicationContext context) {
+ SdcMigrationTool migrationTool = context.getBean(SdcMigrationTool.class);
+ boolean migrate = migrationTool.migrate(enforceAll);
+ if (migrate) {
+ LOGGER.info("migration completed successfully");
+ System.exit(0);
+ } else {
+ LOGGER.error("migration failed");
+ System.exit(1);
+ }
+ }
+
+ private static CommandLine initCmdLineOptions(String[] args) {
+ Options options = buildCmdLineOptions();
+ CommandLineParser parser = new DefaultParser();
+ try {
+ // parse the command line arguments
+ return parser.parse( options, args );
+ }
+ catch( ParseException exp ) {
+ // oops, something went wrong
+ System.err.println( "Parsing failed. Reason: " + exp.getMessage() );
+ usageAndExit(options);
+ }
+ return null;
+ }
+
+ private static void usageAndExit(Options options) {
+ HelpFormatter formatter = new HelpFormatter();
+ formatter.printHelp( "yy", options );
+ System.exit(1);
+ }
+
+ private static Options buildCmdLineOptions() {
+ Option configPath = buildConfigPathOption();
+
+ Option enforceAll = buildEnforceAllOption();
+
+ Options options = new Options();
+ options.addOption(configPath);
+ options.addOption(enforceAll);
+ return options;
+ }
+
+ private static Option buildEnforceAllOption() {
+ return Option.builder("e")
+ .longOpt("enforceAll")
+ .desc("enforce running all migration steps for current version")
+ .build();
+ }
+
+ private static Option buildConfigPathOption() {
+ return Option.builder("c")
+ .longOpt("configFolderPath")
+ .required()
+ .hasArg()
+ .desc("path to sdc configuration folder - required")
+ .build();
+ }
+
+ private static void uploadConfiguration(String appConfigDir) {
+ ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
+ ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+ }
+
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/MigrationResolver.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/MigrationResolver.java
new file mode 100644
index 0000000000..b272d45ff0
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/MigrationResolver.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdc.asdctool.migration.resolver;
+
+
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+
+import java.util.List;
+
+public interface MigrationResolver {
+
+ /**
+ *
+ * @return a list of {@code T}
+ */
+ List<Migration> resolveMigrations();
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolver.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolver.java
new file mode 100644
index 0000000000..4af5d76123
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolver.java
@@ -0,0 +1,45 @@
+package org.openecomp.sdc.asdctool.migration.resolver;
+
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class SpringBeansMigrationResolver implements MigrationResolver {
+
+ private List<Migration> migrations = new ArrayList<>();
+
+ private SdcRepoService sdcRepoService;
+
+ public SpringBeansMigrationResolver(List<Migration> migrations, SdcRepoService sdcRepoService) {
+ this.migrations = migrations;
+ this.sdcRepoService = sdcRepoService;
+ }
+
+ @Override
+ public List<Migration> resolveMigrations() {
+ migrations.sort(Comparator.comparing(Migration::getVersion));
+ return resolveNonExecutedMigrations();
+ }
+
+ //package private for testing
+ void setMigrations(List<Migration> migrations) {
+ this.migrations = migrations;
+ }
+
+ private List<Migration> resolveNonExecutedMigrations() {
+ DBVersion latestDBVersion = sdcRepoService.getLatestDBVersion();
+ return migrations.stream()
+ .filter(mig -> isMigrationVersionGreaterThanLatestVersion(latestDBVersion, mig))
+ .collect(Collectors.toList());
+ }
+
+ private boolean isMigrationVersionGreaterThanLatestVersion(DBVersion latestDBVersion, Migration mig) {
+ return mig.getVersion().compareTo(latestDBVersion) > 0;
+ }
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoService.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoService.java
new file mode 100644
index 0000000000..2888ecb474
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoService.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdc.asdctool.migration.service;
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.be.dao.cassandra.MigrationTasksDao;
+import org.openecomp.sdc.be.resources.data.MigrationTaskEntry;
+
+import java.math.BigInteger;
+
+public class SdcRepoService {
+
+ private MigrationTasksDao migrationTasksDao;
+
+ public SdcRepoService(MigrationTasksDao migrationTasksDao) {
+ this.migrationTasksDao = migrationTasksDao;
+ }
+
+ public DBVersion getLatestDBVersion() {
+ BigInteger currentMajorVersion = DBVersion.CURRENT_VERSION.getMajor();
+ BigInteger latestMinorVersion = migrationTasksDao.getLatestMinorVersion(currentMajorVersion);
+ return latestMinorVersion == null ? DBVersion.from(currentMajorVersion, BigInteger.valueOf(Integer.MIN_VALUE)) : DBVersion.from(currentMajorVersion, latestMinorVersion);
+ }
+
+ public void clearTasksForCurrentMajor() {
+ BigInteger currentMajorVersion = DBVersion.CURRENT_VERSION.getMajor();
+ migrationTasksDao.deleteAllTasksForVersion(currentMajorVersion);
+ }
+
+ public void createMigrationTask(MigrationTaskEntry migrationTaskEntry) {
+ migrationTasksDao.createMigrationTask(migrationTaskEntry);
+ }
+
+
+
+}
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/ExampleMigration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/ExampleMigration.java
new file mode 100644
index 0000000000..1302dc26a8
--- /dev/null
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/ExampleMigration.java
@@ -0,0 +1,27 @@
+//package org.openecomp.sdc.asdctool.migration.tasks.mig1710;//package org.openecomp.sdc.migration.tasks.mig1710;
+//
+//import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+//import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+//import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+//import org.springframework.stereotype.Component;
+//
+//@Component
+//public class ExampleMigration implements Migration {
+//
+// @Override
+// public String description() {
+// return "some description";
+// }
+//
+// @Override
+// public DBVersion getVersion() {
+// return DBVersion.fromString("1710.0");
+// }
+//
+// @Override
+// public MigrationResult migrate() {
+// MigrationResult migrationResult = new MigrationResult();
+// migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.COMPLETED);
+// return migrationResult;
+// }
+//} \ No newline at end of file
diff --git a/asdctool/src/main/resources/config/configuration.yaml b/asdctool/src/main/resources/config/configuration.yaml
index b998e2cf1f..0421d656be 100644
--- a/asdctool/src/main/resources/config/configuration.yaml
+++ b/asdctool/src/main/resources/config/configuration.yaml
@@ -507,6 +507,7 @@ cassandraConfig:
- { name: sdcaudit, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
- { name: sdcartifact, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
- { name: sdccomponent, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
+ - { name: sdcrepository, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
switchoverDetector:
diff --git a/asdctool/src/main/resources/config/logback.xml b/asdctool/src/main/resources/config/logback.xml
index 0426a32d9e..dadc5254a5 100644
--- a/asdctool/src/main/resources/config/logback.xml
+++ b/asdctool/src/main/resources/config/logback.xml
@@ -4,7 +4,16 @@
<property scope="system" name="ECOMP-subcomponent-name" value="SDC-TOOL" />
<property name="default-log-pattern"
value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{uuid}|%X{serviceInstanceID}|%thread||${ECOMP-subcomponent-name}|%X{userId}|%level|%X{alarmSeverity}|%X{localAddr}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
-
+
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <encoder>
+ <pattern>${default-log-pattern}</pattern>
+ </encoder>
+ </layout>
+ </appender>
+
<appender name="DEBUG_ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME}/asdctool/logs/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log</file>
@@ -65,4 +74,8 @@
<appender-ref ref="MALFORMED_DATA"/>
</logger>
+ <logger name="org.openecomp.sdc.asdctool.migration" level="INFO" >
+ <appender-ref ref="STDOUT"/>
+ </logger>
+
</configuration> \ No newline at end of file
diff --git a/asdctool/src/main/resources/scripts/postMigration1707Fix.sh b/asdctool/src/main/resources/scripts/postMigration1707Fix.sh
new file mode 100644
index 0000000000..56a16db70a
--- /dev/null
+++ b/asdctool/src/main/resources/scripts/postMigration1707Fix.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+##############################
+# Data Migration 1707
+##############################
+
+CURRENT_DIR=`pwd`
+BASEDIR=$(dirname $0)
+
+if [ ${BASEDIR:0:1} = "/" ]
+then
+ FULL_PATH=$BASEDIR
+else
+ FULL_PATH=$CURRENT_DIR/$BASEDIR
+fi
+
+source ${FULL_PATH}/baseOperation.sh
+
+mainClass="org.openecomp.sdc.asdctool.main.MigrationMenu"
+
+command="java $JVM_LOG_FILE -Xmx6000M -cp $JARS $mainClass fix-missing-info-1707 $@"
+echo $command
+
+$command
+result=$?
+
+
+
+echo "***********************************"
+echo "***** $result *********************"
+echo "***********************************"
+
+exit $result
+
+
diff --git a/asdctool/src/main/resources/scripts/sdc-migration.sh b/asdctool/src/main/resources/scripts/sdc-migration.sh
new file mode 100644
index 0000000000..1616890217
--- /dev/null
+++ b/asdctool/src/main/resources/scripts/sdc-migration.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+##############################
+# Data Migration
+##############################
+
+CURRENT_DIR=`pwd`
+BASEDIR=$(dirname $0)
+
+if [ ${BASEDIR:0:1} = "/" ]
+then
+ FULL_PATH=$BASEDIR
+else
+ FULL_PATH=$CURRENT_DIR/$BASEDIR
+fi
+
+source ${FULL_PATH}/baseOperation.sh
+
+mainClass="org.openecomp.sdc.asdctool.migration.main.MigrationMenu"
+
+command="java $JVM_LOG_FILE -Xmx6000M -cp $JARS $mainClass $@"
+echo $command
+
+$command
+result=$?
+
+
+
+echo "***********************************"
+echo "***** $result *********************"
+echo "***********************************"
+
+exit $result
+
+
+
diff --git a/asdctool/src/main/resources/scripts/validationTool.sh b/asdctool/src/main/resources/scripts/validationTool.sh
new file mode 100644
index 0000000000..fc82eee72d
--- /dev/null
+++ b/asdctool/src/main/resources/scripts/validationTool.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+##############################
+# Validation Tool #
+##############################
+
+CURRENT_DIR=`pwd`
+BASEDIR=$(dirname $0)
+
+if [ ${BASEDIR:0:1} = "/" ]
+then
+ FULL_PATH=$BASEDIR
+else
+ FULL_PATH=$CURRENT_DIR/$BASEDIR
+fi
+
+source ${FULL_PATH}/baseOperation.sh
+
+mainClass="org.openecomp.sdc.asdctool.main.ValidationTool"
+
+command="java $JVM_LOG_FILE -cp $JARS $mainClass reportOutput.txt /apps/jetty/base/be/config/catalog-be/"
+echo $command
+
+$command
+result=$?
+
+echo "***********************************"
+echo "***** $result *********************"
+echo "***********************************"
+
+exit $result \ No newline at end of file
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/DummyMigrationFactory.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/DummyMigrationFactory.java
new file mode 100644
index 0000000000..b16951ef02
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/DummyMigrationFactory.java
@@ -0,0 +1,72 @@
+package org.openecomp.sdc.asdctool.migration;
+
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+
+public class DummyMigrationFactory {
+
+ public static Migration SUCCESSFUL_MIGRATION = new Migration() {
+ @Override
+ public String description() {
+ return "success mig";
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString("1710.22");
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.COMPLETED);
+ migrationResult.setMsg("myMsg");
+ return migrationResult;
+ }
+ };
+
+ public static Migration FAILED_MIGRATION = new Migration() {
+ @Override
+ public String description() {
+ return "failed mig";
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString("1710.22");
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.FAILED);
+ migrationResult.setMsg("myMsg");
+ return migrationResult;
+ }
+ };
+
+ public static Migration getMigration(String version, MigrationResult.MigrationStatus status) {
+ return new Migration() {
+ @Override
+ public String description() {
+ return "success mig";
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString(version);
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(status);
+ migrationResult.setMsg("myMsg");
+ return migrationResult;
+ }
+ };
+ }
+
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/DBVersionTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/DBVersionTest.java
new file mode 100644
index 0000000000..4e5fd3ab31
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/DBVersionTest.java
@@ -0,0 +1,57 @@
+package org.openecomp.sdc.asdctool.migration.core;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.assertEquals;
+
+public class DBVersionTest {
+
+
+ @DataProvider(name = "invalidVersionStringsProvider")
+ private Object[][] invalidVersionStringsProvider() {
+ return new Object[][] {
+ {"1.1.1"},
+ {"1.a"},
+ {"a.1"},
+ {"1"}
+ };
+ }
+
+ @Test(dataProvider = "invalidVersionStringsProvider", expectedExceptions = MigrationException.class)
+ public void testFromString_invalidVersionString(String invalidVersion) {
+ DBVersion.fromString(invalidVersion);
+ }
+
+ @DataProvider(name = "validVersionStringsProvider")
+ private Object[][] validVersionStringsProvider() {
+ return new Object[][] {
+ {"1.1", "1.1"},
+ {"10100.0001", "10100.1"},
+ {"000.1", "0.1"},
+ {"01.00001000", "1.1000"},
+ };
+ }
+
+ @Test(dataProvider = "validVersionStringsProvider")
+ public void testFromString(String validString, String expectedVersionString) {
+ assertEquals(expectedVersionString, DBVersion.fromString(validString).toString());
+ }
+
+ @DataProvider(name = "versionComparisionProvider")
+ public static Object[][] versionComparisionProvider() {
+ return new Object[][] {
+ {"1.1", "001.00001", 0},
+ {"10.1", "0010.00001", 0},
+ {"1.1", "001.000010", -1},
+ {"1.1", "0010.00001", -1},
+ {"10.10", "0010.00001", 1},
+ {"1.1", "001.00", 1},
+ };
+ }
+
+ @Test(dataProvider = "versionComparisionProvider")
+ public void testVersionCompareTo2(String firstVersion, String otherVersion, int expectedComparisionResult) throws Exception {
+ assertEquals(DBVersion.fromString(firstVersion).compareTo(DBVersion.fromString(otherVersion)), expectedComparisionResult);
+ }
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationToolTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationToolTest.java
new file mode 100644
index 0000000000..b1813227e2
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/SdcMigrationToolTest.java
@@ -0,0 +1,101 @@
+package org.openecomp.sdc.asdctool.migration.core;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.internal.verification.Times;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.openecomp.sdc.asdctool.migration.resolver.MigrationResolver;
+import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class SdcMigrationToolTest {
+
+ @InjectMocks
+ private SdcMigrationTool testInstance = spy(SdcMigrationTool.class);
+
+ @Mock
+ private MigrationResolver migrationResolverMock;
+
+ @Mock
+ private SdcRepoService sdcRepoServiceMock;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testMigrate_noMigrations() throws Exception {
+ when(migrationResolverMock.resolveMigrations()).thenReturn(Collections.emptyList());
+ testInstance.migrate(false);
+ verify(sdcRepoServiceMock, new Times(0)).clearTasksForCurrentMajor();
+ verify(sdcRepoServiceMock, new Times(0)).createMigrationTask(Mockito.any());
+ }
+
+ @Test
+ public void testMigrate_enforceFlag_removeAllMigrationTasksForCurrentVersion() throws Exception {
+ when(migrationResolverMock.resolveMigrations()).thenReturn(Collections.emptyList());
+ testInstance.migrate(true);
+ verify(sdcRepoServiceMock, new Times(1)).clearTasksForCurrentMajor();
+ }
+
+ @Test
+ public void testMigrate_stopAfterFirstFailure() throws Exception {
+ when(migrationResolverMock.resolveMigrations()).thenReturn(Arrays.asList(new SuccessfulMigration(), new FailedMigration(), new SuccessfulMigration()));
+ testInstance.migrate(false);
+ verify(sdcRepoServiceMock, new Times(0)).clearTasksForCurrentMajor();
+ verify(sdcRepoServiceMock, new Times(1)).createMigrationTask(Mockito.any());
+
+ }
+
+ private class FailedMigration implements Migration {
+
+ @Override
+ public String description() {
+ return null;
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString("1710.22");
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.FAILED);
+ return migrationResult;
+ }
+ }
+
+ private class SuccessfulMigration implements Migration {
+
+ @Override
+ public String description() {
+ return null;
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString("1710.22");
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.COMPLETED);
+ return migrationResult;
+ }
+ }
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImplTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImplTest.java
new file mode 100644
index 0000000000..763d6c83d2
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/core/execution/MigrationExecutorImplTest.java
@@ -0,0 +1,47 @@
+package org.openecomp.sdc.asdctool.migration.core.execution;
+
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+
+public class MigrationExecutorImplTest {
+
+ @Test
+ public void testExecuteMigration() throws Exception {
+ MigrationExecutionResult execute = new MigrationExecutorImpl().execute(new DummyMigration());
+
+ }
+
+ private void assertMigrationTaskEntryByMigrationExecutionResult(MigrationExecutionResult executionResult, Migration migration, MigrationResult result) {
+ assertEquals(executionResult.getMsg(), result.getMsg());
+ assertEquals(executionResult.getMigrationStatus().name(), result.getMigrationStatus());
+ assertEquals(executionResult.getTaskName(), migration.getClass().getName());
+ assertEquals(executionResult.getVersion(), migration.getVersion());
+ assertNotNull(executionResult.getExecutionTime());
+ }
+
+ private class DummyMigration implements Migration {
+
+ @Override
+ public String description() {
+ return null;
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString("1710.22");
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ MigrationResult migrationResult = new MigrationResult();
+ migrationResult.setMigrationStatus(MigrationResult.MigrationStatus.COMPLETED);
+ migrationResult.setMsg("myMsg");
+ return migrationResult;
+ }
+ }
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolverTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolverTest.java
new file mode 100644
index 0000000000..6084608f0e
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/resolver/SpringBeansMigrationResolverTest.java
@@ -0,0 +1,84 @@
+package org.openecomp.sdc.asdctool.migration.resolver;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.core.task.MigrationResult;
+import org.openecomp.sdc.asdctool.migration.service.SdcRepoService;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+public class SpringBeansMigrationResolverTest {
+
+ @InjectMocks
+ private SpringBeansMigrationResolver testInstance;
+
+ @Mock
+ private SdcRepoService sdcRepoServiceMock;
+
+ private List<Migration> migrations = Arrays.asList(createMigration("1710.1"), createMigration("1710.22"), createMigration("1707.12"), createMigration("1710.3"));
+
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ testInstance.setMigrations(migrations);
+ }
+
+ @Test
+ public void testResolveMigrations_getMigrationsWithVersionGreaterThanLatest() throws Exception {
+ when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.2"));
+ List<Migration> resolvedMigrations = testInstance.resolveMigrations();
+ assertEquals(resolvedMigrations.size(), 2);
+ assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.3"));
+ assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.22"));
+ }
+
+ @Test
+ public void testResolveMigration_noLatestVersionForCurrentMajorVersion() throws Exception {
+ when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
+ List<Migration> resolvedMigrations = testInstance.resolveMigrations();
+ assertEquals(resolvedMigrations.size(), 3);
+ assertEquals(resolvedMigrations.get(0).getVersion(), DBVersion.fromString("1710.1"));
+ assertEquals(resolvedMigrations.get(1).getVersion(), DBVersion.fromString("1710.3"));
+ assertEquals(resolvedMigrations.get(2).getVersion(), DBVersion.fromString("1710.22"));
+ }
+
+ @Test
+ public void testResolveMigrations_emptyMigrationsList() throws Exception {
+ testInstance.setMigrations(Collections.emptyList());
+ when(sdcRepoServiceMock.getLatestDBVersion()).thenReturn(DBVersion.fromString("1710.-1"));
+ List<Migration> resolvedMigrations = testInstance.resolveMigrations();
+ assertTrue(resolvedMigrations.isEmpty());
+ }
+
+ private Migration createMigration(String version) {
+ return new Migration() {
+ @Override
+ public String description() {
+ return null;
+ }
+
+ @Override
+ public DBVersion getVersion() {
+ return DBVersion.fromString(version);
+ }
+
+ @Override
+ public MigrationResult migrate() {
+ return null;
+ }
+ };
+ }
+
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/scanner/ClassScanner.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/scanner/ClassScanner.java
new file mode 100644
index 0000000000..a2bf623b83
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/scanner/ClassScanner.java
@@ -0,0 +1,81 @@
+package org.openecomp.sdc.asdctool.migration.scanner;
+
+import org.apache.commons.io.FileUtils;
+import org.openecomp.sdc.asdctool.migration.core.MigrationException;
+
+import java.io.File;
+import java.lang.reflect.Modifier;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * scan and instantiate classes of given type in the class path
+ */
+public class ClassScanner {
+
+
+ private ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+
+ public <T> List<T> getAllClassesOfType(String basePackage, Class<T> ofType) {
+ Collection<File> allClassesInPackage = getAllClassesInPackage(basePackage);
+ List<T> loadedClasses = new ArrayList<>();
+ for (File clazzFile : allClassesInPackage) {
+ Optional<T> instance = loadAndInstantiateClass(getClassReference(clazzFile), ofType);
+ instance.ifPresent(loadedClasses::add);
+ }
+ return loadedClasses;
+ }
+
+ private <T> Optional<T> loadAndInstantiateClass(String classReference, Class<T> ofType) {
+ try {
+ return instantiateClassOfType(classReference, ofType);
+ }catch (ClassNotFoundException e) {
+ //log
+ throw new MigrationException(String.format("could not find class %s of type %s. cause: %s", classReference, ofType.toGenericString(), e.getMessage()));
+ } catch (IllegalAccessException e1) {
+ //log
+ throw new MigrationException(String.format("could not instantiate class %s of type %s. class is not accessible. cause: %s", classReference, ofType.toGenericString(), e1.getMessage()));
+ } catch (InstantiationException e2) {
+ //log
+ throw new MigrationException(String.format("could not instantiate class %s of type %s. cause: %s", classReference, ofType.toGenericString(), e2.getMessage()));
+ }
+ }
+
+ private <T> Optional<T> instantiateClassOfType(String classReference, Class<T> ofType) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+ String className = classReference.replaceAll(".class$", "").replaceAll(".class", "");
+ Class<?> aClass = classLoader.loadClass(className);
+ if (ofType.isAssignableFrom(aClass) && isInstantiateAbleClass(aClass)){
+ return Optional.of((T) aClass.newInstance());
+ }
+ return Optional.empty();
+ }
+
+ private boolean isInstantiateAbleClass(Class<?> clazz) {
+ return !Modifier.isAbstract(clazz.getModifiers()) && !clazz.isEnum() && !clazz.isAnonymousClass() && !clazz.isInterface();
+ }
+
+ private Collection<File> getAllClassesInPackage(String fromPackage) {
+ String path = fromPackage.replace(".", "/");
+ URL resource = classLoader.getResource(path);
+ if (noMigrationTasks(resource)) {
+ return Collections.emptyList();
+ }
+ return FileUtils.listFiles(new File(resource.getFile()), new String[]{"class"}, true);
+ }
+
+ private boolean noMigrationTasks(URL resource) {
+ return resource == null;
+ }
+
+ private String getClassReference(File classFile) {
+ String asPackage = classFile.getPath().replace(File.separator, ".");
+ String classes = "classes.";
+ return asPackage.substring(asPackage.indexOf(classes) + classes.length());
+ }
+
+
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoServiceTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoServiceTest.java
new file mode 100644
index 0000000000..f8e9abe2c9
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/service/SdcRepoServiceTest.java
@@ -0,0 +1,55 @@
+package org.openecomp.sdc.asdctool.migration.service;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.internal.verification.Times;
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.be.dao.cassandra.MigrationTasksDao;
+import org.openecomp.sdc.be.resources.data.MigrationTaskEntry;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.math.BigInteger;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertEquals;
+
+public class SdcRepoServiceTest {
+
+ @InjectMocks
+ private SdcRepoService testInstance;
+
+ @Mock
+ private MigrationTasksDao migrationTasksDaoMock;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testGetLatestVersion_noMinorVersionForCurrentVersion() throws Exception {
+ when(migrationTasksDaoMock.getLatestMinorVersion(DBVersion.CURRENT_VERSION.getMajor())).thenReturn(null);
+ DBVersion latestDBVersion = testInstance.getLatestDBVersion();
+ assertEquals(latestDBVersion.getMajor(), DBVersion.CURRENT_VERSION.getMajor());
+ assertEquals(latestDBVersion.getMinor(), BigInteger.valueOf(Integer.MIN_VALUE));
+ }
+
+ @Test
+ public void testGetLatestVersion() throws Exception {
+ when(migrationTasksDaoMock.getLatestMinorVersion(DBVersion.CURRENT_VERSION.getMajor())).thenReturn(BigInteger.TEN);
+ DBVersion latestDBVersion = testInstance.getLatestDBVersion();
+ assertEquals(latestDBVersion.getMajor(), DBVersion.CURRENT_VERSION.getMajor());
+ assertEquals(latestDBVersion.getMinor(), BigInteger.TEN);
+ }
+
+ @Test
+ public void testCreateMigrationTask() throws Exception {
+ MigrationTaskEntry taskEntry = new MigrationTaskEntry();
+ testInstance.createMigrationTask(taskEntry);
+ verify(migrationTasksDaoMock, new Times(1)).createMigrationTask(taskEntry);
+ }
+
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/task/MigrationTasksTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/task/MigrationTasksTest.java
new file mode 100644
index 0000000000..037d51ba12
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/task/MigrationTasksTest.java
@@ -0,0 +1,56 @@
+package org.openecomp.sdc.asdctool.migration.task;
+
+import org.apache.commons.lang.StringUtils;
+import org.openecomp.sdc.asdctool.migration.core.DBVersion;
+import org.openecomp.sdc.asdctool.migration.core.task.Migration;
+import org.openecomp.sdc.asdctool.migration.scanner.ClassScanner;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+
+public class MigrationTasksTest {
+
+ public static final String MIGRATIONS_BASE_PACKAGE = "org.openecomp.sdc.asdctool.migration.tasks";
+ private List<Migration> migrations;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ ClassScanner classScanner = new ClassScanner();
+ migrations = classScanner.getAllClassesOfType(MIGRATIONS_BASE_PACKAGE, Migration.class);
+ }
+
+ @Test
+ public void testNoTasksWithSameVersion() throws Exception {
+ Map<DBVersion, List<Migration>> migrationsByVersion = migrations.stream().collect(Collectors.groupingBy(Migration::getVersion));
+ migrationsByVersion.forEach((version, migrations) -> {
+ if (migrations.size() > 1) {
+ System.out.println(String.format("the following migration tasks have the same version %s. versions must be unique", version.toString()));
+ Assert.fail(String.format("migration tasks %s has same version %s. migration tasks versions must be unique.", getMigrationsNameAsString(migrations), version.toString()));
+ }
+ });
+ }
+
+ @Test
+ public void testNoTaskWithVersionGreaterThanCurrentVersion() throws Exception {
+ Set<Migration> migrationsWithVersionsGreaterThanCurrent = migrations.stream().filter(mig -> mig.getVersion().compareTo(DBVersion.CURRENT_VERSION) > 0)
+ .collect(Collectors.toSet());
+
+ if (!migrationsWithVersionsGreaterThanCurrent.isEmpty()) {
+ Assert.fail(String.format("migrations tasks %s have version which is greater than DBVersion.CURRENT_VERSION %s. did you forget to update current version?",
+ getMigrationsNameAsString(migrationsWithVersionsGreaterThanCurrent),
+ DBVersion.CURRENT_VERSION.toString()));
+ }
+ }
+
+ private String getMigrationsNameAsString(Collection<Migration> migrations) {
+ return StringUtils.join(migrations.stream().map(mig -> mig.getClass().getName()).collect(Collectors.toList()), ",");
+ }
+}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogic.java
index cb04cfcdc9..77900efd82 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogic.java
@@ -340,10 +340,14 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
private boolean artifactGenerationRequired(org.openecomp.sdc.be.model.Component component, ArtifactDefinition artifactInfo) {
boolean needGenerate;
needGenerate = artifactInfo.getArtifactGroupType() == ArtifactGroupTypeEnum.TOSCA && (component.getLifecycleState() == LifecycleStateEnum.NOT_CERTIFIED_CHECKIN || component.getLifecycleState() == LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
- needGenerate = needGenerate || (ComponentTypeEnum.RESOURCE == component.getComponentType() && artifactInfo.getArtifactType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_ENV.getType()));
+ needGenerate = needGenerate || (ComponentTypeEnum.RESOURCE == component.getComponentType() && (artifactInfo.getArtifactType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_ENV.getType()) || isAbstractVfcEmptyCsar((Resource) component, artifactInfo)));
return needGenerate;
}
+ private boolean isAbstractVfcEmptyCsar(Resource resource, ArtifactDefinition artifactInfo) {
+ return resource.isAbstract() && artifactInfo.getArtifactGroupType() == ArtifactGroupTypeEnum.TOSCA && artifactInfo.getArtifactType().equals(ArtifactTypeEnum.TOSCA_CSAR.getType()) && StringUtils.isEmpty(artifactInfo.getArtifactChecksum());
+ }
+
public Either<Either<ArtifactDefinition, Operation>, ResponseFormat> generateAndSaveToscaArtifact(ArtifactDefinition artifactDefinition, org.openecomp.sdc.be.model.Component component, User user, boolean isInCertificationRequest,
boolean shouldLock, boolean inTransaction, boolean fetchTemplatesFromDB) {
@@ -798,13 +802,13 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return Either.left(artifactResult.left().value());
}
- private Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleCreate(String parentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, AuditingActionEnum auditingAction, User user, ComponentTypeEnum componentType,
+ private Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleCreate(String componentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, AuditingActionEnum auditingAction, User user, ComponentTypeEnum componentType,
org.openecomp.sdc.be.model.Component parent, String origMd5, String originData, String interfaceType, String operationName, boolean shouldLock, boolean inTransaction) {
String artifactId = null;
// step 11
- Either<byte[], ResponseFormat> payloadEither = validateInput(parentId, artifactInfo, operation, auditingAction, artifactId, user, componentType, parent, origMd5, originData, interfaceType, operationName, inTransaction);
+ Either<byte[], ResponseFormat> payloadEither = validateInput(componentId, artifactInfo, operation, auditingAction, artifactId, user, componentType, parent, origMd5, originData, interfaceType, operationName, inTransaction);
if (payloadEither.isRight()) {
return Either.right(payloadEither.right().value());
}
@@ -814,14 +818,14 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
if (shouldLock) {
Either<Boolean, ResponseFormat> lockComponent = lockComponent(parent, "Upload Artifact - lock ");
if (lockComponent.isRight()) {
- handleAuditing(auditingAction, parent, parentId, user, null, null, null, lockComponent.right().value(), componentType, null);
+ handleAuditing(auditingAction, parent, componentId, user, null, null, null, lockComponent.right().value(), componentType, null);
return Either.right(lockComponent.right().value());
}
}
Either<Either<ArtifactDefinition, Operation>, ResponseFormat> resultOp = null;
try {
- resultOp = createArtifact(parent, parentId, artifactInfo, decodedPayload, user, componentType, auditingAction, interfaceType, operationName);
+ resultOp = createArtifact(parent, componentId, artifactInfo, decodedPayload, user, componentType, auditingAction, interfaceType, operationName);
return resultOp;
} finally {
if (shouldLock) {
@@ -872,28 +876,28 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return lockComponentAndUpdateArtifact(parentId, artifactInfo, auditingAction, artifactId, user, componentType, parent, decodedPayload, interfaceType, operationName, shouldLock, inTransaction);
}
- private Either<byte[], ResponseFormat> validateInput(String parentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, AuditingActionEnum auditingAction, String artifactId, User user, ComponentTypeEnum componentType,
+ private Either<byte[], ResponseFormat> validateInput(String componentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, AuditingActionEnum auditingAction, String artifactId, User user, ComponentTypeEnum componentType,
org.openecomp.sdc.be.model.Component parent, String origMd5, String originData, String interfaceType, String operationName, boolean inTransaction) {
// Md5 validations
Either<Boolean, ResponseFormat> validateMd5 = validateMd5(origMd5, originData, artifactInfo.getPayloadData(), operation);
if (validateMd5.isRight()) {
ResponseFormat responseFormat = validateMd5.right().value();
- handleAuditing(auditingAction, parent, parentId, user, null, null, artifactId, responseFormat, componentType, null);
+ handleAuditing(auditingAction, parent, componentId, user, null, null, artifactId, responseFormat, componentType, null);
return Either.right(responseFormat);
}
// step 11
- Either<ArtifactDefinition, ResponseFormat> validateResult = validateInput(parentId, artifactInfo, operation, artifactId, user, interfaceType, operationName, componentType, parent, inTransaction);
+ Either<ArtifactDefinition, ResponseFormat> validateResult = validateInput(componentId, artifactInfo, operation, artifactId, user, interfaceType, operationName, componentType, parent, inTransaction);
if (validateResult.isRight()) {
ResponseFormat responseFormat = validateResult.right().value();
- handleAuditing(auditingAction, parent, parentId, user, null, null, artifactId, responseFormat, componentType, null);
+ handleAuditing(auditingAction, parent, componentId, user, null, null, artifactId, responseFormat, componentType, null);
return Either.right(validateResult.right().value());
}
Either<byte[], ResponseFormat> payloadEither = handlePayload(artifactInfo, isArtifactMetadataUpdate(auditingAction));
if (payloadEither.isRight()) {
ResponseFormat responseFormat = payloadEither.right().value();
- handleAuditing(auditingAction, parent, parentId, user, null, null, artifactId, responseFormat, componentType, null);
+ handleAuditing(auditingAction, parent, componentId, user, null, null, artifactId, responseFormat, componentType, null);
log.debug("Error during handle payload");
return Either.right(responseFormat);
}
@@ -903,7 +907,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
Either<ArtifactDefinition, ResponseFormat> validateAndConvertHeatParamers = validateAndConvertHeatParamers(artifactInfo, artifactInfo.getArtifactType());
if (validateAndConvertHeatParamers.isRight()) {
ResponseFormat responseFormat = validateAndConvertHeatParamers.right().value();
- handleAuditing(auditingAction, parent, parentId, user, artifactInfo, null, artifactId, responseFormat, componentType, null);
+ handleAuditing(auditingAction, parent, componentId, user, artifactInfo, null, artifactId, responseFormat, componentType, null);
log.debug("Error during handle payload");
return Either.right(responseFormat);
}
@@ -1025,9 +1029,16 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return Either.left(true);
}
- private Either<ArtifactDefinition, ResponseFormat> validateInput(String parentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, String artifactId, User user, String interfaceName, String operationName,
+ private Either<ArtifactDefinition, ResponseFormat> validateInput(String componentId, ArtifactDefinition artifactInfo, ArtifactOperationInfo operation, String artifactId, User user, String interfaceName, String operationName,
ComponentTypeEnum componentType, Component parentComponent, boolean inTransaction) {
+ Either<ArtifactDefinition, ResponseFormat> artifactById = findArtifactOnParentComponent(parentComponent, componentType, componentId, operation, artifactId);
+ if (artifactById.isRight()) {
+ return Either.right(artifactById.right().value());
+ }
+ ArtifactDefinition currentArtifactInfo = artifactById.left().value();
+
+ ignoreUnupdateableFieldsInUpdate(operation, artifactInfo, currentArtifactInfo);
Either<Boolean, ResponseFormat> validateInformationalArtifactRes = validateInformationalArtifact(artifactInfo, parentComponent);
if (validateInformationalArtifactRes.isRight()) {
return Either.right(validateInformationalArtifactRes.right().value());
@@ -1036,16 +1047,11 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
if (validateAndSetArtifactname.isRight()) {
return Either.right(validateAndSetArtifactname.right().value());
}
- Either<ArtifactDefinition, ResponseFormat> artifactById = findArtifactOnParentComponent(parentComponent, componentType, parentId, operation, artifactId);
- if (artifactById.isRight()) {
- return Either.right(artifactById.right().value());
- }
- ArtifactDefinition currentArtifactInfo = artifactById.left().value();
if (operationName != null && interfaceName != null) {
operationName = operationName.toLowerCase();
interfaceName = interfaceName.toLowerCase();
}
- Either<ActionStatus, ResponseFormat> logicalNameStatus = handleArtifactLabel(parentId, operation, artifactId, artifactInfo, interfaceName, operationName, currentArtifactInfo, componentType, inTransaction);
+ Either<ActionStatus, ResponseFormat> logicalNameStatus = handleArtifactLabel(componentId, parentComponent, operation, artifactId, artifactInfo, interfaceName, operationName, currentArtifactInfo, componentType);
if (logicalNameStatus.isRight()) {
return Either.right(logicalNameStatus.right().value());
}
@@ -1058,7 +1064,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
checkCreateFields(user, artifactInfo, (operationName != null ? ArtifactGroupTypeEnum.LIFE_CYCLE : ArtifactGroupTypeEnum.INFORMATIONAL));
}
- composeArtifactId(parentId, artifactId, artifactInfo, interfaceName, operationName);
+ composeArtifactId(componentId, artifactId, artifactInfo, interfaceName, operationName);
if (currentArtifactInfo != null) {
artifactInfo.setMandatory(currentArtifactInfo.getMandatory());
}
@@ -1077,7 +1083,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
boolean isCreate = operation.getArtifactOperationEnum() == ArtifactOperationEnum.Create;
if (isDeploymentArtifact(artifactInfo)) {
- Either<Boolean, ResponseFormat> deploymentValidationResult = validateDeploymentArtifact(parentComponent, parentId, user.getUserId(), isCreate, artifactInfo, currentArtifactInfo, parentType);
+ Either<Boolean, ResponseFormat> deploymentValidationResult = validateDeploymentArtifact(parentComponent, componentId, user.getUserId(), isCreate, artifactInfo, currentArtifactInfo, parentType);
if (deploymentValidationResult.isRight()) {
return Either.right(deploymentValidationResult.right().value());
}
@@ -1135,6 +1141,14 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return Either.left(artifactInfo);
}
+ private void ignoreUnupdateableFieldsInUpdate(ArtifactOperationInfo operation, ArtifactDefinition artifactInfo, ArtifactDefinition currentArtifactInfo) {
+ if(operation.getArtifactOperationEnum().equals(ArtifactOperationEnum.Update)){
+ artifactInfo.setArtifactType(currentArtifactInfo.getArtifactType());
+ artifactInfo.setArtifactGroupType(currentArtifactInfo.getArtifactGroupType());
+ artifactInfo.setArtifactLabel(currentArtifactInfo.getArtifactLabel());
+ }
+ }
+
private Either<ArtifactDefinition, ResponseFormat> findArtifactOnParentComponent(Component parentComponent, ComponentTypeEnum componentType, String parentId, ArtifactOperationInfo operation, String artifactId) {
Either<ArtifactDefinition, ResponseFormat> result = null;
@@ -1474,13 +1488,13 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
private void resetMandatoryArtifactFields(ArtifactDefinition fetchedArtifact) {
if (fetchedArtifact != null) {
log.debug("Going to reset mandatory artifact {} fields. ", fetchedArtifact.getUniqueId());
- fetchedArtifact.setEsId("");
- fetchedArtifact.setArtifactName("");
- fetchedArtifact.setDescription("");
- fetchedArtifact.setApiUrl("");
- fetchedArtifact.setArtifactChecksum("");
+ fetchedArtifact.setEsId(null);
+ fetchedArtifact.setArtifactName(null);
+ fetchedArtifact.setDescription(null);
+ fetchedArtifact.setApiUrl(null);
+ fetchedArtifact.setArtifactChecksum(null);
nodeTemplateOperation.setDefaultArtifactTimeout(fetchedArtifact.getArtifactGroupType(), fetchedArtifact);
- fetchedArtifact.setArtifactUUID("");
+ fetchedArtifact.setArtifactUUID(null);
long time = System.currentTimeMillis();
fetchedArtifact.setPayloadUpdateDate(time);
fetchedArtifact.setHeatParameters(null);
@@ -1540,10 +1554,10 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return Either.left(currentArtifactInfo);
}
- private Either<ActionStatus, ResponseFormat> handleArtifactLabel(String componentId, ArtifactOperationInfo operation, String artifactId, ArtifactDefinition artifactInfo, String interfaceName, String operationName,
- ArtifactDefinition currentArtifactInfo, ComponentTypeEnum componentType, boolean inTransaction) {
- String artifactLabel = artifactInfo.getArtifactLabel();
+ private Either<ActionStatus, ResponseFormat> handleArtifactLabel(String componentId, Component parentComponent, ArtifactOperationInfo operation, String artifactId, ArtifactDefinition artifactInfo, String interfaceName, String operationName,
+ ArtifactDefinition currentArtifactInfo, ComponentTypeEnum componentType) {
+ String artifactLabel = artifactInfo.getArtifactLabel();
if (operationName == null && (artifactInfo.getArtifactLabel() == null || artifactInfo.getArtifactLabel().isEmpty())) {
BeEcompErrorManager.getInstance().logBeMissingArtifactInformationError("Artifact Update / Upload", "artifactLabel");
log.debug("missing artifact logical name for component {}", componentId);
@@ -1584,27 +1598,25 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
log.debug("Invalid lenght form Artifact label : {}", artifactLabel);
return Either.right(componentsUtils.getResponseFormat(ActionStatus.EXCEEDS_LIMIT, ARTIFACT_LABEL, String.valueOf(ValidationUtils.ARTIFACT_LABEL_LENGTH)));
}
- if (!validateLabelUniqueness(componentId, artifactLabel, componentType)) {
+ if (!validateLabelUniqueness(componentId, parentComponent, artifactLabel, componentType)) {
log.debug("Non unique Artifact label : {}", artifactLabel);
return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_EXIST, artifactLabel));
}
}
artifactInfo.setArtifactLabel(artifactLabel);
- if (currentArtifactInfo != null && !currentArtifactInfo.getArtifactLabel().equals(artifactInfo.getArtifactLabel())) {
- log.info("Logical artifact's name cannot be changed {}", artifactId);
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED));
- }
return Either.left(ActionStatus.OK);
}
- private boolean validateLabelUniqueness(String parentId, String artifactLabel, ComponentTypeEnum componentType) {
+ private boolean validateLabelUniqueness(String componentId, Component parentComponent, String artifactLabel, ComponentTypeEnum componentType) {
boolean isUnique = true;
- if (componentType.equals(ComponentTypeEnum.RESOURCE)) {
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifacts;
+ if (componentType.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ artifacts = artifactToscaOperation.getAllInstanceArtifacts(parentComponent.getUniqueId(), componentId);
} else {
+ artifacts = artifactToscaOperation.getArtifacts(componentId);
}
- // Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifacts = artifactOperation.getArtifacts(parentId, parentType, inTransaction);
- Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifacts = artifactToscaOperation.getArtifacts(parentId);
+
if (artifacts.isLeft()) {
for (String label : artifacts.left().value().keySet()) {
if (label.equals(artifactLabel)) {
@@ -1614,7 +1626,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
}
}
if (componentType.equals(ComponentTypeEnum.RESOURCE)) {
- Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = interfaceLifecycleOperation.getAllInterfacesOfResource(parentId, true, true);
+ Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = interfaceLifecycleOperation.getAllInterfacesOfResource(componentId, true, true);
if (allInterfacesOfResource.isLeft()) {
for (InterfaceDefinition interace : allInterfacesOfResource.left().value().values()) {
for (Operation operation : interace.getOperationsMap().values()) {
@@ -2749,8 +2761,8 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
}
} else if (ArtifactTypeEnum.YANG_XML.getType().equalsIgnoreCase(artifactType) || ArtifactTypeEnum.VNF_CATALOG.getType().equalsIgnoreCase(artifactType) || ArtifactTypeEnum.VF_LICENSE.getType().equalsIgnoreCase(artifactType)
|| ArtifactTypeEnum.VENDOR_LICENSE.getType().equalsIgnoreCase(artifactType) || ArtifactTypeEnum.MODEL_INVENTORY_PROFILE.getType().equalsIgnoreCase(artifactType)
- || ArtifactTypeEnum.MODEL_QUERY_SPEC.getType().equalsIgnoreCase(artifactType)) {
- isValidPayload = validateYangPayload(decodedPayload, artifactType);
+ || ArtifactTypeEnum.MODEL_QUERY_SPEC.getType().equalsIgnoreCase(artifactType) || ArtifactTypeEnum.UCPE_LAYER_2_CONFIGURATION.getType().equalsIgnoreCase(artifactType)) {
+ isValidPayload = validateXmlPayload(decodedPayload, artifactType);
// else
// if(ArtifactTypeEnum.APPC_CONFIG.getType().equalsIgnoreCase(artifactType)
// || ){
@@ -2760,7 +2772,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
String fileExtension = GeneralUtility.getFilenameExtension(artifactFileName).toLowerCase();
switch (fileExtension) {
case "xml":
- isValidPayload = validateYangPayload(decodedPayload, artifactType);
+ isValidPayload = validateXmlPayload(decodedPayload, artifactType);
break;
case "json":
isValidPayload = validateJsonPayload(decodedPayload, artifactType);
@@ -2824,7 +2836,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
return res;
}
- private Either<Boolean, ResponseFormat> validateYangPayload(byte[] payload, String artifactType) {
+ private Either<Boolean, ResponseFormat> validateXmlPayload(byte[] payload, String artifactType) {
boolean isXmlValid = isValidXml(payload);
if (!isXmlValid) {
ResponseFormat responseFormat = ResponseFormatManager.getInstance().getResponseFormat(ActionStatus.INVALID_XML, artifactType);
@@ -3515,11 +3527,12 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
private String generateHeatEnvPayload(ArtifactDefinition artifactDefinition) {
List<HeatParameterDefinition> heatParameters = artifactDefinition.getListHeatParameters();
- heatParameters.sort(Comparator.comparing(e -> e.getName()));
StringBuilder sb = new StringBuilder();
sb.append(ConfigurationManager.getConfigurationManager().getConfiguration().getHeatEnvArtifactHeader());
sb.append("parameters:\n");
if (heatParameters != null) {
+ heatParameters.sort(Comparator.comparing(e -> e.getName()));
+
List<HeatParameterDefinition> empltyHeatValues = new ArrayList<>();
for (HeatParameterDefinition heatParameterDefinition : heatParameters) {
@@ -3885,7 +3898,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
* currently getArtifactById does not retrieve heatParameters Either<ArtifactDefinition, StorageOperationStatus> artifactRes = artifactOperation.getArtifactById(artifactId, false); ArtifactDefinition currArtifact = artifactRes.left().value();
*/
String currentHeatId = currHeatArtifact.getUniqueId();
-
+
String esArtifactId = currHeatArtifact.getEsId();
Either<ESArtifactData, CassandraOperationStatus> artifactfromES = artifactCassandraDao.getArtifact(esArtifactId);
if (artifactfromES.isRight()) {
@@ -3898,8 +3911,8 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
ESArtifactData esArtifactData = artifactfromES.left().value();
byte[] data = esArtifactData.getDataAsArray();
-
-
+
+
ArtifactDefinition updatedHeatArt = currHeatArtifact;
List<HeatParameterDefinition> updatedHeatEnvParams = artifactEnvInfo.getListHeatParameters();
@@ -3948,7 +3961,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
if (!updatedHeatArt.getDuplicated() || esArtifactData.getId() == null)
esArtifactData.setId(updatedHeatArt.getEsId());
res = saveArtifacts(esArtifactData, parent.getUniqueId(), false);
-
+
if (res) {
log.debug("Artifact saved into ES - {}", updatedHeatArt.getUniqueId());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.OK);
@@ -3963,7 +3976,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
resultOp = Either.right(responseFormat);
// return resultOp;
}
-
+
insideEither = Either.left(updatedHeatArt);
}
}
@@ -3975,13 +3988,17 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
updateHeatEnvArtifact = artifactToscaOperation.updateHeatEnvPlaceholder(artifactEnvInfo, componentId, componentType.getNodeType());
}
- if ( needToUpdateGroup && updateHeatEnvArtifact.isLeft() ){
+ if (needToUpdateGroup && updateHeatEnvArtifact.isLeft()) {
ActionStatus result = updateGroupForHeat(currHeatArtifact, updatedHeatArt, artifactEnvInfo, updateHeatEnvArtifact.left().value(), parent, componentType);
- if ( result != ActionStatus.OK ){
+ if (result != ActionStatus.OK) {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(result);
return Either.right(responseFormat);
}
}
+
+ if (updatedHeatEnvParams.isEmpty()) {
+ return getResponseAndAuditInvalidEmptyHeatEnvFile(auditingAction, parent, parent.getUniqueId(), user, currHeatArtifact, artifactId, componentType);
+ }
resultOp = Either.left(insideEither);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.OK);
handleAuditing(auditingAction, parent, parent.getUniqueId(), user, currHeatArtifact, null, artifactId, responseFormat, componentType, "");
@@ -3989,6 +4006,13 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
}
+ private Either<Either<ArtifactDefinition,Operation>,ResponseFormat> getResponseAndAuditInvalidEmptyHeatEnvFile(AuditingActionEnum auditingAction, Component parent, String uniqueId, User user, ArtifactDefinition currHeatArtifact, String artifactId, ComponentTypeEnum componentType) {
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_YAML);
+ handleAuditing(auditingAction, parent, parent.getUniqueId(), user, currHeatArtifact, null, artifactId, responseFormat, componentType, "");
+ return Either.right(responseFormat);
+ }
+
+
private StorageOperationStatus generateCustomizationUUIDOnGroupInstance(ComponentInstance ri, String artifactId, String componentId) {
StorageOperationStatus error = StorageOperationStatus.OK;
log.debug("Need to re-generate customization UUID for group instance on component instance {}", ri.getUniqueId());
@@ -4091,7 +4115,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
Component component = getComponentByUuid(componentType, componentUuid, errorWrapper);
if (errorWrapper.isEmpty()) {
auditAdditionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
- downloadedArtifact = downloadArtifact(component.getDeploymentArtifacts(), artifactUUID, errorWrapper, component.getName());
+ downloadedArtifact = downloadArtifact(component.getAllArtifacts(), artifactUUID, errorWrapper, component.getName());
}
if (errorWrapper.isEmpty()) {
result = Either.left(downloadedArtifact);
@@ -4270,7 +4294,7 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
Component component = null;
String componentId = null;
String artifactId = null;
- ArtifactDefinition artifactInfo = RepresentationUtils.convertJsonToArtifactDefinition(data, ArtifactDefinition.class);
+ ArtifactDefinition artifactInfo = RepresentationUtils.convertJsonToArtifactDefinitionForUpdate(data, ArtifactDefinition.class);
String origMd5 = request.getHeader(Constants.MD5_HEADER);
String userId = request.getHeader(Constants.USER_ID_HEADER);
@@ -4732,17 +4756,17 @@ public class ArtifactsBusinessLogic extends BaseBusinessLogic {
byte[] downloadedArtifact = null;
Either<ImmutablePair<String, byte[]>, ResponseFormat> downloadArtifactEither = null;
- List<ArtifactDefinition> deploymentArtifacts = null;
+ List<ArtifactDefinition> artifactsList = null;
ArtifactDefinition deploymentArtifact = null;
if (artifacts != null && !artifacts.isEmpty()) {
- deploymentArtifacts = artifacts.values().stream().filter(art -> art.getArtifactUUID() != null && art.getArtifactUUID().equals(artifactUUID)).collect(Collectors.toList());
+ artifactsList = artifacts.values().stream().filter(art -> art.getArtifactUUID() != null && art.getArtifactUUID().equals(artifactUUID)).collect(Collectors.toList());
}
- if (deploymentArtifacts == null || deploymentArtifacts.isEmpty()) {
+ if (artifactsList == null || artifactsList.isEmpty()) {
log.debug("Deployment artifact with uuid {} was not found for component {}", artifactUUID, componentName);
errorWrapper.setInnerElement(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_FOUND, artifactUUID));
}
if (errorWrapper.isEmpty()) {
- deploymentArtifact = deploymentArtifacts.get(0);
+ deploymentArtifact = artifactsList.get(0);
downloadArtifactEither = downloadArtifact(deploymentArtifact);
if (downloadArtifactEither.isRight()) {
log.debug("Failed to download artifact {}. ", deploymentArtifact.getArtifactName());
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
index df8460ca96..1d153e0a5d 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
@@ -47,6 +47,7 @@ import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.GroupProperty;
import org.openecomp.sdc.be.model.IComplexDefaultValue;
+import org.openecomp.sdc.be.model.IPropertyInputCommon;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
@@ -391,11 +392,10 @@ public abstract class BaseBusinessLogic {
}
protected Either<Boolean, ResponseFormat> validatePropertyDefaultValue(IComplexDefaultValue property, Map<String, DataTypeDefinition> dataTypes) {
- log.debug("validate property");
String type = null;
String innerType = null;
if (!propertyOperation.isPropertyTypeValid(property)) {
- log.info("Invalid type for property");
+ log.info("Invalid type for property {} type {}", property.getName(), property.getType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_PROPERTY_TYPE, property.getType(), property.getName());
return Either.right(responseFormat);
}
@@ -404,13 +404,13 @@ public abstract class BaseBusinessLogic {
ImmutablePair<String, Boolean> propertyInnerTypeValid = propertyOperation.isPropertyInnerTypeValid(property, dataTypes);
innerType = propertyInnerTypeValid.getLeft();
if (!propertyInnerTypeValid.getRight().booleanValue()) {
- log.info("Invalid inner type for property");
+ log.info("Invalid inner type for property {} type {}", property.getName(), property.getType() );
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_PROPERTY_INNER_TYPE, innerType, property.getName());
return Either.right(responseFormat);
}
}
if (!propertyOperation.isPropertyDefaultValueValid(property, dataTypes)) {
- log.info("Invalid default value for property");
+ log.info("Invalid default value for property {} type {}", property.getName(), property.getType() );
ResponseFormat responseFormat;
if (type.equals(ToscaPropertyType.LIST.getType()) || type.equals(ToscaPropertyType.MAP.getType())) {
responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_COMPLEX_DEFAULT_VALUE, property.getName(), type, innerType, property.getDefaultValue());
@@ -568,7 +568,7 @@ public abstract class BaseBusinessLogic {
return Arrays.asList(enumValues).contains(enumFound);
}
- protected Either<String, StorageOperationStatus> validatePropValueBeforeCreate(ComponentInstanceProperty property, String value, boolean isValidate, String innerType, Map<String, DataTypeDefinition> allDataTypes) {
+ protected Either<String, StorageOperationStatus> validatePropValueBeforeCreate(IPropertyInputCommon property, String value, boolean isValidate, String innerType, Map<String, DataTypeDefinition> allDataTypes) {
String propertyType = property.getType();
ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
@@ -603,7 +603,7 @@ public abstract class BaseBusinessLogic {
}
ImmutablePair<String, Boolean> pair = validateAndUpdateRules(propertyType, property.getRules(), innerType, allDataTypes, isValidate);
- log.debug("After validateAndUpdateRules. pair = {}", pair);
+ log.trace("After validateAndUpdateRules. pair = {}", pair);
if (pair.getRight() != null && pair.getRight() == false) {
BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), property.getName(), propertyType);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.ILLEGAL_ARGUMENT));
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CassandraHealthCheck.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CassandraHealthCheck.java
new file mode 100644
index 0000000000..237ec6d5fe
--- /dev/null
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CassandraHealthCheck.java
@@ -0,0 +1,189 @@
+package org.openecomp.sdc.be.components.impl;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.annotation.PostConstruct;
+
+import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.dao.cassandra.schema.SdcSchemaUtils;
+import org.openecomp.sdc.be.dao.cassandra.schema.Table;
+import org.openecomp.sdc.common.util.GeneralUtility;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.KeyspaceMetadata;
+import com.datastax.driver.core.Metadata;
+import com.datastax.driver.core.Session;
+
+@Component("cassandra-health-check")
+public class CassandraHealthCheck {
+
+
+ private static Logger log = LoggerFactory.getLogger(CassandraHealthCheck.class.getName());
+
+ private String localDataCenterName = null;
+
+ private Set<String> sdcKeyspaces = new HashSet<String>();
+
+ private int HC_FormulaNumber;
+
+ @PostConstruct
+ private void init() {
+
+ //Initialize local data center name - this field must be filled by DevOps
+ localDataCenterName = ConfigurationManager.getConfigurationManager().getConfiguration().getCassandraConfig().getLocalDataCenter();
+
+ if (GeneralUtility.isEmptyString(localDataCenterName)) {
+ log.error("localDataCenter Name in configuration.yaml is missing.");
+ return;
+ }
+
+ //Collect all SDC keyspaces
+ for (Table table : Table.values()) {
+ sdcKeyspaces.add(table.getTableDescription().getKeyspace());
+ }
+
+ String titanCfgFile = ConfigurationManager.getConfigurationManager().getConfiguration().getTitanCfgFile();
+ Properties prop = new Properties();
+ InputStream titanProp = null;
+ try {
+ //load a properties file
+ titanProp = new FileInputStream(titanCfgFile);
+ prop.load(titanProp);
+ //Add titan keyspace
+ String titanKeyspace = prop.getProperty("storage.cassandra.keyspace");
+ if (!GeneralUtility.isEmptyString(titanKeyspace)) {
+ sdcKeyspaces.add(titanKeyspace);
+ }
+ } catch (Exception e) {
+ log.error("Failed to open titen.properties file , url is : {}", titanCfgFile);
+ }
+
+ log.info("All sdc keyspaces are : {}", sdcKeyspaces);
+
+ //Calculate the Formula of Health Check
+ Cluster cluster = null;
+ try {
+
+ log.info("creating cluster for Cassandra Health Check.");
+ //Create cluster from nodes in cassandra configuration
+ cluster = SdcSchemaUtils.createCluster();
+ if (cluster == null) {
+ log.error("Failure create cassandra cluster.");
+ return;
+ }
+
+ Metadata metadata = cluster.getMetadata();
+
+ if (metadata == null) {
+ log.error("Failure get cassandra metadata.");
+ return;
+ }
+
+ log.info("Cluster Metadata: {}", metadata.toString());
+ List<KeyspaceMetadata> keyspaces = metadata.getKeyspaces();
+ List<Integer> replactionFactorList = new ArrayList<Integer>();
+
+ //Collect the keyspaces Replication Factor of current localDataCenter
+ for (KeyspaceMetadata keyspace : keyspaces) {
+
+ if (sdcKeyspaces.contains(keyspace.getName())) {
+
+ log.info("keyspace : {} , replication: {}", keyspace.getName(), keyspace.getReplication());
+ Map<String, String> replicationOptions = keyspace.getReplication();
+
+ //In 1 site with one data center
+ if (replicationOptions.containsKey("replication_factor")) {
+ replactionFactorList.add(Integer.parseInt(replicationOptions.get("replication_factor")));
+ }
+ //In multiple sites with some data center
+ else if (replicationOptions.containsKey(localDataCenterName)) {
+ replactionFactorList.add(Integer.parseInt(replicationOptions.get(localDataCenterName)));
+ }
+ }
+ }
+
+ if (replactionFactorList.size() == 0) {
+ log.error("Replication factor NOT found in all keyspaces");
+ return;
+ }
+
+ int maxReplicationFactor = Collections.max(replactionFactorList);
+ log.info("maxReplication Factor is: {}", maxReplicationFactor);
+
+ int localQuorum = maxReplicationFactor/2 + 1;
+ log.info("localQuorum is: {}", localQuorum);
+
+ HC_FormulaNumber = maxReplicationFactor - localQuorum;
+
+ log.info("Health Check formula : Replication Factor – Local_Quorum = {}", HC_FormulaNumber);
+
+
+ } catch (Exception e) {
+ log.error("create cassandra cluster failed with exception.", e);
+ } finally {
+ if (cluster != null) {
+ cluster.close();
+ }
+ }
+
+ }
+
+ public boolean getCassandraStatus() {
+
+ if (GeneralUtility.isEmptyString(localDataCenterName)) {
+ log.error("localDataCenter Name in configuration.yaml is missing.");
+ return false;
+ }
+
+ Cluster cluster = null;
+ Session session = null;
+ try {
+ log.info("creating cluster for Cassandra for monitoring.");
+ cluster = SdcSchemaUtils.createCluster();
+ if (cluster == null) {
+ log.error("Failure create cassandra cluster.");
+ return false;
+ }
+ session = cluster.connect();
+ Metadata metadata = cluster.getMetadata();
+
+ if (metadata == null) {
+ log.error("Failure get cassandra metadata.");
+ return false;
+ }
+
+ log.info("The number of cassandra nodes is:{}", metadata.getAllHosts().size());
+
+ //Count the number of data center nodes that are down
+ Long downHostsNumber = metadata.getAllHosts().stream()
+ .filter(x -> x.getDatacenter().equals(localDataCenterName) && !x.isUp()).count();
+
+ log.info("The cassandra down nodes number is {}", downHostsNumber.toString());
+ return (HC_FormulaNumber >= downHostsNumber);
+
+ } catch (Exception e) {
+ log.error("create cassandra cluster failed with exception.", e);
+ return false;
+ } finally {
+ if (session != null) {
+ session.close();
+ }
+ if (cluster != null) {
+ cluster.close();
+ }
+ }
+ }
+}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java
index 5ee5c88f69..21f7b3ab7c 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java
@@ -69,7 +69,6 @@ import org.openecomp.sdc.be.user.Role;
import org.openecomp.sdc.be.utils.CommonBeUtils;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
-import org.openecomp.sdc.common.config.EcompErrorName;
import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.util.ValidationUtils;
import org.openecomp.sdc.exception.ResponseFormat;
@@ -183,11 +182,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
return Either.right(errorResponse);
}
- description = ValidationUtils.removeNoneUtf8Chars(description);
- description = ValidationUtils.normaliseWhitespace(description);
- description = ValidationUtils.stripOctets(description);
- description = ValidationUtils.removeHtmlTagsOnly(description);
-
+ description = cleanUpText(description);
Either<Boolean, ResponseFormat> validatDescription = validateComponentDescription(description, type);
if (validatDescription.isRight()) {
ResponseFormat responseFormat = validatDescription.right().value();
@@ -666,19 +661,25 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
}
toscaArtifact = generateToscaRes.left().value().left().value();
component.getToscaArtifacts().put(toscaArtifact.getArtifactLabel(), toscaArtifact);
- toscaArtifact = component.getToscaArtifacts().values().stream()
- .filter(p -> p.getArtifactType().equals(ArtifactTypeEnum.TOSCA_CSAR.getType()))
- .findAny().get();
- generateToscaRes = saveToscaArtifactPayload(toscaArtifact, component, user, isInCertificationRequest, shouldLock, inTransaction, true);
- }
- if (generateToscaRes.isRight()) {
- return generateToscaRes;
+ if(!isAbstractResource(component)){
+ toscaArtifact = component.getToscaArtifacts().values().stream()
+ .filter(p -> p.getArtifactType().equals(ArtifactTypeEnum.TOSCA_CSAR.getType()))
+ .findAny().get();
+ generateToscaRes = saveToscaArtifactPayload(toscaArtifact, component, user, isInCertificationRequest, shouldLock, inTransaction, true);
+ if (generateToscaRes.isRight()) {
+ return generateToscaRes;
+ }
+ toscaArtifact = generateToscaRes.left().value().left().value();
+ component.getToscaArtifacts().put(toscaArtifact.getArtifactLabel(), toscaArtifact);
+ }
}
- ArtifactDefinition toscaArtifact = generateToscaRes.left().value().left().value();
- component.getToscaArtifacts().put(toscaArtifact.getArtifactLabel(), toscaArtifact);
return generateToscaRes;
}
+ private boolean isAbstractResource(Component component) {
+ return component.getComponentType() == ComponentTypeEnum.RESOURCE && ((Resource)component).isAbstract();
+ }
+
public Either<Either<ArtifactDefinition, Operation>, ResponseFormat> saveToscaArtifactPayload(ArtifactDefinition artifactDefinition, org.openecomp.sdc.be.model.Component component, User user, boolean isInCertificationRequest, boolean shouldLock,
boolean inTransaction, boolean fetchTemplatesFromDB) {
return artifactsBusinessLogic.generateAndSaveToscaArtifact(artifactDefinition, component, user, isInCertificationRequest, shouldLock, inTransaction, fetchTemplatesFromDB);
@@ -735,11 +736,11 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
}
}
- public Either<Boolean, ResponseFormat> validateAndUpdateDescription(User user, Component currentComponent, Component updatedComponent, AuditingActionEnum audatingAction) {
+ public Either<Boolean, ResponseFormat> validateAndUpdateDescription(User user, Component currentComponent, Component updatedComponent, AuditingActionEnum auditingAction) {
String descriptionUpdated = updatedComponent.getDescription();
String descriptionCurrent = currentComponent.getDescription();
if (descriptionUpdated != null && !descriptionCurrent.equals(descriptionUpdated)) {
- Either<Boolean, ResponseFormat> validateDescriptionResponse = validateDescriptionAndCleanup(user, updatedComponent, audatingAction);
+ Either<Boolean, ResponseFormat> validateDescriptionResponse = validateDescriptionAndCleanup(user, updatedComponent, auditingAction);
if (validateDescriptionResponse.isRight()) {
ResponseFormat errorRespons = validateDescriptionResponse.right().value();
return Either.right(errorRespons);
@@ -816,85 +817,6 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
return Either.left(deleteMarkedElements.left().value());
}
- private Either<String, ResponseFormat> deleteMarkedComponent(String componentToDelete, ComponentTypeEnum componentType) {
-
- Either<String, ResponseFormat> result = null;
- NodeTypeEnum compNodeType = componentType.getNodeType();
- StorageOperationStatus lockResult = graphLockOperation.lockComponent(componentToDelete, compNodeType);
- if (!lockResult.equals(StorageOperationStatus.OK)) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedLockObjectError, "Delete marked component");
- log.debug("Failed to lock component {} error - {}", componentToDelete, lockResult);
- result = Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
- return result;
- }
- try {
-
- // check if resource has relations
- Either<Boolean, StorageOperationStatus> isResourceInUse = toscaOperationFacade.isComponentInUse(componentToDelete);
- if (isResourceInUse.isRight()) {
- log.info("deleteMarkedResource - failed to find relations to resource. id = {}, type = {}, error = {}", componentToDelete, componentType, isResourceInUse.right().value().name());
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR);
- result = Either.right(responseFormat);
- return result;
- }
-
- if (isResourceInUse.isLeft() && isResourceInUse.left().value() == false) {
-
- // delete resource and its artifacts in one transaction
- Either<List<ArtifactDefinition>, StorageOperationStatus> artifactsRes = getComponentArtifactsForDelete(componentToDelete, compNodeType, true);
- if (artifactsRes.isRight() && !artifactsRes.right().value().equals(StorageOperationStatus.NOT_FOUND)) {
- log.info("failed to check artifacts for component node. id = {}, type = {}, error = {}", componentToDelete, componentType, artifactsRes.right().value().name());
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR);
- result = Either.right(responseFormat);
- return result;
- }
- List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
- if (artifactsRes.isLeft()) {
- artifactsToDelete = artifactsRes.left().value();
- }
-
- Either<Component, StorageOperationStatus> deleteComponentRes = toscaOperationFacade.deleteToscaComponent(componentToDelete);
- if (deleteComponentRes.isRight()) {
- log.info("failed to delete component. id = {}, type = {}, error = {}", componentToDelete, componentType, deleteComponentRes.right().value().name());
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteComponentRes.right().value());
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(actionStatus, componentToDelete);
- result = Either.right(responseFormat);
- } else {
- log.trace("component was deleted, id = {}, type = {}", componentToDelete, componentType);
- // delete related artifacts
- StorageOperationStatus deleteFromEsRes = artifactsBusinessLogic.deleteAllComponentArtifactsIfNotOnGraph(artifactsToDelete);
- if (!deleteFromEsRes.equals(StorageOperationStatus.OK)) {
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteFromEsRes);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(actionStatus, componentToDelete);
- result = Either.right(responseFormat);
- return result;
- }
- log.debug("component and all its artifacts were deleted, id = {}, type = {}", componentToDelete, componentType);
- result = Either.left(componentToDelete);
- }
- } else {
- // resource in use
- log.debug("componentis marked for delete but still in use, id = {}, type = {}", componentToDelete, componentType);
- ActionStatus actionStatus = ActionStatus.RESTRICTED_OPERATION;
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(actionStatus, componentToDelete);
- result = Either.right(responseFormat);
- return result;
- }
- } finally {
- if (result == null || result.isRight()) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeSystemError, "delete marked component");
- log.debug("operation failed. do rollback");
- titanDao.rollback();
- } else {
- log.debug("operation success. do commit");
- titanDao.commit();
- }
- graphLockOperation.unlockComponent(componentToDelete, compNodeType);
- }
-
- return result;
- }
-
public Either<List<ArtifactDefinition>, StorageOperationStatus> getComponentArtifactsForDelete(String parentId, NodeTypeEnum parentType, boolean inTransacton) {
List<ArtifactDefinition> artifacts = new ArrayList<ArtifactDefinition>();
Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifactsResponse = artifactToscaOperation.getArtifacts(parentId);
@@ -977,8 +899,12 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
}
protected <T extends Component> Either<Resource, ResponseFormat> fetchAndSetDerivedFromGenericType(T component){
-
- String genericTypeToscaName = component.fetchGenericTypeToscaNameFromConfig();
+ String genericTypeToscaName = null;
+ if(component.getComponentType() == ComponentTypeEnum.RESOURCE && ((Resource)component).getResourceType() == ResourceTypeEnum.CVFC && CollectionUtils.isNotEmpty(((Resource)component).getDerivedFrom())){
+ genericTypeToscaName = ((Resource)component).getDerivedFrom().get(0);
+ } else {
+ genericTypeToscaName = component.fetchGenericTypeToscaNameFromConfig();
+ }
if(null == genericTypeToscaName)
return Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
Either<Resource, StorageOperationStatus> findLatestGeneric = toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(genericTypeToscaName);
@@ -1237,6 +1163,14 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
}
return isMatchingType;
}
+
+ protected String cleanUpText(String text){
+ text = ValidationUtils.removeNoneUtf8Chars(text);
+ text = ValidationUtils.normaliseWhitespace(text);
+ text = ValidationUtils.stripOctets(text);
+ text = ValidationUtils.removeHtmlTagsOnly(text);
+ return text;
+ }
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java
index 643b35d17b..56cd91d754 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogic.java
@@ -58,10 +58,12 @@ import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupInstance;
+import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.PropertyDefinition.PropertyNames;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
+import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.IComponentInstanceOperation;
@@ -72,6 +74,7 @@ import org.openecomp.sdc.be.model.operations.utils.ComponentValidationUtils;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
import org.openecomp.sdc.be.resources.data.PropertyValueData;
+import org.openecomp.sdc.be.tosca.ToscaUtils;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
import org.openecomp.sdc.common.api.Constants;
@@ -142,9 +145,9 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
containerComponent = validateComponentExists.left().value();
}
- Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances = validateAllowedToContainCompInstances(containerComponent);
- if (validateAllowedToContainCompInstances.isRight()) {
- return Either.right(validateAllowedToContainCompInstances.right().value());
+ if (ToscaUtils.isAtomicType(containerComponent)) {
+ log.debug("Cannot attach resource instances to container resource of type {}", containerComponent.assetType());
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES, containerComponent.assetType()));
}
Either<Boolean, ResponseFormat> validateCanWorkOnComponent = validateCanWorkOnComponent(containerComponent, userId);
@@ -201,9 +204,9 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
}
org.openecomp.sdc.be.model.Component containerComponent = validateComponentExists.left().value();
- Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances = validateAllowedToContainCompInstances(containerComponent);
- if (validateAllowedToContainCompInstances.isRight()) {
- return Either.right(validateAllowedToContainCompInstances.right().value());
+ if (ToscaUtils.isAtomicType(containerComponent)) {
+ log.debug("Cannot attach resource instances to container resource of type {}", containerComponent.assetType());
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES, containerComponent.assetType()));
}
Either<Boolean, ResponseFormat> validateCanWorkOnComponent = validateCanWorkOnComponent(containerComponent, userId);
@@ -383,14 +386,14 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
StorageOperationStatus artStatus = toscaOperationFacade.addDeploymentArtifactsToInstance(containerComponent.getUniqueId(), componentInstance, finalDeploymentArtifacts);
if ( artStatus != StorageOperationStatus.OK){
log.debug("Failed to add instance deployment artifacts for instance {} in conatiner {} error {}", componentInstance.getUniqueId(), containerComponent.getUniqueId(), artStatus);
- return Either.left(componentsUtils.convertFromStorageResponseForResourceInstance(artStatus, false));
+ return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponseForResourceInstance(artStatus, false)));
}
StorageOperationStatus result = toscaOperationFacade
.addGroupInstancesToComponentInstance(containerComponent, componentInstance, filteredGroups, groupInstancesArtifacts);
if (result != StorageOperationStatus.OK) {
log.debug("failed to update group instance for component instance {}", componentInstance.getUniqueId());
- return Either.left(componentsUtils.convertFromStorageResponse(result));
+ return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(result)));
}
componentInstance.setDeploymentArtifacts(finalDeploymentArtifacts);
return Either.left(ActionStatus.OK);
@@ -620,6 +623,7 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
Optional<ComponentInstance> componentInstanceOptional = null;
Either<ImmutablePair<Component, String>, StorageOperationStatus> updateRes = null;
ComponentInstance oldComponentInstance = null;
+ boolean isNameChanged = false;
if (resultOp == null) {
componentInstanceOptional = containerComponent.getComponentInstances().stream().filter(ci -> ci.getUniqueId().equals(componentInstance.getUniqueId())).findFirst();
@@ -631,6 +635,9 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
if (resultOp == null) {
oldComponentInstance = componentInstanceOptional.get();
String newInstanceName = componentInstance.getName();
+ if ( oldComponentInstance!=null && oldComponentInstance.getName() != null
+ && !oldComponentInstance.getName().equals( newInstanceName ) )
+ isNameChanged = true;
Boolean isUniqueName = validateInstanceNameUniquenessUponUpdate(containerComponent, oldComponentInstance, newInstanceName);
if (!isUniqueName) {
CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the name of the component instance {} to {}. A component instance with the same name already exists. ", oldComponentInstance.getName(), newInstanceName);
@@ -643,6 +650,14 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update metadata of component instance {} belonging to container component {}. Status is {}. ", componentInstance.getName(), containerComponent.getName(),
updateRes.right().value());
resultOp = Either.right(componentsUtils.getResponseFormatForResourceInstance(componentsUtils.convertFromStorageResponseForResourceInstance(updateRes.right().value(), true), "", null));
+ }else{
+ //region - Update instance Groups
+ if ( isNameChanged ){
+ Either result = toscaOperationFacade.cleanAndAddGroupInstancesToComponentInstance( containerComponent ,oldComponentInstance ,componentInstanceId );
+ if ( result.isRight() )
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to rename group instances for container {}. error {} ", componentInstanceId ,result.right().value() );
+ }
+ //endregion
}
}
if (resultOp == null) {
@@ -662,11 +677,29 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
}
return resultOp;
}
+ /**
+ * @param oldPrefix- The normalized old vf name
+ * @param newNormailzedPrefix- The normalized new vf name
+ * @param qualifiedGroupInstanceName- old Group Instance Name
+ **/
+ //modify group names
+ private String getNewGroupName( String oldPrefix ,String newNormailzedPrefix , String qualifiedGroupInstanceName){
+ if (qualifiedGroupInstanceName == null){
+ log.info("CANNOT change group name ");
+ return null;
+ }
+ if (qualifiedGroupInstanceName.startsWith(oldPrefix) || qualifiedGroupInstanceName.startsWith(ValidationUtils.normalizeComponentInstanceName(oldPrefix)))
+ return qualifiedGroupInstanceName.replaceFirst(oldPrefix, newNormailzedPrefix);
+ return qualifiedGroupInstanceName;
+ }
private ComponentInstance updateComponentInstanceMetadata(ComponentInstance oldComponentInstance, ComponentInstance newComponentInstance) {
oldComponentInstance.setName(newComponentInstance.getName());
oldComponentInstance.setModificationTime(System.currentTimeMillis());
oldComponentInstance.setCustomizationUUID(UUID.randomUUID().toString());
+ if ( oldComponentInstance.getGroupInstances() != null )
+ oldComponentInstance.getGroupInstances().forEach( group ->
+ group.setName( getNewGroupName( oldComponentInstance.getNormalizedName() , ValidationUtils.normalizeComponentInstanceName( newComponentInstance.getName() ) , group.getName() ) ) );
return oldComponentInstance;
}
@@ -748,6 +781,17 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
resultOp = Either.right(componentsUtils.getResponseFormat(status, componentInstanceId));
}
}
+ if(resultOp.isLeft() && CollectionUtils.isNotEmpty(containerComponent.getInputs())){
+ List<InputDefinition> inputsToDelete = containerComponent.getInputs().stream().filter(i -> i.getInstanceUniqueId() != null && i.getInstanceUniqueId().equals(componentInstanceId)).collect(Collectors.toList());
+ if(CollectionUtils.isNotEmpty(inputsToDelete)){
+ StorageOperationStatus deleteInputsRes =
+ toscaOperationFacade.deleteComponentInstanceInputsFromTopologyTemplate(containerComponent, containerComponent.getComponentType(), inputsToDelete);
+ if(deleteInputsRes != StorageOperationStatus.OK){
+ log.debug("Failed to delete inputs of the component instance {} from container component. ", componentInstanceId);
+ resultOp = Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(deleteInputsRes, containerComponentType), componentInstanceId));
+ }
+ }
+ }
return resultOp;
}
@@ -1696,8 +1740,6 @@ public abstract class ComponentInstanceBusinessLogic extends BaseBusinessLogic {
}
}
- protected abstract Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances(org.openecomp.sdc.be.model.Component containerComponent);
-
protected abstract NodeTypeEnum getNodeTypeOfComponentInstanceOrigin();
protected abstract ComponentTypeEnum getComponentTypeOfComponentInstance();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogic.java
index 669b84f229..7214d011e0 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogic.java
@@ -20,19 +20,10 @@
package org.openecomp.sdc.be.components.impl;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
+import com.thinkaurelius.titan.core.TitanGraph;
+import fj.data.Either;
import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
@@ -47,24 +38,10 @@ import org.openecomp.sdc.be.datamodel.api.CategoryTypeEnum;
import org.openecomp.sdc.be.datamodel.utils.NodeTypeConvertUtils;
import org.openecomp.sdc.be.datatypes.components.ComponentMetadataDataDefinition;
import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.FilterKeyEnum;
+import org.openecomp.sdc.be.datatypes.enums.*;
import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.ArtifactType;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.DistributionStatusEnum;
-import org.openecomp.sdc.be.model.LifecycleStateEnum;
-import org.openecomp.sdc.be.model.Product;
-import org.openecomp.sdc.be.model.PropertyScope;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.ResourceMetadataDefinition;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.Tag;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
import org.openecomp.sdc.be.model.category.GroupingDefinition;
import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
@@ -87,9 +64,10 @@ import org.openecomp.sdc.exception.ResponseFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.thinkaurelius.titan.core.TitanGraph;
-
-import fj.data.Either;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
@org.springframework.stereotype.Component("elementsBusinessLogic")
public class ElementBusinessLogic extends BaseBusinessLogic {
@@ -1003,16 +981,16 @@ public class ElementBusinessLogic extends BaseBusinessLogic {
return elementOperation.getDefaultHeatTimeout();
}
- public Either<Map<String, List<? extends Component>>, ResponseFormat> getCatalogComponents(String userId) {
+ public Either<Map<String, List<? extends Component>>, ResponseFormat> getCatalogComponents(String userId, List<OriginTypeEnum> excludeTypes) {
Either<User, ResponseFormat> resp = validateUserExists(userId, "get Catalog Components", false);
if (resp.isRight()) {
return Either.right(resp.right().value());
}
Map<String, List<? extends Component>> resMap = new HashMap<>();
- Either<List<Resource>, StorageOperationStatus> resResources = toscaOperationFacade.getCatalogComponents(ComponentTypeEnum.RESOURCE, true);
+ Either<List<Resource>, StorageOperationStatus> resResources = toscaOperationFacade.getCatalogComponents(ComponentTypeEnum.RESOURCE,excludeTypes, true);
if (resResources.isLeft()) {
- Either<List<Service>, StorageOperationStatus> resServices = toscaOperationFacade.getCatalogComponents(ComponentTypeEnum.SERVICE, true);
+ Either<List<Service>, StorageOperationStatus> resServices = toscaOperationFacade.getCatalogComponents(ComponentTypeEnum.SERVICE,excludeTypes, true);
if (resServices.isLeft()) {
// Either<List<Product>, StorageOperationStatus> resProducts = productOperation.getProductCatalogData(false);
// if (resProducts.isLeft()) {
@@ -1041,7 +1019,7 @@ public class ElementBusinessLogic extends BaseBusinessLogic {
}
if (filters == null || filters.isEmpty()) {
- Either<List<Component>, StorageOperationStatus> componentsList = toscaOperationFacade.getCatalogComponents(assetTypeEnum, false);
+ Either<List<Component>, StorageOperationStatus> componentsList = toscaOperationFacade.getCatalogComponents(assetTypeEnum,null, false);
if(componentsList.isRight()) {
return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(componentsList.right().value())));
}
@@ -1134,15 +1112,15 @@ public class ElementBusinessLogic extends BaseBusinessLogic {
log.debug("getCatalogComponentsByUuidAndAssetType: Corresponding ComponentTypeEnum not allowed for this API");
return Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT));
}
-
+
Either<List<Component>, StorageOperationStatus> componentsListByUuid = toscaOperationFacade.getComponentListByUuid(uuid, additionalPropertiesToMatch);
if(componentsListByUuid.isRight()) {
- log.debug("getCatalogComponentsByUuidAndAssetType: Service fetching failed");
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(componentsListByUuid.right().value(), ComponentTypeEnum.SERVICE);
+ log.debug("getCatalogComponentsByUuidAndAssetType: " + assetTypeEnum.getValue()+ " fetching failed");
+ ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(componentsListByUuid.right().value(), assetTypeEnum);
return Either.right(componentsUtils.getResponseFormat(actionStatus, uuid));
}
-
- log.debug("getCatalogComponentsByUuidAndAssetType: " + assetTypeEnum.getValue() + "Service fetching successful");
+
+ log.debug("getCatalogComponentsByUuidAndAssetType: " + assetTypeEnum.getValue() + assetTypeEnum.getValue() + "fetching successful");
return Either.left(componentsListByUuid.left().value());
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java
index f298b0f203..a3d590374f 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java
@@ -359,7 +359,7 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
* @param inTransaction
* @return
*/
- public Either<GroupDefinition, ResponseFormat> validateAndUpdateGroupMetadata(String componentId, User user, ComponentTypeEnum componentType, GroupDefinition updatedGroup, boolean inTransaction) {
+ public Either<GroupDefinition, ResponseFormat> validateAndUpdateGroupMetadata(String componentId, User user, ComponentTypeEnum componentType, GroupDefinition updatedGroup, boolean inTransaction , boolean shouldLock) {
Either<GroupDefinition, ResponseFormat> result = null;
try {
@@ -396,10 +396,12 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
return result;
}
GroupDefinition currentGroup = currentGroupOpt.get();
- Either<Boolean, ResponseFormat> lockResult = lockComponent(componentId, component, "Update GroupDefinition Metadata");
- if (lockResult.isRight()) {
- result = Either.right(lockResult.right().value());
- return result;
+ if ( shouldLock ){
+ Either<Boolean, ResponseFormat> lockResult = lockComponent(componentId, component, "Update GroupDefinition Metadata");
+ if (lockResult.isRight()) {
+ result = Either.right(lockResult.right().value());
+ return result;
+ }
}
// Validate group type is vfModule
if (!currentGroup.getType().equals(Constants.DEFAULT_GROUP_VF_MODULE)) {
@@ -417,7 +419,8 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
} else {
titanDao.rollback();
}
- graphLockOperation.unlockComponent(componentId, componentType.getNodeType());
+ if( shouldLock )
+ graphLockOperation.unlockComponent(componentId, componentType.getNodeType());
}
}
@@ -734,7 +737,7 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
String nameUpdated = groupUpdate.getName();
String nameCurrent = currentGroup.getName();
if (!nameCurrent.equals(nameUpdated)) {
- Either<Boolean, ResponseFormat> validatNameResponse = validateGroupName(currentGroup.getName(), groupUpdate.getName());
+ Either<Boolean, ResponseFormat> validatNameResponse = validateGroupName(currentGroup.getName(), groupUpdate.getName() ,true);
if (validatNameResponse.isRight()) {
ResponseFormat errorRespons = validatNameResponse.right().value();
return Either.right(errorRespons);
@@ -752,7 +755,7 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
* @param groupUpdateName
* @return
*/
- private Either<Boolean, ResponseFormat> validateGroupName(String currentGroupName, String groupUpdateName) {
+ private Either<Boolean, ResponseFormat> validateGroupName(String currentGroupName, String groupUpdateName , boolean isforceNameModification) {
try {
// Check if the group name is in old format.
if (Pattern.compile(Constants.MODULE_OLD_NAME_PATTERN).matcher(groupUpdateName).matches()) {
@@ -771,14 +774,16 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
String[] split2 = groupUpdateName.split("\\.\\.");
String groupUpdateResourceName = split2[0];
String groupUpdateCounter = split2[2];
+ if (!isforceNameModification){ //if not forced ,allow name prefix&suffix validation [no changes]
+ if (!currentResourceName.equals(groupUpdateResourceName)) {
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_VF_MODULE_NAME_MODIFICATION, currentResourceName));
+ }
- if (!currentResourceName.equals(groupUpdateResourceName)) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_VF_MODULE_NAME_MODIFICATION, currentResourceName));
+ if (!currentCounter.equals(groupUpdateCounter)) {
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_VF_MODULE_NAME_MODIFICATION, currentCounter));
+ }
}
- if (!currentCounter.equals(groupUpdateCounter)) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_VF_MODULE_NAME_MODIFICATION, currentCounter));
- }
}
return Either.left(true);
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/HealthCheckBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/HealthCheckBusinessLogic.java
index e535214d70..8a8937740f 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/HealthCheckBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/HealthCheckBusinessLogic.java
@@ -20,7 +20,10 @@
package org.openecomp.sdc.be.components.impl;
+import java.io.IOException;
+import java.lang.reflect.Type;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -34,16 +37,23 @@ import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
-import javax.servlet.ServletContext;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
import org.openecomp.sdc.be.components.distribution.engine.DistributionEngineClusterHealth;
import org.openecomp.sdc.be.components.distribution.engine.UebHealthCheckCall;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
+import org.openecomp.sdc.be.config.Configuration;
+import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.IEsHealthCheckDao;
import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
-import org.openecomp.sdc.be.impl.WebAppContextWrapper;
import org.openecomp.sdc.be.switchover.detector.SwitchoverDetector;
-import org.openecomp.sdc.common.api.Constants;
import org.openecomp.sdc.common.api.HealthCheckInfo;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckComponent;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus;
@@ -52,7 +62,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import org.springframework.web.context.WebApplicationContext;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
@Component("healthCheckBusinessLogic")
public class HealthCheckBusinessLogic {
@@ -62,6 +74,7 @@ public class HealthCheckBusinessLogic {
private static Logger healthLogger = LoggerFactory.getLogger(BE_HEALTH_LOG_CONTEXT);
private static final String BE_HEALTH_CHECK_STR = "beHealthCheck";
+ private static final String COMPONENT_CHANGED_MESSAGE = "BE Component %s state changed from %s to %s";
@Resource
private TitanGenericDao titanGenericDao;
@@ -72,15 +85,16 @@ public class HealthCheckBusinessLogic {
@Resource
private DistributionEngineClusterHealth distributionEngineClusterHealth;
+ @Resource
+ private CassandraHealthCheck cassandraHealthCheck;
+
@Autowired
private SwitchoverDetector switchoverDetector;
private static Logger log = LoggerFactory.getLogger(HealthCheckBusinessLogic.class.getName());
- private volatile List<HealthCheckInfo> lastBeHealthCheckInfos = null;
+ private volatile List<HealthCheckInfo> prevBeHealthCheckInfos = null;
- // private static volatile HealthCheckBusinessLogic instance;
- //
public HealthCheckBusinessLogic() {
}
@@ -99,9 +113,9 @@ public class HealthCheckBusinessLogic {
@PostConstruct
public void init() {
- lastBeHealthCheckInfos = getBeHealthCheckInfos();
+ prevBeHealthCheckInfos = getBeHealthCheckInfos();
- log.debug("After initializing lastBeHealthCheckInfos: {}", lastBeHealthCheckInfos);
+ log.debug("After initializing prevBeHealthCheckInfos: {}", prevBeHealthCheckInfos);
healthCheckScheduledTask = new HealthCheckScheduledTask();
@@ -111,115 +125,9 @@ public class HealthCheckBusinessLogic {
}
- //
- // public static HealthCheckBusinessLogic getInstance(){
- //// if (instance == null){
- //// instance = init();
- //// }
- // return instance;
- // }
-
- // private synchronized static HealthCheckBusinessLogic init() {
- // if (instance == null){
- // instance = new HealthCheckBusinessLogic();
- // }
- // return instance;
- // }
-
- private List<HealthCheckInfo> getBeHealthCheckInfos(ServletContext servletContext) {
-
- List<HealthCheckInfo> healthCheckInfos = new ArrayList<HealthCheckInfo>();
-
- // BE
- getBeHealthCheck(servletContext, healthCheckInfos);
-
- // ES
- getEsHealthCheck(servletContext, healthCheckInfos);
-
- // Titan
- getTitanHealthCheck(servletContext, healthCheckInfos);
-
- // Distribution Engine
- getDistributionEngineCheck(servletContext, healthCheckInfos);
-
- return healthCheckInfos;
- }
-
- private List<HealthCheckInfo> getBeHealthCheck(ServletContext servletContext, List<HealthCheckInfo> healthCheckInfos) {
- String appVersion = ExternalConfiguration.getAppVersion();
- String description = "OK";
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.BE, HealthCheckStatus.UP, appVersion, description));
- return healthCheckInfos;
- }
-
- public List<HealthCheckInfo> getTitanHealthCheck(ServletContext servletContext, List<HealthCheckInfo> healthCheckInfos) {
- // Titan health check and version
- TitanGenericDao titanStatusDao = (TitanGenericDao) getDao(servletContext, TitanGenericDao.class);
- String description;
- boolean isTitanUp;
-
- try {
- isTitanUp = titanStatusDao.isGraphOpen();
- } catch (Exception e) {
- description = "Titan error: " + e.getMessage();
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.DOWN, null, description));
- return healthCheckInfos;
- }
- if (isTitanUp) {
- description = "OK";
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.UP, null, description));
- } else {
- description = "Titan graph is down";
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.DOWN, null, description));
- }
- return healthCheckInfos;
- }
-
- public List<HealthCheckInfo> getEsHealthCheck(ServletContext servletContext, List<HealthCheckInfo> healthCheckInfos) {
-
- // ES health check and version
- IEsHealthCheckDao esStatusDao = (IEsHealthCheckDao) getDao(servletContext, IEsHealthCheckDao.class);
- HealthCheckStatus healthCheckStatus;
- String description;
-
- try {
- healthCheckStatus = esStatusDao.getClusterHealthStatus();
- } catch (Exception e) {
- healthCheckStatus = HealthCheckStatus.DOWN;
- description = "ES cluster error: " + e.getMessage();
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ES, healthCheckStatus, null, description));
- return healthCheckInfos;
- }
- if (healthCheckStatus.equals(HealthCheckStatus.DOWN)) {
- description = "ES cluster is down";
- } else {
- description = "OK";
- }
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ES, healthCheckStatus, null, description));
- return healthCheckInfos;
- }
-
- public Object getDao(ServletContext servletContext, Class<?> clazz) {
- WebAppContextWrapper webApplicationContextWrapper = (WebAppContextWrapper) servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR);
-
- WebApplicationContext webApplicationContext = webApplicationContextWrapper.getWebAppContext(servletContext);
-
- return webApplicationContext.getBean(clazz);
- }
-
- private void getDistributionEngineCheck(ServletContext servletContext, List<HealthCheckInfo> healthCheckInfos) {
-
- DistributionEngineClusterHealth deDao = (DistributionEngineClusterHealth) getDao(servletContext, DistributionEngineClusterHealth.class);
- HealthCheckInfo healthCheckInfo = deDao.getHealthCheckInfo();
+ public boolean isDistributionEngineUp() {
- healthCheckInfos.add(healthCheckInfo);
-
- }
-
- public boolean isDistributionEngineUp(ServletContext servletContext) {
-
- DistributionEngineClusterHealth deDao = (DistributionEngineClusterHealth) getDao(servletContext, DistributionEngineClusterHealth.class);
- HealthCheckInfo healthCheckInfo = deDao.getHealthCheckInfo();
+ HealthCheckInfo healthCheckInfo = distributionEngineClusterHealth.getHealthCheckInfo();
if (healthCheckInfo.getHealthCheckStatus().equals(HealthCheckStatus.DOWN)) {
return false;
}
@@ -228,7 +136,7 @@ public class HealthCheckBusinessLogic {
public List<HealthCheckInfo> getBeHealthCheckInfosStatus() {
- return lastBeHealthCheckInfos;
+ return prevBeHealthCheckInfos;
}
@@ -241,8 +149,8 @@ public class HealthCheckBusinessLogic {
// BE
getBeHealthCheck(healthCheckInfos);
- // ES
- getEsHealthCheck(healthCheckInfos);
+ /*// ES
+ getEsHealthCheck(healthCheckInfos);*/
// Titan
getTitanHealthCheck(healthCheckInfos);
@@ -250,6 +158,12 @@ public class HealthCheckBusinessLogic {
// Distribution Engine
getDistributionEngineCheck(healthCheckInfos);
+ //Cassandra
+ getCassandraHealthCheck(healthCheckInfos);
+
+ // Amdocs
+ getAmdocsHealthCheck(healthCheckInfos);
+
return healthCheckInfos;
}
@@ -260,7 +174,8 @@ public class HealthCheckBusinessLogic {
return healthCheckInfos;
}
- public List<HealthCheckInfo> getEsHealthCheck(List<HealthCheckInfo> healthCheckInfos) {
+ //Removed from aggregate HC - TDP 293490
+/* private List<HealthCheckInfo> getEsHealthCheck(List<HealthCheckInfo> healthCheckInfos) {
// ES health check and version
HealthCheckStatus healthCheckStatus;
@@ -282,7 +197,7 @@ public class HealthCheckBusinessLogic {
healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ES, healthCheckStatus, null, description));
return healthCheckInfos;
}
-
+*/
public List<HealthCheckInfo> getTitanHealthCheck(List<HealthCheckInfo> healthCheckInfos) {
// Titan health check and version
String description;
@@ -305,6 +220,28 @@ public class HealthCheckBusinessLogic {
return healthCheckInfos;
}
+ private List<HealthCheckInfo> getCassandraHealthCheck(List<HealthCheckInfo> healthCheckInfos) {
+
+ String description;
+ boolean isCassandraUp;
+
+ try {
+ isCassandraUp = cassandraHealthCheck.getCassandraStatus();
+ } catch (Exception e) {
+ isCassandraUp = false;
+ description = "Cassandra error: " + e.getMessage();
+ }
+ if (isCassandraUp) {
+ description = "OK";
+ healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.CASSANDRA, HealthCheckStatus.UP, null, description));
+ } else {
+ description = "Cassandra is down";
+ healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.CASSANDRA, HealthCheckStatus.DOWN, null, description));
+ }
+ return healthCheckInfos;
+
+ }
+
private void getDistributionEngineCheck(List<HealthCheckInfo> healthCheckInfos) {
HealthCheckInfo healthCheckInfo = distributionEngineClusterHealth.getHealthCheckInfo();
@@ -313,6 +250,76 @@ public class HealthCheckBusinessLogic {
}
+ private List<HealthCheckInfo> getAmdocsHealthCheck(List<HealthCheckInfo> healthCheckInfos) {
+ HealthCheckStatus healthCheckStatus;
+ String description;
+ Map<String, Object> amdocsHC = null;
+ String version = null;
+ List<HealthCheckInfo> componentsInfo = null;
+ CloseableHttpClient httpClient = getHttpClient();
+ String amdocsHealtchCheckUrl = buildHealthCheckUrl();
+ HttpGet httpGet = new HttpGet(amdocsHealtchCheckUrl);
+ CloseableHttpResponse beResponse;
+ int beStatus;
+ try {
+ beResponse = httpClient.execute(httpGet);
+ beStatus = beResponse.getStatusLine().getStatusCode();
+
+ HttpEntity entity = beResponse.getEntity();
+ String beJsonResponse = EntityUtils.toString(entity);
+ Gson gson = new Gson();
+ amdocsHC = gson.fromJson(beJsonResponse, Map.class);
+ version = amdocsHC.get("sdcVersion") != null ? amdocsHC.get("sdcVersion").toString() : null;
+ Object object = amdocsHC.get("componentsInfo");
+ Type listType = new TypeToken<List<HealthCheckInfo>>(){}.getType();
+ componentsInfo = gson.fromJson(object.toString(), listType);
+
+ if (beStatus != HttpStatus.SC_OK) {
+ healthCheckStatus = HealthCheckStatus.DOWN;
+ StringBuilder sb = new StringBuilder();
+ componentsInfo.forEach(x -> {
+ if (x.getHealthCheckStatus()==HealthCheckStatus.DOWN){
+ sb.append("Component "+x.getHealthCheckComponent().name()+" is Down,");
+ }
+ });
+ //Removing the last comma
+ description = sb.length()>0
+ ? sb.substring(0, sb.length()-1)
+ : "Onboarding is Down, specific reason unknown";//No Amdocs inner component returned DOWN, but the status of Amdocs HC is still DOWN.
+ } else {
+ healthCheckStatus = HealthCheckStatus.UP;
+ description = "OK";
+
+
+ }
+
+ } catch (Exception e) {
+ healthCheckStatus = HealthCheckStatus.DOWN;
+ description = "Onboarding unexpected response: " + e.getMessage();
+ } finally {
+ if (httpClient != null) {
+ try {
+ httpClient.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ON_BOARDING, healthCheckStatus, version, description, componentsInfo));
+ return healthCheckInfos;
+ }
+
+ private CloseableHttpClient getHttpClient() {
+ int timeout = 3000;
+ RequestConfig.Builder requestBuilder = RequestConfig.custom();
+ requestBuilder.setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout);
+
+ HttpClientBuilder builder = HttpClientBuilder.create();
+ builder.setDefaultRequestConfig(requestBuilder.build());
+ return builder.build();
+ }
+
@PreDestroy
private void destroy() {
@@ -340,101 +347,127 @@ public class HealthCheckBusinessLogic {
healthLogger.trace("Executing BE Health Check Task");
- List<HealthCheckInfo> beHealthCheckInfos = getBeHealthCheckInfos();
- boolean healthStatus = getAggregateBeStatus(beHealthCheckInfos);
+ List<HealthCheckInfo> currentBeHealthCheckInfos = getBeHealthCheckInfos();
+ boolean healthStatus = getAggregateBeStatus(currentBeHealthCheckInfos);
+
+ boolean prevHealthStatus = getAggregateBeStatus(prevBeHealthCheckInfos);
- boolean lastHealthStatus = getAggregateBeStatus(lastBeHealthCheckInfos);
+ boolean anyStatusChanged = anyStatusChanged(currentBeHealthCheckInfos, prevBeHealthCheckInfos);
- if (lastHealthStatus != healthStatus) {
+ if (prevHealthStatus != healthStatus || anyStatusChanged) {
log.trace("BE Health State Changed to {}. Issuing alarm / recovery alarm...", healthStatus);
- lastBeHealthCheckInfos = beHealthCheckInfos;
+ prevBeHealthCheckInfos = currentBeHealthCheckInfos;
logAlarm(healthStatus);
+ }
- } else {
- // check if we need to update the status's list in case one of
- // the statuses was changed
- if (true == anyStatusChanged(beHealthCheckInfos, lastBeHealthCheckInfos)) {
- lastBeHealthCheckInfos = beHealthCheckInfos;
- }
+ }
- }
+ private boolean getAggregateBeStatus(List<HealthCheckInfo> beHealthCheckInfos) {
+
+ boolean status = true;
+ for (HealthCheckInfo healthCheckInfo : beHealthCheckInfos) {
+ if (healthCheckInfo.getHealthCheckStatus().equals(HealthCheckStatus.DOWN) && healthCheckInfo.getHealthCheckComponent() != HealthCheckComponent.DE) {
+ status = false;
+ break;
+ }
+ }
+ return status;
}
}
- private void logAlarm(boolean lastHealthState) {
- if (lastHealthState == true) {
+ private void logAlarm(boolean prevHealthState) {
+ if (prevHealthState) {
BeEcompErrorManager.getInstance().logBeHealthCheckRecovery(BE_HEALTH_CHECK_STR);
} else {
BeEcompErrorManager.getInstance().logBeHealthCheckError(BE_HEALTH_CHECK_STR);
}
}
- private boolean getAggregateBeStatus(List<HealthCheckInfo> beHealthCheckInfos) {
-
- boolean status = true;
-
- for (HealthCheckInfo healthCheckInfo : beHealthCheckInfos) {
- if (healthCheckInfo.getHealthCheckStatus().equals(HealthCheckStatus.DOWN) && healthCheckInfo.getHealthCheckComponent() != HealthCheckComponent.DE) {
- status = false;
- break;
- }
- }
- return status;
+ private void logAlarm(String componentChangedMsg) {
+ BeEcompErrorManager.getInstance().logBeHealthCheckRecovery(componentChangedMsg);
}
+
public String getSiteMode() {
return switchoverDetector.getSiteMode();
}
- public boolean anyStatusChanged(List<HealthCheckInfo> beHealthCheckInfos, List<HealthCheckInfo> lastBeHealthCheckInfos) {
+ public boolean anyStatusChanged(List<HealthCheckInfo> beHealthCheckInfos, List<HealthCheckInfo> prevBeHealthCheckInfos) {
boolean result = false;
- if (beHealthCheckInfos != null && lastBeHealthCheckInfos != null) {
+ if (beHealthCheckInfos != null && prevBeHealthCheckInfos != null) {
Map<HealthCheckComponent, HealthCheckStatus> currentValues = beHealthCheckInfos.stream().collect(Collectors.toMap(p -> p.getHealthCheckComponent(), p -> p.getHealthCheckStatus()));
- Map<HealthCheckComponent, HealthCheckStatus> lastValues = lastBeHealthCheckInfos.stream().collect(Collectors.toMap(p -> p.getHealthCheckComponent(), p -> p.getHealthCheckStatus()));
+ Map<HealthCheckComponent, HealthCheckStatus> prevValues = prevBeHealthCheckInfos.stream().collect(Collectors.toMap(p -> p.getHealthCheckComponent(), p -> p.getHealthCheckStatus()));
- if (currentValues != null && lastValues != null) {
+ if (currentValues != null && prevValues != null) {
int currentSize = currentValues.size();
- int lastSize = lastValues.size();
+ int prevSize = prevValues.size();
+
+ if (currentSize != prevSize) {
+
+ result = true; //extra/missing component
+
+ Map<HealthCheckComponent, HealthCheckStatus> notPresent = null;
+ if (currentValues.keySet().containsAll(prevValues.keySet())) {
+ notPresent = new HashMap<>(currentValues);
+ notPresent.keySet().removeAll(prevValues.keySet());
+ } else {
+ notPresent = new HashMap<>(prevValues);
+ notPresent.keySet().removeAll(currentValues.keySet());
+ }
+
+ for (HealthCheckComponent component : notPresent.keySet()) {
+ logAlarm(String.format(COMPONENT_CHANGED_MESSAGE, component, prevValues.get(component), currentValues.get(component)));
+ }
+ // HealthCheckComponent changedComponent = notPresent.keySet().iterator().next();
- if (currentSize != lastSize) {
- result = true;
} else {
for (Entry<HealthCheckComponent, HealthCheckStatus> entry : currentValues.entrySet()) {
HealthCheckComponent key = entry.getKey();
HealthCheckStatus value = entry.getValue();
- if (false == lastValues.containsKey(key)) {
- result = true;
+ if (!prevValues.containsKey(key)) {
+ result = true; //component missing
+ logAlarm(String.format(COMPONENT_CHANGED_MESSAGE, key, prevValues.get(key), currentValues.get(key)));
break;
}
- HealthCheckStatus lastHealthCheckStatus = lastValues.get(key);
+ HealthCheckStatus prevHealthCheckStatus = prevValues.get(key);
- if (value != lastHealthCheckStatus) {
- result = true;
+ if (value != prevHealthCheckStatus) {
+ result = true; //component status changed
+ logAlarm(String.format(COMPONENT_CHANGED_MESSAGE, key, prevValues.get(key), currentValues.get(key)));
break;
}
}
}
- } else if (currentValues == null && lastValues == null) {
- result = false;
- } else {
- result = true;
}
- } else if (beHealthCheckInfos == null && lastBeHealthCheckInfos == null) {
+ } else if (beHealthCheckInfos == null && prevBeHealthCheckInfos == null) {
result = false;
} else {
+ logAlarm(String.format(COMPONENT_CHANGED_MESSAGE, "", prevBeHealthCheckInfos == null ? "null" : "true", prevBeHealthCheckInfos == null ? "true" : "null"));
result = true;
}
return result;
}
+
+ private String buildHealthCheckUrl() {
+
+ Configuration.OnboardingConfig onboardingConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getOnboarding();
+
+ String protocol = onboardingConfig.getProtocol();
+ String host = onboardingConfig.getHost();
+ Integer port = onboardingConfig.getPort();
+ String uri = onboardingConfig.getHealthCheckUri();
+
+ return protocol + "://" + host + ":" + port + uri;
+ }
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java
index cded9ee706..838cd53458 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java
@@ -104,9 +104,11 @@ public final class ImportUtils {
public static final String DEFAULT_ICON = "defaulticon";
public static final String INNER_VFC_DESCRIPTION = "Not reusable inner VFC";
public static final String USER_DEFINED_RESOURCE_NAMESPACE_PREFIX = "org.openecomp.resource.";
- public static final List<String> TOSCA_DEFINITION_VERSIONS = Arrays.asList(new String[] { "tosca_simple_yaml_1_0_0", "tosca_simple_profile_for_nfv_1_0_0", "tosca_simple_yaml_1_0" });
- public static final List<String> TOSCA_YML_CSAR_VALID_SUFFIX = Arrays.asList(new String[] { ".yml", ".yaml", ".csar" });
+ public static final String TOSCA_SIMPLE_YAML_PREFIX = "tosca_simple_yaml_";
+ public static final List<String> TOSCA_DEFINITION_VERSIONS = Arrays.asList(TOSCA_SIMPLE_YAML_PREFIX + "1_0_0", TOSCA_SIMPLE_YAML_PREFIX + "1_1_0", "tosca_simple_profile_for_nfv_1_0_0", TOSCA_SIMPLE_YAML_PREFIX + "1_0", TOSCA_SIMPLE_YAML_PREFIX + "1_1");
+ public static final List<String> TOSCA_YML_CSAR_VALID_SUFFIX = Arrays.asList(".yml", ".yaml", ".csar");
public static final String UI_JSON_PAYLOAD_NAME = "payloadName";
+ public static final String CVFC_DESCRIPTION = "Complex node type that is used as nested type in VF";
}
public enum ResultStatusEnum {
@@ -133,6 +135,7 @@ public final class ImportUtils {
PARAMETERS("parameters"),
// Import Validations
TOSCA_VERSION("tosca_definitions_version"), TOPOLOGY_TEMPLATE("topology_template"), NODE_TYPES("node_types"), OCCURRENCES("occurrences"), NODE_TEMPLATES("node_templates"), GROUPS("groups"), INPUTS("inputs"),
+ SUBSTITUTION_MAPPINGS("substitution_mappings"), NODE_TYPE("node_type"),
// Attributes
ATTRIBUTES("attributes"), LABEL("label"), HIDDEN("hidden"), IMMUTABLE("immutable"), GET_INPUT("get_input");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogic.java
index 4f4ad7f838..f85e25e5fb 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogic.java
@@ -46,6 +46,7 @@ import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.IComponentInstanceConnectedElement;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.User;
@@ -443,57 +444,26 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
//////////////////////////////////////////////////////////////////////////////////////////////////////
List<InputDefinition> resList = new ArrayList<InputDefinition>();
- Map<String, List<InputDefinition>> newInputsMap = componentInstInputsMapUi.getComponentInstanceInputsMap();
+ Map<String, List<ComponentInstancePropInput>> newInputsMap = componentInstInputsMapUi.getComponentInstanceInputsMap();
List<ComponentInstance> ciList = component.getComponentInstances();
if (newInputsMap != null && !newInputsMap.isEmpty()) {
- int index = 0;
- for (Entry<String, List<InputDefinition>> entry : newInputsMap.entrySet()) {
-
- String compInstId = entry.getKey();
-
- Optional<ComponentInstance> op = ciList.stream().filter(ci -> ci.getUniqueId().equals(compInstId)).findAny();
- if(!op.isPresent()){
- ActionStatus actionStatus = ActionStatus.INVALID_CONTENT;
- log.debug("Failed to find component instance {} under component {}", compInstId, componentId);
- result = Either.right(componentsUtils.getResponseFormat(actionStatus));
- return result;
- }
- ComponentInstance ci = op.get();
- String compInstname = ci.getNormalizedName();
- Either<org.openecomp.sdc.be.model.Component, StorageOperationStatus> origComponentEither = getOriginComponent(ci, origComponentMap);
- if(origComponentEither.isRight()){
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(origComponentEither.right().value());
- log.debug("Failed to create inputs value under component {}, error: {}", componentId, actionStatus.name());
- result = Either.right(componentsUtils.getResponseFormat(actionStatus));
- return result;
- }
- org.openecomp.sdc.be.model.Component origComponent = origComponentEither.left().value();
-
- List<InputDefinition> inputs = entry.getValue();
-
- if (inputs != null && !inputs.isEmpty()) {
-
- for (InputDefinition input : inputs) {
-
- StorageOperationStatus status = addInputsToComponent(componentId, inputsToCreate, inputsValueToCreateMap, allDataTypes.left().value(), resList, index, compInstId, compInstname, origComponent, input);
- if(status != StorageOperationStatus.OK ){
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(status);
- log.debug("Failed to create inputs value under component {}, error: {}", componentId, actionStatus.name());
- result = Either.right(componentsUtils.getResponseFormat(actionStatus));
- return result;
- }
+
+ result = createInputsFromProperty(component, origComponentMap, inputsToCreate, propertiesToCreateMap, inputsValueToCreateMap, dataTypes, resList, newInputsMap, true);
- }
- }
-
+ if (result.isRight()) {
+ log.debug("Failed to create inputs of resource for id {} error {}", component.getUniqueId(), result.right().value());
+ return result;
}
+ resList = result.left().value();
+
+
}
Map<String, List<ComponentInstancePropInput>> newInputsPropsMap = componentInstInputsMapUi.getComponentInstanceProperties();
if (newInputsPropsMap != null && !newInputsPropsMap.isEmpty()) {
- result = createInputsFromProperty(component, origComponentMap, inputsToCreate, propertiesToCreateMap, dataTypes, resList, newInputsPropsMap);
+ result = createInputsFromProperty(component, origComponentMap, inputsToCreate, propertiesToCreateMap, inputsValueToCreateMap, dataTypes, resList, newInputsPropsMap, false);
if (result.isRight()) {
log.debug("Failed to create inputs of resource for id {} error {}", component.getUniqueId(), result.right().value());
@@ -705,42 +675,38 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
Either<List<InputDefinition>, ResponseFormat> result = Either.left(resList);
List<InputDefinition> resourceProperties = component.getInputs();
- if(inputs != null && !inputs.isEmpty()){
- Either<Map<String, DataTypeDefinition>, ResponseFormat> allDataTypes = getAllDataTypes(applicationDataTypeCache);
- if (allDataTypes.isRight()) {
- return Either.right(allDataTypes.right().value());
- }
-
- Map<String, DataTypeDefinition> dataTypes = allDataTypes.left().value();
+ Either<Map<String, DataTypeDefinition>, ResponseFormat> allDataTypes = getAllDataTypes(applicationDataTypeCache);
+ if (allDataTypes.isRight()) {
+ return Either.right(allDataTypes.right().value());
+ }
- for (Map.Entry<String, InputDefinition> inputDefinition : inputs.entrySet()) {
- String inputName = inputDefinition.getKey();
- inputDefinition.getValue().setName(inputName);
+ Map<String, DataTypeDefinition> dataTypes = allDataTypes.left().value();
- Either<InputDefinition, ResponseFormat> preparedInputEither = prepareAndValidateInputBeforeCreate(inputDefinition.getValue(), dataTypes);
- if(preparedInputEither.isRight()){
- return Either.right(preparedInputEither.right().value());
- }
+ for (Map.Entry<String, InputDefinition> inputDefinition : inputs.entrySet()) {
+ String inputName = inputDefinition.getKey();
+ inputDefinition.getValue().setName(inputName);
- }
- if (resourceProperties != null) {
- Map<String, InputDefinition> generatedInputs = resourceProperties.stream().collect(Collectors.toMap(i -> i.getName(), i -> i));
- Either<Map<String, InputDefinition>, String> mergeEither = ToscaDataDefinition.mergeDataMaps(generatedInputs, inputs);
- if(mergeEither.isRight()){
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.PROPERTY_ALREADY_EXIST, mergeEither.right().value()));
- }
- inputs = mergeEither.left().value();
+ Either<InputDefinition, ResponseFormat> preparedInputEither = prepareAndValidateInputBeforeCreate(inputDefinition.getValue(), dataTypes);
+ if(preparedInputEither.isRight()){
+ return Either.right(preparedInputEither.right().value());
}
- Either<List<InputDefinition>, StorageOperationStatus> assotiateInputsEither = toscaOperationFacade.createAndAssociateInputs(inputs, component.getUniqueId());
- if(assotiateInputsEither.isRight()){
- log.debug("Failed to create inputs under component {}. Status is {}", component.getUniqueId(), assotiateInputsEither.right().value());
- return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(assotiateInputsEither.right().value())));
+ }
+ if (resourceProperties != null) {
+ Map<String, InputDefinition> generatedInputs = resourceProperties.stream().collect(Collectors.toMap(i -> i.getName(), i -> i));
+ Either<Map<String, InputDefinition>, String> mergeEither = ToscaDataDefinition.mergeDataMaps(generatedInputs, inputs);
+ if(mergeEither.isRight()){
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.PROPERTY_ALREADY_EXIST, mergeEither.right().value()));
}
- result = Either.left(assotiateInputsEither.left().value());
-
+ inputs = mergeEither.left().value();
}
+ Either<List<InputDefinition>, StorageOperationStatus> assotiateInputsEither = toscaOperationFacade.createAndAssociateInputs(inputs, component.getUniqueId());
+ if(assotiateInputsEither.isRight()){
+ log.debug("Failed to create inputs under component {}. Status is {}", component.getUniqueId(), assotiateInputsEither.right().value());
+ return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(assotiateInputsEither.right().value())));
+ }
+ result = Either.left(assotiateInputsEither.left().value());
return result;
}
@@ -891,29 +857,22 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
}
List<ComponentInstanceInput> inputsValue= getComponentInstanceInputsByInputId(component, inputId);
- Map<String, List<ComponentInstanceInput>> insInputsMatToDelete = new HashMap<>();
-
+
if(inputsValue != null && !inputsValue.isEmpty()){
for(ComponentInstanceInput inputValue: inputsValue){
- inputValue.setValue(inputValue.getDefaultValue());
- List<GetInputValueDataDefinition> getInputsValues = inputValue.getGetInputValues();
- if(getInputsValues != null && !getInputsValues.isEmpty()){
- Optional<GetInputValueDataDefinition> op = getInputsValues.stream().filter(gi -> gi.getInputId().equals(inputForDelete.getUniqueId())).findAny();
- if(op.isPresent()){
- getInputsValues.remove(op.get());
- }
- }
- inputValue.setGetInputValues(getInputsValues);
- List<ComponentInstanceInput> inputList = null;
- String ciId = inputValue.getComponentInstanceId();
- status = toscaOperationFacade.updateComponentInstanceInput(component, ciId, inputValue);
+ String compInstId = inputValue.getComponentInstanceId();
+ prepareValueBeforeDelete(compInstId, inputForDelete, inputValue, inputValue.getPath());
+
+ status = toscaOperationFacade.updateComponentInstanceInput(component, compInstId, inputValue);
if(status != StorageOperationStatus.OK){
- log.debug("Component id: {} delete component instance input id: {} failed", componentId, inputId);
+ log.debug("Component id: {} update component instance property {} id: {} failed", componentId, inputValue.getUniqueId(), inputId);
deleteEither = Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(status), component.getName()));
return deleteEither;
}
+
}
+
}
// US848813 delete service input that relates to VL / CP property
@@ -923,42 +882,9 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
//propertyList = propertyValueStatus.left().value();
for(ComponentInstanceProperty propertyValue: propertiesValue){
- String value = propertyValue.getValue();
- Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(value);
-
- resetInputName(mappedToscaTemplate, inputForDelete.getName());
-
- value = "";
- if(!mappedToscaTemplate.isEmpty()){
- Either result = cleanNestedMap(mappedToscaTemplate , true);
- Map modifiedMappedToscaTemplate = mappedToscaTemplate;
- if (result.isLeft())
- modifiedMappedToscaTemplate = (Map)result.left().value();
- else
- Log.warn("Map cleanup failed -> " +result.right().value().toString()); //continue, don't break operation
- value = gson.toJson(modifiedMappedToscaTemplate);
- }
- propertyValue.setValue(value);
String compInstId = propertyValue.getComponentInstanceId();
- propertyValue.setRules(null);
- List<GetInputValueDataDefinition> getInputsValues = propertyValue.getGetInputValues();
- if(getInputsValues != null && !getInputsValues.isEmpty()){
- Optional<GetInputValueDataDefinition> op = getInputsValues.stream().filter(gi -> gi.getInputId().equals(inputForDelete.getUniqueId())).findAny();
- if(op.isPresent()){
- getInputsValues.remove(op.get());
- }
- }
- propertyValue.setGetInputValues(getInputsValues);
-
- Either<String, TitanOperationStatus> findDefaultValue = propertyOperation.findDefaultValueFromSecondPosition(propertyValue.getPath(), propertyValue.getUniqueId(), propertyValue.getDefaultValue());
- if (findDefaultValue.isRight()) {
- deleteEither = Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertTitanStatusToStorageStatus(findDefaultValue.right().value()))));
- return deleteEither;
-
- }
- String defaultValue = findDefaultValue.left().value();
- propertyValue.setDefaultValue(defaultValue);
- log.debug("The returned default value in ResourceInstanceProperty is {}", defaultValue);
+ prepareValueBeforeDelete(compInstId, inputForDelete, propertyValue, propertyValue.getPath());
+
status = toscaOperationFacade.updateComponentInstanceProperty(component, compInstId, propertyValue);
if(status != StorageOperationStatus.OK){
log.debug("Component id: {} update component instance property {} id: {} failed", componentId, propertyValue.getUniqueId(), inputId);
@@ -984,6 +910,47 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
}
}
+ private Either<InputDefinition, ResponseFormat> prepareValueBeforeDelete(String compInstId, InputDefinition inputForDelete, PropertyDefinition inputValue, List<String> pathOfComponentInstances) {
+ Either<InputDefinition, ResponseFormat> deleteEither = Either.left(inputForDelete);
+ String value = inputValue.getValue();
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(value);
+
+ resetInputName(mappedToscaTemplate, inputForDelete.getName());
+
+ value = "";
+ if(!mappedToscaTemplate.isEmpty()){
+ Either result = cleanNestedMap(mappedToscaTemplate , true);
+ Map modifiedMappedToscaTemplate = mappedToscaTemplate;
+ if (result.isLeft())
+ modifiedMappedToscaTemplate = (Map)result.left().value();
+ else
+ Log.warn("Map cleanup failed -> " +result.right().value().toString()); //continue, don't break operation
+ value = gson.toJson(modifiedMappedToscaTemplate);
+ }
+ inputValue.setValue(value);
+
+
+ List<GetInputValueDataDefinition> getInputsValues = inputValue.getGetInputValues();
+ if(getInputsValues != null && !getInputsValues.isEmpty()){
+ Optional<GetInputValueDataDefinition> op = getInputsValues.stream().filter(gi -> gi.getInputId().equals(inputForDelete.getUniqueId())).findAny();
+ if(op.isPresent()){
+ getInputsValues.remove(op.get());
+ }
+ }
+ inputValue.setGetInputValues(getInputsValues);
+
+ Either<String, TitanOperationStatus> findDefaultValue = propertyOperation.findDefaultValueFromSecondPosition(pathOfComponentInstances, inputValue.getUniqueId(), inputValue.getDefaultValue());
+ if (findDefaultValue.isRight()) {
+ deleteEither = Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertTitanStatusToStorageStatus(findDefaultValue.right().value()))));
+ return deleteEither;
+
+ }
+ String defaultValue = findDefaultValue.left().value();
+ inputValue.setDefaultValue(defaultValue);
+ log.debug("The returned default value in ResourceInstanceProperty is {}", defaultValue);
+ return deleteEither;
+ }
+
private Either<InputDefinition, ResponseFormat> prepareAndValidateInputBeforeCreate(InputDefinition newInputDefinition, Map<String, DataTypeDefinition> dataTypes) {
@@ -1196,7 +1163,7 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
- private Either<List<InputDefinition>, ResponseFormat> createInputsFromProperty(org.openecomp.sdc.be.model.Component component, Map<String, org.openecomp.sdc.be.model.Component> origComponentMap, Map<String, InputDefinition> inputsToCreate, Map<String, List<ComponentInstanceProperty>> propertiesToCreateMap, Map<String, DataTypeDefinition> dataTypes, List<InputDefinition> resList, Map<String, List<ComponentInstancePropInput>> newInputsPropsMap) {
+ private Either<List<InputDefinition>, ResponseFormat> createInputsFromProperty(org.openecomp.sdc.be.model.Component component, Map<String, org.openecomp.sdc.be.model.Component> origComponentMap, Map<String, InputDefinition> inputsToCreate, Map<String, List<ComponentInstanceProperty>> propertiesToCreateMap, Map<String, List<ComponentInstanceInput>> inputsValueToCreateMap, Map<String, DataTypeDefinition> dataTypes, List<InputDefinition> resList, Map<String, List<ComponentInstancePropInput>> newInputsPropsMap, boolean isInputValue) {
List<ComponentInstance> ciList = component.getComponentInstances();
String componentId = component.getUniqueId();
for (Entry<String, List<ComponentInstancePropInput>> entry : newInputsPropsMap.entrySet()) {
@@ -1206,7 +1173,14 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
propertiesToCreate = propertiesToCreateMap.get(compInstId);
}else{
propertiesToCreate = new ArrayList<>();
- }
+ }
+
+ List<ComponentInstanceInput> inputsValueToCreate = null;
+ if(propertiesToCreateMap.containsKey(compInstId)){
+ inputsValueToCreate = inputsValueToCreateMap.get(compInstId);
+ }else{
+ inputsValueToCreate = new ArrayList<>();
+ }
List<ComponentInstancePropInput> properties = entry.getValue();
@@ -1238,7 +1212,7 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
propInput.setOwnerId(null);
propInput.setParentUniqueId(null);
- Either<InputDefinition, StorageOperationStatus> createInputRes = createInputForComponentInstance(component, origComponent,ci, inputsToCreate, propertiesToCreate, dataTypes, inputName, propInput);
+ Either<InputDefinition, StorageOperationStatus> createInputRes = createInputForComponentInstance(component, origComponent,ci, inputsToCreate, propertiesToCreate, inputsValueToCreate, dataTypes, inputName, propInput, isInputValue);
if (createInputRes.isRight()) {
log.debug("Failed to create input of resource instance for id {} error {}", compInstId, createInputRes.right().value());
@@ -1249,14 +1223,19 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
resList.add(createInputRes.left().value());
}
- propertiesToCreateMap.put(compInstId, propertiesToCreate);
+ if(! isInputValue){
+ propertiesToCreateMap.put(compInstId, propertiesToCreate);
+ }
+ else{
+ inputsValueToCreateMap.put(compInstId, inputsValueToCreate);
+ }
}
}
return Either.left(resList);
}
- private Either<InputDefinition, StorageOperationStatus> createInputForComponentInstance(org.openecomp.sdc.be.model.Component component,org.openecomp.sdc.be.model.Component orignComponent, ComponentInstance ci, Map<String, InputDefinition> inputsToCreate, List<ComponentInstanceProperty> propertiesToCreate, Map<String, DataTypeDefinition> dataTypes, String inputName, ComponentInstancePropInput propInput) {
+ private Either<InputDefinition, StorageOperationStatus> createInputForComponentInstance(org.openecomp.sdc.be.model.Component component,org.openecomp.sdc.be.model.Component orignComponent, ComponentInstance ci, Map<String, InputDefinition> inputsToCreate, List<ComponentInstanceProperty> propertiesToCreate, List<ComponentInstanceInput> inputsValueToCreate, Map<String, DataTypeDefinition> dataTypes, String inputName, ComponentInstancePropInput propInput, boolean isInputValue) {
String propertiesName = propInput.getPropertiesName() ;
PropertyDefinition selectedProp = propInput.getInput();
String[] parsedPropNames = propInput.getParsedPropNames();
@@ -1270,14 +1249,22 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
}
InputDefinition input = null;
- ComponentInstanceProperty prop = propInput;
+ PropertyDefinition prop = propInput;
- if(CollectionUtils.isNotEmpty(propertiesToCreate)){
+ if(CollectionUtils.isNotEmpty(propertiesToCreate) && !isInputValue){
Optional<ComponentInstanceProperty> propOpt = propertiesToCreate.stream().filter(p -> p.getName().equals(propInput.getName())).findFirst();
if(propOpt.isPresent()){
prop = propOpt.get();
}
+ }else{
+ if(CollectionUtils.isNotEmpty(inputsValueToCreate) && isInputValue){
+ Optional<ComponentInstanceInput> propOpt = inputsValueToCreate.stream().filter(p -> p.getName().equals(propInput.getName())).findFirst();
+ if(propOpt.isPresent()){
+ prop = propOpt.get();
+ }
+ }
}
+
boolean complexProperty = false;
if(propertiesName != null && !propertiesName.isEmpty() && selectedProp != null){
complexProperty = true;
@@ -1317,7 +1304,7 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
if(!complexProperty){
jobject.put(GET_INPUT, input.getName());
prop.setValue(jobject.toJSONString());
- prop.setRules(null);
+
}else{
Map<String, Object> mappedToscaTemplate = (Map<String, Object>) objValue;
@@ -1325,18 +1312,19 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
String json = gson.toJson(mappedToscaTemplate);
prop.setValue(json);
- prop.setRules(null);
+
}
}else{
jobject.put(GET_INPUT, input.getName());
prop.setValue(jobject.toJSONString());
- prop.setRules(null);
+
}
}
- prop.setComponentInstanceId(ci.getUniqueId());
- prop.setComponentInstanceName(ci.getName());
+
+ ((IComponentInstanceConnectedElement)prop).setComponentInstanceId(ci.getUniqueId());
+ ((IComponentInstanceConnectedElement)prop).setComponentInstanceName(ci.getName());
if(CollectionUtils.isEmpty(prop.getGetInputValues())){
prop.setGetInputValues(new ArrayList<>());
@@ -1348,17 +1336,31 @@ public class InputsBusinessLogic extends BaseBusinessLogic {
getInputValueDataDefinition.setInputName(input.getName());
getInputValues.add(getInputValueDataDefinition);
- if(!propertiesToCreate.contains(prop)){
- propertiesToCreate.add(prop);
+ if(!isInputValue){
+ if(!propertiesToCreate.contains(prop)){
+ propertiesToCreate.add((ComponentInstanceProperty)prop);
+ }
+
+ inputsToCreate.put(input.getName(), input);
+ List<ComponentInstanceProperty> propertiesList = input.getProperties();
+ if(propertiesList == null)
+ propertiesList = new ArrayList<>(); // adding the property with the new value for UI
+ propertiesList.add((ComponentInstanceProperty)prop);
+ input.setProperties(propertiesList);
+ }else{
+ ComponentInstanceInput inputValue = new ComponentInstanceInput(prop);
+ if(!inputsValueToCreate.contains(inputValue)){
+ inputsValueToCreate.add(inputValue);;
+ }
+
+ inputsToCreate.put(input.getName(), input);
+ List<ComponentInstanceInput> inputsValueList = input.getInputs();
+ if(inputsValueList == null)
+ inputsValueList = new ArrayList<>(); // adding the property with the new value for UI
+ inputsValueList.add(inputValue);
+ input.setInputs(inputsValueList);
}
- inputsToCreate.put(input.getName(), input);
- List<ComponentInstanceProperty> propertiesList = input.getProperties();
- if(propertiesList == null)
- propertiesList = new ArrayList<>(); // adding the property with the new value for UI
- propertiesList.add(prop);
- input.setProperties(propertiesList);
-
return Either.left(input);
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ProductComponentInstanceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ProductComponentInstanceBusinessLogic.java
index ab0969358c..7a7148a6a1 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ProductComponentInstanceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ProductComponentInstanceBusinessLogic.java
@@ -30,10 +30,6 @@ import fj.data.Either;
@Component("productComponentInstanceBusinessLogic")
public class ProductComponentInstanceBusinessLogic extends ComponentInstanceBusinessLogic {
- @Override
- protected Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances(org.openecomp.sdc.be.model.Component containerComponent) {
- return Either.left(true);
- }
@Override
protected NodeTypeEnum getNodeTypeOfComponentInstanceOrigin() {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
index cc4a6d9c71..0aa4a6f006 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
@@ -23,7 +23,6 @@ package org.openecomp.sdc.be.components.impl;
import static org.openecomp.sdc.be.tosca.CsarUtils.ARTIFACTS_PATH;
import static org.openecomp.sdc.be.tosca.CsarUtils.VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -46,6 +45,7 @@ import javax.servlet.ServletContext;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
@@ -79,6 +79,7 @@ import org.openecomp.sdc.be.model.CapabilityDefinition;
import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.ComponentInstanceInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
@@ -86,10 +87,12 @@ import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupProperty;
import org.openecomp.sdc.be.model.GroupTypeDefinition;
import org.openecomp.sdc.be.model.HeatParameterDefinition;
+import org.openecomp.sdc.be.model.CsarInfo;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.NodeTypeInfo;
import org.openecomp.sdc.be.model.Operation;
import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
import org.openecomp.sdc.be.model.PropertyDefinition;
@@ -111,13 +114,11 @@ import org.openecomp.sdc.be.model.heat.HeatParameterType;
import org.openecomp.sdc.be.model.operations.api.ICacheMangerOperation;
import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
import org.openecomp.sdc.be.model.operations.api.IElementOperation;
-import org.openecomp.sdc.be.model.operations.api.IHeatParametersOperation;
import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation;
import org.openecomp.sdc.be.model.operations.api.IPropertyOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.CsarOperation;
import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
-import org.openecomp.sdc.be.model.operations.impl.InputsOperation;
import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
import org.openecomp.sdc.be.model.operations.utils.ComponentValidationUtils;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
@@ -125,6 +126,7 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.be.servlets.RepresentationUtils;
import org.openecomp.sdc.be.tosca.CsarUtils;
import org.openecomp.sdc.be.tosca.CsarUtils.NonMetaArtifactInfo;
+import org.openecomp.sdc.be.tosca.ToscaUtils;
import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer;
import org.openecomp.sdc.be.user.IUserBusinessLogic;
import org.openecomp.sdc.be.user.Role;
@@ -133,7 +135,6 @@ import org.openecomp.sdc.be.utils.CommonBeUtils;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
import org.openecomp.sdc.common.api.Constants;
-import org.openecomp.sdc.common.config.EcompErrorName;
import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.datastructure.FunctionalInterfaces;
import org.openecomp.sdc.common.datastructure.Wrapper;
@@ -203,18 +204,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
@Autowired
private InputsBusinessLogic inputsBusinessLogic;
- @javax.annotation.Resource
- private InputsOperation inputOperation;
-
- // @Autowired
- // private GroupOperation groupOperation;
-
- @Autowired
- private IHeatParametersOperation heatParametersOperation;
-
- // @Autowired
- // private IArtifactOperation artifactOperation;
-
@Autowired
private CompositionBusinessLogic compositionBusinessLogic;
@@ -290,8 +279,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
* the method returns a list of all the resources that are certified, the returned resources are only abstract or only none abstract according to the given param
*
* @param getAbstract
- * @param userId
- * TODO
+ * @param userId TODO
* @return
*/
public Either<List<Resource>, ResponseFormat> getAllCertifiedResources(boolean getAbstract, HighestFilterEnum highestFilter, String userId) {
@@ -301,16 +289,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
Boolean isHighest = null;
switch (highestFilter) {
- case ALL:
- break;
- case HIGHEST_ONLY:
- isHighest = true;
- break;
- case NON_HIGHEST_ONLY:
- isHighest = false;
- break;
- default:
- break;
+ case ALL:
+ break;
+ case HIGHEST_ONLY:
+ isHighest = true;
+ break;
+ case NON_HIGHEST_ONLY:
+ isHighest = false;
+ break;
+ default:
+ break;
}
Either<List<Resource>, StorageOperationStatus> getResponse = toscaOperationFacade.getAllCertifiedResources(getAbstract, isHighest);
@@ -489,7 +477,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<Resource, ResponseFormat> updateResourceFromCsar(Resource oldRresource, Resource newRresource, User user, AuditingActionEnum updateResource, boolean inTransaction, Either<Map<String, byte[]>, StorageOperationStatus> csarUIPayload,
- String csarUUID) {
+ String csarUUID) {
// check state
if (LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.equals(oldRresource.getLifecycleState())) {
@@ -500,7 +488,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
String lockedResourceId = oldRresource.getUniqueId();
List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
- List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
Either<Map<String, byte[]>, StorageOperationStatus> csar = null;
if (csarUIPayload != null && csarUIPayload.left() != null && csarUIPayload.left().value() != null) {
@@ -536,30 +523,68 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.right(lockResult.right().value());
}
- Either<Resource, ResponseFormat> result = null;
String yamlFileName = toscaYamlCsarStatus.left().value().getKey();
- Either<Map<String, Resource>, ResponseFormat> parseNodeTypeInfoYamlEither = null;
- try {
+ String yamlFileContents = toscaYamlCsarStatus.left().value().getValue();
+ CsarInfo csarInfo = new CsarInfo(newRresource.getName(), user, csarUUID, csar.left().value(), true);
+ Map<String, NodeTypeInfo> nodeTypesInfo = extractNodeTypesInfo(csar.left().value(), yamlFileContents);
+ Either<Resource, ResponseFormat> result =null;
+
+ Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandleRes = findNodeTypesArtifactsToHandle(nodeTypesInfo, csarInfo.getCsar(), csarInfo.getCsarUUID(), yamlFileName, oldRresource, csarInfo.getModifier());
+ if (findNodeTypesArtifactsToHandleRes.isRight()) {
+ log.debug("failed to find node types for update with artifacts during import csar {}. ", csarInfo.getCsarUUID());
+ result = Either.right(findNodeTypesArtifactsToHandleRes.right().value());
+ return result;
+ }
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = findNodeTypesArtifactsToHandleRes.left().value();
+ try{
+ result = updateResourceFromYaml(oldRresource, newRresource, updateResource, createdArtifacts, isUpdateYaml, yamlFileName, yamlFileContents, csarInfo, nodeTypesInfo, nodeTypesArtifactsToHandle, null);
+
+ } finally {
+ if (result == null || result.isRight()) {
+ log.warn("operation failed. do rollback");
+ titanDao.rollback();
+ if (!createdArtifacts.isEmpty()) {
+ StorageOperationStatus deleteFromEsRes = artifactsBusinessLogic.deleteAllComponentArtifactsIfNotOnGraph(createdArtifacts);
+ if (!deleteFromEsRes.equals(StorageOperationStatus.OK)) {
+ ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteFromEsRes);
+ result = Either.right(componentsUtils.getResponseFormat(actionStatus, oldRresource.getName()));
+ }
+ log.debug("component and all its artifacts were deleted, id = {}", oldRresource.getName());
+ }
+ } else {
+ log.debug("operation success. do commit");
+ titanDao.commit();
+ }
+ log.debug("unlock resource {}", lockedResourceId);
+ graphLockOperation.unlockComponent(lockedResourceId, NodeTypeEnum.Resource);
+ }
+ return result;
+
+ }
+
+ private Either<Resource, ResponseFormat> updateResourceFromYaml(Resource oldRresource, Resource newRresource, AuditingActionEnum updateResource, List<ArtifactDefinition> createdArtifacts,
+ boolean isUpdateYaml, String yamlFileName, String yamlFileContent, CsarInfo csarInfo, Map<String, NodeTypeInfo> nodeTypesInfo,
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle, String nodeName) {
+ Either<Resource, ResponseFormat> result = null;
+ Either<Map<String, Resource>, ResponseFormat> parseNodeTypeInfoYamlEither;
+ boolean inTransaction = true;
+ boolean shouldLock = false;
+
Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> prepareForUpdate = null;
Resource preparedResource = null;
- Either<ParsedToscaYamlInfo, ResponseFormat> uploadComponentInstanceInfoMap = parseResourceInfoFromYaml(yamlFileName, newRresource, toscaYamlCsarStatus.left().value().getValue(), user);
+ Either<ParsedToscaYamlInfo, ResponseFormat> uploadComponentInstanceInfoMap = parseResourceInfoFromYaml(yamlFileName, newRresource, yamlFileContent, csarInfo.getModifier(), csarInfo.getCreatedNodesToscaResourceNames(), nodeTypesInfo, nodeName);
if (uploadComponentInstanceInfoMap.isRight()) {
ResponseFormat responseFormat = uploadComponentInstanceInfoMap.right().value();
- componentsUtils.auditResource(responseFormat, user, newRresource, "", "", updateResource, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), newRresource, "", "", updateResource, null);
result = Either.right(responseFormat);
return result;
}
+
Map<String, UploadComponentInstanceInfo> instances = uploadComponentInstanceInfoMap.left().value().getInstances();
- Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandleRes = findNodeTypesArtifactsToHandle(csar.left().value(), csarUUID, yamlFileName, oldRresource, user, true, instances);
- if (findNodeTypesArtifactsToHandleRes.isRight()) {
- log.debug("failed to find node types for update with artifacts during import csar {}. ", csarUUID);
- result = Either.right(findNodeTypesArtifactsToHandleRes.right().value());
- return result;
- }
- Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = findNodeTypesArtifactsToHandleRes.left().value();
+
if (isUpdateYaml || !nodeTypesArtifactsToHandle.isEmpty()) {
- prepareForUpdate = updateExistingResourceByImport(newRresource, oldRresource, user, true, false);
+ prepareForUpdate = updateExistingResourceByImport(newRresource, oldRresource, csarInfo.getModifier(), inTransaction, shouldLock);
if (prepareForUpdate.isRight()) {
log.debug("Failed to prepare resource for update : {}", prepareForUpdate.right().value());
result = Either.right(prepareForUpdate.right().value());
@@ -567,39 +592,38 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
preparedResource = prepareForUpdate.left().value().left;
- String yamlFileContents = toscaYamlCsarStatus.left().value().getValue();
- log.trace("YAML topology file found in CSAR, file name: {}, contents: {}", yamlFileName, yamlFileContents);
+ log.trace("YAML topology file found in CSAR, file name: {}, contents: {}", yamlFileName, yamlFileContent);
- parseNodeTypeInfoYamlEither = this.handleNodeTypes(yamlFileName, preparedResource, user, yamlFileContents, csar.left().value(), false, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts);
+ parseNodeTypeInfoYamlEither = this.handleNodeTypes(yamlFileName, preparedResource, yamlFileContent, shouldLock, nodeTypesArtifactsToHandle, createdArtifacts, nodeTypesInfo, csarInfo, nodeName);
if (parseNodeTypeInfoYamlEither.isRight()) {
ResponseFormat responseFormat = parseNodeTypeInfoYamlEither.right().value();
- componentsUtils.auditResource(responseFormat, user, preparedResource, "", "", updateResource, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), preparedResource, "", "", updateResource, null);
result = Either.right(responseFormat);
return result;
}
Map<String, InputDefinition> inputs = uploadComponentInstanceInfoMap.left().value().getInputs();
- Either<Resource, ResponseFormat> createInputsOnResource = createInputsOnResource(preparedResource, user, inputs, true);
+ Either<Resource, ResponseFormat> createInputsOnResource = createInputsOnResource(preparedResource, csarInfo.getModifier(), inputs, inTransaction);
if (createInputsOnResource.isRight()) {
log.debug("failed to create resource inputs status is {}", createInputsOnResource.right().value());
ResponseFormat responseFormat = createInputsOnResource.right().value();
- componentsUtils.auditResource(createInputsOnResource.right().value(), user, preparedResource, "", "", updateResource, null);
+ componentsUtils.auditResource(createInputsOnResource.right().value(), csarInfo.getModifier(), preparedResource, "", "", updateResource, null);
result = Either.right(responseFormat);
return result;
}
preparedResource = createInputsOnResource.left().value();
- Either<Resource, ResponseFormat> createResourcesInstancesEither = createResourceInstances(user, yamlFileName, preparedResource, instances, true, false, parseNodeTypeInfoYamlEither.left().value());
+ Either<Resource, ResponseFormat> createResourcesInstancesEither = createResourceInstances(csarInfo.getModifier(), yamlFileName, preparedResource, instances, inTransaction, shouldLock, csarInfo.getCreatedNodes());
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create resource instances status is {}", createResourcesInstancesEither.right().value());
ResponseFormat responseFormat = createResourcesInstancesEither.right().value();
- componentsUtils.auditResource(createResourcesInstancesEither.right().value(), user, preparedResource, "", "", updateResource, null);
+ componentsUtils.auditResource(createResourcesInstancesEither.right().value(), csarInfo.getModifier(), preparedResource, "", "", updateResource, null);
result = Either.right(responseFormat);
return result;
}
preparedResource = createResourcesInstancesEither.left().value();
-
- createResourcesInstancesEither = createResourceInstancesRelations(user, yamlFileName, preparedResource, instances, true, false);
+
+ createResourcesInstancesEither = createResourceInstancesRelations(csarInfo.getModifier(), yamlFileName, preparedResource, instances, inTransaction, shouldLock);
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create relation between resource instances status is {}", createResourcesInstancesEither.right().value());
result = Either.right(createResourcesInstancesEither.right().value());
@@ -621,7 +645,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
} else {
groups = uploadComponentInstanceInfoMap.left().value().getGroups();
}
- Either<Resource, ResponseFormat> updatedGroupsOnResource = updateGroupsOnResource(preparedResource, user, groups);
+ Either<Resource, ResponseFormat> updatedGroupsOnResource = updateGroupsOnResource(preparedResource, csarInfo.getModifier(), groups);
if (updatedGroupsOnResource.isRight()) {
return updatedGroupsOnResource;
@@ -629,7 +653,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
preparedResource = updatedGroupsOnResource.left().value();
} else {
- Either<Resource, ResponseFormat> dataModelResponse = updateResourceMetadata(oldRresource.getUniqueId(), newRresource, user, oldRresource, false, true);
+ Either<Resource, ResponseFormat> dataModelResponse = updateResourceMetadata(oldRresource.getUniqueId(), newRresource, csarInfo.getModifier(), oldRresource, shouldLock, inTransaction);
if (dataModelResponse.isRight()) {
log.debug("failed to update resource metadata {}", dataModelResponse.right().value());
result = Either.right(dataModelResponse.right().value());
@@ -638,44 +662,32 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
preparedResource = dataModelResponse.left().value();
}
- Either<Resource, ResponseFormat> createdCsarArtifactsEither = handleCsarArtifacts(preparedResource, user, csarUUID, csar.left().value(), createdArtifacts,
- artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Update), false, true);
- if (createdCsarArtifactsEither.isRight()) {
-
- return createdCsarArtifactsEither;
+ if(preparedResource.getResourceType() == ResourceTypeEnum.CVFC){
+ if(nodeName != null && nodeTypesArtifactsToHandle.get(nodeName) != null && !nodeTypesArtifactsToHandle.get(nodeName).isEmpty()){
+ Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes =
+ handleNodeTypeArtifacts(preparedResource, nodeTypesArtifactsToHandle.get(nodeName), createdArtifacts, csarInfo.getModifier(), inTransaction, true);
+ if(handleNodeTypeArtifactsRes.isRight()){
+ return Either.right(handleNodeTypeArtifactsRes.right().value());
+ }
+ }
+ } else {
+ Either<Resource, ResponseFormat> createdCsarArtifactsEither = handleVfCsarArtifacts(preparedResource, csarInfo, createdArtifacts,
+ artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Update), shouldLock, inTransaction);
+ log.trace("************* Finished to add artifacts from yaml {}", yamlFileName);
+ if (createdCsarArtifactsEither.isRight()) {
+ return createdCsarArtifactsEither;
+ }
+ preparedResource = createdCsarArtifactsEither.left().value();
}
- preparedResource = createdCsarArtifactsEither.left().value();
- Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(preparedResource, user.getUserId());
+ Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(preparedResource, csarInfo.getModifier().getUserId());
result = eitherSetPosition.isRight() ? Either.right(eitherSetPosition.right().value()) : Either.left(preparedResource);
return result;
- } finally {
- if (result == null || result.isRight()) {
- log.warn("operation failed. do rollback");
- titanDao.rollback();
- if (!createdArtifacts.isEmpty() || !nodeTypesNewCreatedArtifacts.isEmpty()) {
- createdArtifacts.addAll(nodeTypesNewCreatedArtifacts);
- StorageOperationStatus deleteFromEsRes = artifactsBusinessLogic.deleteAllComponentArtifactsIfNotOnGraph(createdArtifacts);
- if (!deleteFromEsRes.equals(StorageOperationStatus.OK)) {
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteFromEsRes);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(actionStatus, oldRresource.getName());
- }
- log.debug("component and all its artifacts were deleted, id = {}", oldRresource.getName());
- }
- } else {
- log.debug("operation success. do commit");
- titanDao.commit();
- }
- log.debug("unlock resource {}", lockedResourceId);
- graphLockOperation.unlockComponent(lockedResourceId, NodeTypeEnum.Resource);
- }
-
}
- private Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandle(Map<String, byte[]> csar, String csarUUID, String yamlFileName, Resource oldResource, User user,
- boolean inTransaction, Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap) {
+ private Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandle(Map<String, NodeTypeInfo> nodeTypesInfo, Map<String, byte[]> csar, String csarUUID, String yamlFileName, Resource oldResource, User user) {
Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = CsarUtils.extractVfcsArtifactsFromCsar(csar);
Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
@@ -683,14 +695,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
try {
nodeTypesArtifactsToHandleRes = Either.left(nodeTypesArtifactsToHandle);
- List<ImmutablePair<ImmutablePair<String, List<String>>, String>> extractedVfcToscaNames = extractVfcToscaNames(csar, yamlFileName, oldResource.getSystemName(), uploadComponentInstanceInfoMap);
- validateNodeTypeIdentifiers(extractedVfcsArtifacts, extractedVfcToscaNames);
+ Map<String, String> extractedVfcToscaNames = extractVfcToscaNames(nodeTypesInfo, yamlFileName, oldResource.getSystemName());
Either<EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>, ResponseFormat> curNodeTypeArtifactsToHandleRes = null;
EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>> curNodeTypeArtifactsToHandle = null;
log.debug("Going to fetch node types for resource with name {} during import csar with UUID {}. ", oldResource.getName(), csarUUID);
- for (ImmutablePair<ImmutablePair<String, List<String>>, String> currVfcToscaNameEntry : extractedVfcToscaNames) {
+ for (Entry<String, String> currVfcToscaNameEntry : extractedVfcToscaNames.entrySet()) {
String currVfcToscaName = currVfcToscaNameEntry.getValue();
+ String currNamespace = currVfcToscaNameEntry.getKey();
log.debug("Going to fetch node type with tosca name {}. ", currVfcToscaName);
Either<Resource, StorageOperationStatus> curVfcRes = toscaOperationFacade.getLatestByToscaResourceName(currVfcToscaName);
@@ -706,10 +718,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
if (!MapUtils.isEmpty(extractedVfcsArtifacts)) {
List<ArtifactDefinition> currArtifacts = new ArrayList<>();
- for (String currNamespace : currVfcToscaNameEntry.getKey().getValue()) {
- if (extractedVfcsArtifacts.containsKey(currNamespace)) {
- handleAndAddExtractedVfcsArtifacts(currArtifacts, extractedVfcsArtifacts.get(currNamespace));
- }
+ if (extractedVfcsArtifacts.containsKey(currNamespace)) {
+ handleAndAddExtractedVfcsArtifacts(currArtifacts, extractedVfcsArtifacts.get(currNamespace));
}
curNodeTypeArtifactsToHandleRes = findNodeTypeArtifactsToHandle(curNodeType, currArtifacts);
if (curNodeTypeArtifactsToHandleRes.isRight()) {
@@ -731,7 +741,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
if (MapUtils.isNotEmpty(curNodeTypeArtifactsToHandle)) {
- nodeTypesArtifactsToHandle.put(currVfcToscaNameEntry.getKey().getKey(), curNodeTypeArtifactsToHandle);
+ nodeTypesArtifactsToHandle.put(currVfcToscaNameEntry.getKey(), curNodeTypeArtifactsToHandle);
}
}
} catch (Exception e) {
@@ -742,22 +752,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return nodeTypesArtifactsToHandleRes;
}
- private void validateNodeTypeIdentifiers(Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts, List<ImmutablePair<ImmutablePair<String, List<String>>, String>> extractedVfcToscaNames) {
- if (extractedVfcsArtifacts != null) {
- List<String> validIdentifiers = new ArrayList<>();
- if (extractedVfcToscaNames != null) {
- extractedVfcToscaNames.stream().forEach(pair -> {
- validIdentifiers.addAll(pair.getKey().getValue());
- validIdentifiers.add(pair.getKey().getKey());
- });
- }
- for (String curIdentifier : extractedVfcsArtifacts.keySet()) {
- if (validIdentifiers != null && !validIdentifiers.contains(curIdentifier))
- log.warn("Warning - VFC identification {} provided in the Artifacts folder of the CSAR is not valid. ", curIdentifier);
- }
- }
- }
-
private Either<EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>, ResponseFormat> findNodeTypeArtifactsToHandle(Resource curNodeType, List<ArtifactDefinition> extractedArtifacts) {
Either<EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>, ResponseFormat> nodeTypeArtifactsToHandleRes = null;
@@ -869,8 +863,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
* @param inTransaction
* @return
*/
- public Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifacts(Resource nodeTypeResource, Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> vfcsNewCreatedArtifacts,
- User user, boolean inTransaction) {
+ public Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifacts(Resource nodeTypeResource, Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> createdArtifacts,
+ User user, boolean inTransaction, boolean ignoreLifecycleState) {
Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRequestRes;
Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes = null;
Either<Resource, ResponseFormat> changeStateResponse;
@@ -888,14 +882,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
List<ArtifactDefinition> curArtifactsToHandle = curOperationEntry.getValue();
if (curArtifactsToHandle != null && !curArtifactsToHandle.isEmpty()) {
log.debug("************* Going to {} artifact to vfc {}", curOperation.name(), nodeTypeResource.getName());
- handleNodeTypeArtifactsRequestRes = artifactsBusinessLogic.handleArtifactsRequestForInnerVfcComponent(curArtifactsToHandle, nodeTypeResource, user, vfcsNewCreatedArtifacts,
- artifactsBusinessLogic.new ArtifactOperationInfo(false, false, curOperation), false, inTransaction);
+ handleNodeTypeArtifactsRequestRes = artifactsBusinessLogic.handleArtifactsRequestForInnerVfcComponent(curArtifactsToHandle, nodeTypeResource, user, createdArtifacts,
+ artifactsBusinessLogic.new ArtifactOperationInfo(false, ignoreLifecycleState, curOperation), false, inTransaction);
if (handleNodeTypeArtifactsRequestRes.isRight()) {
handleNodeTypeArtifactsRes = Either.right(handleNodeTypeArtifactsRequestRes.right().value());
break;
}
if (curOperation == ArtifactOperationEnum.Create) {
- vfcsNewCreatedArtifacts.addAll(handleNodeTypeArtifactsRequestRes.left().value());
+ createdArtifacts.addAll(handleNodeTypeArtifactsRequestRes.left().value());
}
handledNodeTypeArtifacts.addAll(handleNodeTypeArtifactsRequestRes.left().value());
}
@@ -911,93 +905,30 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return handleNodeTypeArtifactsRes;
}
- @SuppressWarnings("unchecked")
- private List<ImmutablePair<ImmutablePair<String, List<String>>, String>> extractVfcToscaNames(Map<String, byte[]> csar, String yamlFileName, String vfResourceName, Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap) {
- List<ImmutablePair<ImmutablePair<String, List<String>>, String>> vfcToscaNames = new ArrayList<>();
- Map<String, Object> nodeTypes;
- if (csar != null) {
- nodeTypes = new HashMap<>();
- putNodeTypesFromYaml(csar, yamlFileName, nodeTypes);
- putNodeTypesFromYaml(csar, Constants.GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE, nodeTypes);
- putNodeTypesFromYaml(csar, Constants.ABSTRACT_SUBSTITUTE_GLOBAL_TYPES_SERVICE_TEMPLATE, nodeTypes);
- Map<String,String> nestedServiceTemplatesMap = new HashMap<>();
- for(UploadComponentInstanceInfo ci : uploadComponentInstanceInfoMap.values()){
- if(ci.getProperties() != null && ci.getProperties().containsKey("service_template_filter")){
- String tempName = CsarUtils.DEFINITIONS_PATH + ((Map<String, String>)ci.getProperties().get("service_template_filter").get(0).getValue()).get("substitute_service_template");
- putNodeTypesFromYaml(csar,tempName, nodeTypes);
- nestedServiceTemplatesMap.put(ci.getType(), tempName);
- }
- }
-
- if (!nodeTypes.isEmpty()) {
- Iterator<Entry<String, Object>> nodesNameEntry = nodeTypes.entrySet().iterator();
- while (nodesNameEntry.hasNext()) {
- Entry<String, Object> nodeType = nodesNameEntry.next();
- addVfcToscaNameFindSubstitutes(csar, vfResourceName, vfcToscaNames, nodeType.getKey(), nestedServiceTemplatesMap);
- }
+ private Map<String, String> extractVfcToscaNames(Map<String, NodeTypeInfo> nodeTypesInfo, String yamlFileName, String vfResourceName) {
+ Map<String, String> vfcToscaNames = new HashMap<>();
+
+ Map<String, Object> nodes = extractAllNodes(nodeTypesInfo);
+ if (!nodes.isEmpty()) {
+ Iterator<Entry<String, Object>> nodesNameEntry = nodes.entrySet().iterator();
+ while (nodesNameEntry.hasNext()) {
+ Entry<String, Object> nodeType = nodesNameEntry.next();
+ String toscaResourceName = buildNestedToscaResourceName(ResourceTypeEnum.VFC.name(), vfResourceName, nodeType.getKey());
+ vfcToscaNames.put(nodeType.getKey(), toscaResourceName);
}
}
return vfcToscaNames;
}
- @SuppressWarnings("unchecked")
- private void putNodeTypesFromYaml(Map<String, byte[]> csar, String yamlFileName, Map<String, Object> nodeTypes) {
-
- if (csar.containsKey(yamlFileName)) {
- Map<String, Object> mappedToscaTemplate;
- Either<Map<String, Object>, ResultStatusEnum> eitherNodeTypes;
- mappedToscaTemplate = (Map<String, Object>) new Yaml().load(new String(csar.get(yamlFileName), StandardCharsets.UTF_8));
- eitherNodeTypes = ImportUtils.findFirstToscaMapElement(mappedToscaTemplate, ToscaTagNamesEnum.NODE_TYPES);
+ private Map<String, Object> extractAllNodes(Map<String, NodeTypeInfo> nodeTypesInfo) {
+ Map<String, Object> nodes = new HashMap<>();
+ for(NodeTypeInfo nodeTypeInfo: nodeTypesInfo.values()){
+ Either<Map<String, Object>, ResultStatusEnum> eitherNodeTypes = ImportUtils.findFirstToscaMapElement(nodeTypeInfo.getMappedToscaTemplate(), ToscaTagNamesEnum.NODE_TYPES);
if (eitherNodeTypes.isLeft()) {
- nodeTypes.putAll(eitherNodeTypes.left().value());
- }
- }
- }
-
- private void addVfcToscaNameFindSubstitutes(Map<String, byte[]> csar, String vfResourceName, List<ImmutablePair<ImmutablePair<String, List<String>>, String>> vfcToscaNames, String nodeTypeFullName, Map<String, String> nestedServiceTemplatesMap) {
-
- String toscaResourceName = buildNestedVfcToscaResourceName(vfResourceName, nodeTypeFullName);
- String nodeTypeTemplateYamlName =null;
- if(nestedServiceTemplatesMap.containsKey(nodeTypeFullName)){
- nodeTypeTemplateYamlName = nestedServiceTemplatesMap.get(nodeTypeFullName);
- }
- List<String> relatedVfcsToscaNameSpaces = new ArrayList<>();
- relatedVfcsToscaNameSpaces.add(buildNestedVfcToscaNamespace(nodeTypeFullName));
- if (nodeTypeTemplateYamlName!=null && csar.containsKey(nodeTypeTemplateYamlName)) {
- addSubstituteToscaNamespacesRecursively(csar, nodeTypeTemplateYamlName, relatedVfcsToscaNameSpaces, nestedServiceTemplatesMap);
- }
- ImmutablePair<String, List<String>> toscaNameSpacesHierarchy = new ImmutablePair<>(nodeTypeFullName, relatedVfcsToscaNameSpaces);
- vfcToscaNames.add(new ImmutablePair<>(toscaNameSpacesHierarchy, toscaResourceName));
- }
-
- private void addSubstituteToscaNamespacesRecursively(Map<String, byte[]> csar, String yamlFileName, List<String> toscaNameSpaces, Map<String, String> nestedServiceTemplatesMap) {
-
- Map<String, Object> nodeTypes = new HashMap<>();
-
- if (csar.containsKey(yamlFileName)) {
- putNodeTypesFromYaml(csar, yamlFileName, nodeTypes);
- }
- if (!nodeTypes.isEmpty()) {
- Iterator<Entry<String, Object>> nodesNameEntry = nodeTypes.entrySet().iterator();
- while (nodesNameEntry.hasNext()) {
- Entry<String, Object> nodeType = nodesNameEntry.next();
- String nodeTypeFullName = nodeType.getKey();
- String toscaNameSpace = buildNestedVfcToscaNamespace(nodeTypeFullName);
- if (toscaNameSpaces.contains(toscaNameSpace)) {
- break;
- }
- toscaNameSpaces.add(toscaNameSpace);
-
- String nodeTypeTemplateYamlName =null;
- if(nestedServiceTemplatesMap.containsKey(nodeTypeFullName)){
- nodeTypeTemplateYamlName = nestedServiceTemplatesMap.get(nodeTypeFullName);
- }
-
- if (nodeTypeTemplateYamlName!=null && csar.containsKey(nodeTypeTemplateYamlName)) {
- addSubstituteToscaNamespacesRecursively(csar, nodeTypeTemplateYamlName, toscaNameSpaces, nestedServiceTemplatesMap);
- }
+ nodes.putAll(eitherNodeTypes.left().value());
}
}
+ return nodes;
}
public Either<Resource, ResponseFormat> createResourceFromCsar(Resource resource, User user, Either<Map<String, byte[]>, StorageOperationStatus> csarUIPayload, String csarUUID) {
@@ -1024,7 +955,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
String yamlFileName = toscaYamlCsarStatus.left().value().getKey();
String yamlFileContents = toscaYamlCsarStatus.left().value().getValue();
log.trace("YAML topology file found in CSAR, file name: {}, contents: {}", yamlFileName, yamlFileContents);
- Either<Resource, ResponseFormat> createResourceFromYaml = createResourceFromYaml(resource, user, yamlFileContents, yamlFileName, csar.left().value(), csarUUID);
+
+ Map<String, NodeTypeInfo> nodeTypesInfo = extractNodeTypesInfo(csar.left().value(), yamlFileContents);
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = findNodeTypeArtifactsToCreate(csar.left().value(), resource);
+ CsarInfo csarInfo = new CsarInfo(resource.getName(), user, csarUUID, csar.left().value(), false);
+ Either<Resource, ResponseFormat> createResourceFromYaml = createResourceFromYaml(resource, yamlFileContents, yamlFileName, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, true, false, null);
if (createResourceFromYaml.isRight()) {
log.debug("Couldn't create resource from YAML");
return Either.right(createResourceFromYaml.right().value());
@@ -1035,6 +970,80 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(vfResource);
}
+ @SuppressWarnings("unchecked")
+ private Map<String, NodeTypeInfo> extractNodeTypesInfo(Map<String, byte[]> csar, String yamlFileContent) {
+ Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
+ List<Entry<String, byte[]>> globalSubstitutes = new ArrayList<>();
+ for (Map.Entry<String, byte[]> entry : csar.entrySet()) {
+ if (Pattern.compile(CsarUtils.SERVICE_TEMPLATE_PATH_PATTERN).matcher(entry.getKey()).matches()) {
+ if (!isGlobalSubstitute(entry.getKey())) {
+ String yamlFileContents = new String(entry.getValue());
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(yamlFileContents);
+ Either<Object, ResultStatusEnum> substitutionMappingsEither = ImportUtils.findToscaElement(mappedToscaTemplate, ToscaTagNamesEnum.SUBSTITUTION_MAPPINGS, ToscaElementTypeEnum.MAP);
+ if (substitutionMappingsEither.isLeft()) {
+ Map<String, Object> substitutionMappings = (Map<String, Object>) substitutionMappingsEither.left().value();
+ if (substitutionMappings.containsKey(ToscaTagNamesEnum.NODE_TYPE.getElementName())) {
+ NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
+ nodeTypeInfo.setType((String) substitutionMappings.get(ToscaTagNamesEnum.NODE_TYPE.getElementName()));
+ nodeTypeInfo.setTemplateFileName(entry.getKey());
+ nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
+ nodeTypesInfo.put(nodeTypeInfo.getType(), nodeTypeInfo);
+ }
+ }
+ } else {
+ globalSubstitutes.add(entry);
+ }
+ }
+ }
+ if (CollectionUtils.isNotEmpty(globalSubstitutes)) {
+ for (Map.Entry<String, byte[]> entry : globalSubstitutes) {
+ String yamlFileContents = new String(entry.getValue());
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(yamlFileContents);
+ Either<Object, ResultStatusEnum> nodeTypesEither = ImportUtils.findToscaElement(mappedToscaTemplate, ToscaTagNamesEnum.NODE_TYPES, ToscaElementTypeEnum.MAP);
+ if (nodeTypesEither.isLeft()) {
+ Map<String, Object> nodeTypes = (Map<String, Object>) nodeTypesEither.left().value();
+ for (Entry<String, Object> nodeType : nodeTypes.entrySet()) {
+ Map<String, Object> nodeTypeMap = (Map<String, Object>) nodeType.getValue();
+ if (nodeTypeMap.containsKey(ToscaTagNamesEnum.DERIVED_FROM.getElementName())) {
+ if (nodeTypesInfo.containsKey(nodeType.getKey())) {
+ NodeTypeInfo nodeTypeInfo = nodeTypesInfo.get(nodeType.getKey());
+ List<String> derivedFrom = new ArrayList<>();
+ derivedFrom.add((String) nodeTypeMap.get(ToscaTagNamesEnum.DERIVED_FROM.getElementName()));
+ nodeTypeInfo.setDerivedFrom(derivedFrom);
+ }
+ }
+ }
+ }
+ }
+ }
+ markNestedVfc(yamlFileContent, nodeTypesInfo);
+ return nodeTypesInfo;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private void markNestedVfc(String yamlFileContent, Map<String, NodeTypeInfo> nodeTypesInfo) {
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(yamlFileContent);
+ Either<Object, ResultStatusEnum> nodeTemplatesEither = ImportUtils.findToscaElement(mappedToscaTemplate, ToscaTagNamesEnum.NODE_TEMPLATES, ToscaElementTypeEnum.MAP);
+ if (nodeTemplatesEither.isLeft()) {
+ Map<String, Object> nodeTemplates = (Map<String, Object>) nodeTemplatesEither.left().value();
+ for (Entry<String, Object> nodeTemplateEntry : nodeTemplates.entrySet()) {
+ Map<String, Object> nodeTemplate = (Map<String, Object>) nodeTemplateEntry.getValue();
+ if (nodeTemplate.containsKey(ToscaTagNamesEnum.TYPE.getElementName())) {
+ String type = (String) nodeTemplate.get(ToscaTagNamesEnum.TYPE.getElementName());
+ if (nodeTypesInfo.containsKey(type)) {
+ NodeTypeInfo nodeTypeInfo = nodeTypesInfo.get(type);
+ nodeTypeInfo.setNested(true);
+ }
+ }
+ }
+ }
+ }
+
+ private boolean isGlobalSubstitute(String fileName) {
+ return fileName.equalsIgnoreCase(Constants.GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE) || fileName.equalsIgnoreCase(Constants.ABSTRACT_SUBSTITUTE_GLOBAL_TYPES_SERVICE_TEMPLATE);
+ }
+
private Either<ImmutablePair<String, String>, ResponseFormat> validateAndParseCsar(Resource resource, User user, String csarUUID, Either<Map<String, byte[]>, StorageOperationStatus> csar) {
if (csar.isRight()) {
StorageOperationStatus value = csar.right().value();
@@ -1079,36 +1088,41 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (validateRes.isRight()) {
return Either.right(validateRes.right().value());
}
- // VF "derivedFrom" should be null (or ignored)
- if (!resource.getResourceType().equals(ResourceTypeEnum.VF)) {
+ // VF / PNF "derivedFrom" should be null (or ignored)
+ if (ToscaUtils.isAtomicType(resource)) {
Either<Boolean, ResponseFormat> validateDerivedFromNotEmpty = validateDerivedFromNotEmpty(user, resource, AuditingActionEnum.CREATE_RESOURCE);
if (validateDerivedFromNotEmpty.isRight()) {
return Either.right(validateDerivedFromNotEmpty.right().value());
}
}
- return validateResourceBeforeCreate(resource, user, AuditingActionEnum.CREATE_RESOURCE, inTransaction);
+ return validateResourceBeforeCreate(resource, user, AuditingActionEnum.CREATE_RESOURCE, inTransaction, null);
}
-
- public Either<Resource, ResponseFormat> createResourceFromYaml(Resource resource, User user, String topologyTemplateYaml, String yamlName, Map<String, byte[]> csar, String csarUUID) {
+//resource, yamlFileContents, yamlFileName, nodeTypesInfo,csarInfo, nodeTypesArtifactsToCreate, true, false, null
+ private Either<Resource, ResponseFormat> createResourceFromYaml(Resource resource, String topologyTemplateYaml, String yamlName,
+ Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo,
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate,
+ boolean shouldLock, boolean inTransaction, String nodeName) {
List<ArtifactDefinition> createdArtifacts = new ArrayList<ArtifactDefinition>();
log.trace("************* createResourceFromYaml before parse yaml ");
- Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceInfoFromYaml(yamlName, resource, topologyTemplateYaml, user);
+ Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceInfoFromYaml(yamlName, resource, topologyTemplateYaml, csarInfo.getModifier(), csarInfo.getCreatedNodesToscaResourceNames(), nodeTypesInfo, nodeName);
if (parseResourceInfoFromYamlEither.isRight()) {
ResponseFormat responseFormat = parseResourceInfoFromYamlEither.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
return Either.right(responseFormat);
}
log.trace("************* createResourceFromYaml after parse yaml ");
ParsedToscaYamlInfo parsedToscaYamlInfo = parseResourceInfoFromYamlEither.left().value();
log.debug("The parsed tosca yaml info is {}", parsedToscaYamlInfo);
log.trace("************* createResourceFromYaml before create ");
- Either<Resource, ResponseFormat> createdResourceResponse = createResourceAndRIsFromYaml(yamlName, resource, user, parsedToscaYamlInfo, AuditingActionEnum.IMPORT_RESOURCE, false, csarUUID, csar, createdArtifacts, topologyTemplateYaml);
+ Either<Resource, ResponseFormat> createdResourceResponse = createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo,
+ AuditingActionEnum.IMPORT_RESOURCE, false, createdArtifacts, topologyTemplateYaml,
+ nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName);
log.trace("************* createResourceFromYaml after create ");
if (createdResourceResponse.isRight()) {
ResponseFormat responseFormat = createdResourceResponse.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
return Either.right(responseFormat);
}
@@ -1116,47 +1130,160 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- public Either<Map<String, Resource>, ResponseFormat> createResourcesFromYamlNodeTypesList(String yamlName, Resource resource, String resourceYml, User user, boolean needLock,
- Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts) {
-
- Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(resourceYml);
+ public Either<Map<String, Resource>, ResponseFormat> createResourcesFromYamlNodeTypesList(String yamlName, Resource resource, String resourceYml, Map<String, Object> mappedToscaTemplate, boolean needLock,
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts,
+ Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo) {
Either<String, ResultStatusEnum> tosca_version = ImportUtils.findFirstToscaStringElement(mappedToscaTemplate, ToscaTagNamesEnum.TOSCA_VERSION);
if (tosca_version.isRight()) {
ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_TOSCA_TEMPLATE);
return Either.right(responseFormat);
}
-
Either<Map<String, Object>, ResultStatusEnum> eitherNodeTypes = ImportUtils.findFirstToscaMapElement(mappedToscaTemplate, ToscaTagNamesEnum.NODE_TYPES);
-
- Map<String, Resource> nodeTypesResources = new HashMap<>();
- Either<Map<String, Resource>, ResponseFormat> result = Either.left(nodeTypesResources);
-
+ Either<Map<String, Resource>, ResponseFormat> result = Either.left(csarInfo.getCreatedNodes());
Map<String, Object> mapToConvert = new HashMap<String, Object>();
mapToConvert.put(ToscaTagNamesEnum.TOSCA_VERSION.getElementName(), tosca_version.left().value());
-
+ Resource vfcCreated = null;
if (eitherNodeTypes.isLeft()) {
-
Iterator<Entry<String, Object>> nodesNameValue = eitherNodeTypes.left().value().entrySet().iterator();
-
while (nodesNameValue.hasNext()) {
-
Entry<String, Object> nodeType = nodesNameValue.next();
Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = nodeTypesArtifactsToHandle == null || nodeTypesArtifactsToHandle.isEmpty() ? null : nodeTypesArtifactsToHandle.get(nodeType.getKey());
- log.trace("************* Going to create node {}", nodeType.getKey());
- Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> resourceCreated = this.createNodeTypeResourceFromYaml(yamlName, nodeType, user, mapToConvert, resource, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts);
- log.trace("************* finished to create node {}", nodeType.getKey());
- if (resourceCreated.isRight()) {
- return Either.right(resourceCreated.right().value());
- }
- Resource vfcCreated = resourceCreated.left().value().getLeft();
- nodeTypesResources.put(nodeType.getKey(), vfcCreated);
+ if (nodeTypesInfo.containsKey(nodeType.getKey())) {
+ log.trace("************* Going to handle nested vfc {}", nodeType.getKey());
+ Either<Resource, ResponseFormat> handleNeatedVfcYaml = handleNestedVfc(resource, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeType.getKey());
+ log.trace("************* Finished to handle nested vfc {}", nodeType.getKey());
+ if (handleNeatedVfcYaml.isRight()) {
+ return Either.right(handleNeatedVfcYaml.right().value());
+ }
+ vfcCreated = handleNeatedVfcYaml.left().value();
+ } else if(csarInfo.getCreatedNodesToscaResourceNames()!= null && !csarInfo.getCreatedNodesToscaResourceNames().containsKey(nodeType.getKey())){
+ log.trace("************* Going to create node {}", nodeType.getKey());
+ Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> resourceCreated = this.createNodeTypeResourceFromYaml(yamlName, nodeType, csarInfo.getModifier(), mapToConvert, resource, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, true, csarInfo);
+ log.debug("************* Finished to create node {}", nodeType.getKey());
+
+ if (resourceCreated.isRight()) {
+ return Either.right(resourceCreated.right().value());
+ }
+ vfcCreated = resourceCreated.left().value().getLeft();
+ csarInfo.getCreatedNodesToscaResourceNames().put(nodeType.getKey(),vfcCreated.getToscaResourceName());
+ }
+ if (vfcCreated != null) {
+ csarInfo.getCreatedNodes().put(nodeType.getKey(), vfcCreated);
+ }
mapToConvert.remove(ToscaTagNamesEnum.NODE_TYPES.getElementName());
+ }
+ }
+ return result;
+ }
+
+ private Either<Resource, ResponseFormat> handleNestedVfc(Resource resource, Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodesArtifactsToHandle,
+ List<ArtifactDefinition> createdArtifacts, Map<String, NodeTypeInfo> nodesInfo, CsarInfo csarInfo, String nodeName) {
+ Either<Resource, ResponseFormat> handleNestedVfcRes = Either.left(resource);
+ String yamlName = nodesInfo.get(nodeName).getTemplateFileName();
+ String yamlContent = new String(csarInfo.getCsar().get(yamlName));
+ Map<String, Object> nestedVfcJsonMap = nodesInfo.get(nodeName).getMappedToscaTemplate();
+
+ log.debug("************* Going to create node types from yaml {}", yamlName);
+ Either<Map<String, Resource>, ResponseFormat> createNodeTypesRes = createResourcesFromYamlNodeTypesList(yamlName, resource, yamlContent,
+ nestedVfcJsonMap, false, nodesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo);
+ if (createNodeTypesRes.isRight()) {
+ log.debug("Failed to create node types from yaml {}. Status is {}", yamlName, createNodeTypesRes.right().value());
+ return Either.right(createNodeTypesRes.right().value());
+ }
+ log.debug("************* Finished to create node types from yaml {}", yamlName);
+
+ if (nestedVfcJsonMap.containsKey(ToscaTagNamesEnum.TOPOLOGY_TEMPLATE.getElementName())) {
+ log.debug("************* Going to handle complex VFC from yaml {}", yamlName);
+ handleNestedVfcRes = handleComplexVfc(resource, nodesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName, yamlContent);
+ }
+ return handleNestedVfcRes;
+ }
+
+ private Either<Resource, ResponseFormat> handleComplexVfc(Resource resource, Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodesArtifactsToHandle, List<ArtifactDefinition> createdArtifacts,
+ Map<String, NodeTypeInfo> nodesInfo, CsarInfo csarInfo, String nodeName, String yamlName, String yamlContent) {
+
+ Either<Resource, ResponseFormat> result = null;
+ Resource oldComplexVfc = null;
+ Resource newComplexVfc = null;
+
+ Either<Resource, ResponseFormat> buildCvfcRes = buildValidComplexVfc(resource, csarInfo, nodeName, nodesInfo);
+ if(buildCvfcRes.isRight()){
+ log.debug("Failed to validate complex VFC for node {}. ", nodeName);
+ result = buildCvfcRes;
+ }
+ if(result == null){
+ newComplexVfc = buildCvfcRes.left().value();
+ if(csarInfo.isUpdate()){
+ Either<Resource, StorageOperationStatus> oldComplexVfcRes = toscaOperationFacade.getLatestByToscaResourceName(newComplexVfc.getToscaResourceName());
+ if(oldComplexVfcRes.isRight() && oldComplexVfcRes.right().value() != StorageOperationStatus.NOT_FOUND){
+ log.debug("Failed to fetch previous complex VFC by tosca resource name {}. Status is {}. ", newComplexVfc.getToscaResourceName(), oldComplexVfcRes.right().value());
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
+ } else if(oldComplexVfcRes.isLeft()){
+ oldComplexVfc = oldComplexVfcRes.left().value();
+ }
+ }
+ }
+ if(result == null){
+ result = handleComplexVfc(nodesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName, yamlContent, oldComplexVfc, newComplexVfc);
+ }
+ if(result.isLeft()){
+ newComplexVfc = result.left().value();
+ csarInfo.getCreatedNodesToscaResourceNames().put(nodeName, newComplexVfc.getToscaResourceName());
+ LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction("certification on import", LifecycleChanceActionEnum.CREATE_FROM_CSAR);
+ log.debug("Going to certify cvfc {}. ", newComplexVfc.getName());
+ result = propagateStateToCertified(csarInfo.getModifier(), newComplexVfc, lifecycleChangeInfo, true, false, true);
+ if (result.isRight()) {
+ log.debug("Failed to certify complex VFC resource {}. ", newComplexVfc.getName());
+ }
+ }
+ if(result.isLeft()){
+ csarInfo.getCreatedNodes().put(nodeName, result.left().value());
+ csarInfo.getCvfcToCreateQueue().remove();
+ }
+ return result;
+ }
+
+ private Either<Resource, ResponseFormat> handleComplexVfc(Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodesArtifactsToHandle, List<ArtifactDefinition> createdArtifacts, Map<String, NodeTypeInfo> nodesInfo,
+ CsarInfo csarInfo, String nodeName, String yamlName, String yamlContent, Resource oldComplexVfc, Resource newComplexVfc) {
+
+ Either<Resource, ResponseFormat> handleComplexVfcRes;
+ Map<String, NodeTypeInfo> newNodeTypesInfo = nodesInfo.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().getUnmarkedCopy()));
+ markNestedVfc(yamlContent, newNodeTypesInfo);
+ if(oldComplexVfc == null){
+ handleComplexVfcRes = createResourceFromYaml(newComplexVfc, yamlContent, yamlName, newNodeTypesInfo, csarInfo, nodesArtifactsToHandle, false, true, nodeName);
+ if (handleComplexVfcRes.isRight()) {
+ log.debug("Failed to create resource {} from YAML {}. ", newComplexVfc.getName(), yamlName);
+ }
+ } else {
+ handleComplexVfcRes = updateResourceFromYaml(oldComplexVfc, newComplexVfc, AuditingActionEnum.UPDATE_RESOURCE_METADATA, createdArtifacts, true, yamlContent, yamlName, csarInfo, newNodeTypesInfo, nodesArtifactsToHandle, nodeName);
+ if (handleComplexVfcRes.isRight()) {
+ log.debug("Failed to update resource {} from YAML {}. ", oldComplexVfc.getName(), yamlName);
}
}
+ return handleComplexVfcRes;
+ }
+ private Either<Resource, ResponseFormat> buildValidComplexVfc(Resource resource, CsarInfo csarInfo, String nodeName, Map<String, NodeTypeInfo> nodesInfo) {
+
+ Either<Resource, ResponseFormat> result = null;
+ Resource complexVfc = buildComplexVfcMetadata(resource, csarInfo, nodeName, nodesInfo);
+ log.debug("************* Going to validate complex VFC from yaml {}", complexVfc.getName());
+
+ if(!csarInfo.getCvfcToCreateQueue().contains(nodeName)){
+ csarInfo.getCvfcToCreateQueue().add(nodeName);
+ } else {
+ log.debug("Failed to validate complex VFC {}. Loop detected, VSP {}. ", complexVfc.getName(), csarInfo.getVfResourceName());
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.CFVC_LOOP_DETECTED, csarInfo.getVfResourceName(), complexVfc.getName()));
+ }
+ if(result == null){
+ result = validateResourceBeforeCreate(complexVfc, csarInfo.getModifier(), AuditingActionEnum.IMPORT_RESOURCE, true, csarInfo);
+ if(result.isRight()){
+ log.debug("Failed to validate complex VFC {}. ", complexVfc.getName());
+ }
+ }
return result;
}
@@ -1168,40 +1295,35 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createNodeTypeResourceFromYaml(String yamlName, Entry<String, Object> nodeNameValue, User user, Map<String, Object> mapToConvert, Resource resourceVf, boolean needLock,
- Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts) {
+ Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts, boolean forceCertificationAllowed, CsarInfo csarInfo) {
Either<UploadResourceInfo, ResponseFormat> resourceMetaData = fillResourceMetadata(yamlName, resourceVf, nodeNameValue.getKey(), user);
if (resourceMetaData.isRight()) {
return Either.right(resourceMetaData.right().value());
}
+ String singleVfcYaml = buildNodeTypeYaml(nodeNameValue, mapToConvert, resourceMetaData.left().value().getResourceType(), csarInfo.getVfResourceName());
+
+ Either<User, ResponseFormat> eitherCreator = validateUser(user, "CheckIn Resource", resourceVf, AuditingActionEnum.CHECKIN_RESOURCE, true);
+ if (eitherCreator.isRight()) {
+ return Either.right(eitherCreator.right().value());
+ }
+ user = eitherCreator.left().value();
+
+ return this.createResourceFromNodeType(singleVfcYaml, resourceMetaData.left().value(), user, true, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo);
+ }
+ private String buildNodeTypeYaml(Entry<String, Object> nodeNameValue, Map<String, Object> mapToConvert, String nodeResourceType, String csarVfName) {
// We need to create a Yaml from each node_types in order to create
// resource from each node type using import normative flow.
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(options);
- Map<String, Object> singleVfc = new HashMap<>();
-
- String actualName = this.getNodeTypeActualName(nodeNameValue.getKey());
- if (!actualName.startsWith(Constants.ABSTRACT)) {
- actualName = "." + Constants.ABSTRACT + actualName;
- }
-
- // Setting tosca name
- String toscaResourceName = ImportUtils.Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + resourceMetaData.left().value().getResourceType().toLowerCase() + '.' + resourceVf.getSystemName() + actualName;
- singleVfc.put(toscaResourceName, nodeNameValue.getValue());
- mapToConvert.put(ToscaTagNamesEnum.NODE_TYPES.getElementName(), singleVfc);
-
- String singleVfcYaml = yaml.dumpAsMap(mapToConvert);
-
- Either<User, ResponseFormat> eitherCreator = validateUser(user, "CheckIn Resource", resourceVf, AuditingActionEnum.CHECKIN_RESOURCE, true);
- if (eitherCreator.isRight()) {
- return Either.right(eitherCreator.right().value());
- }
- user = eitherCreator.left().value();
+ Map<String, Object> node = new HashMap<>();
+ node.put(buildNestedToscaResourceName(nodeResourceType, csarVfName, nodeNameValue.getKey()), nodeNameValue.getValue());
+ mapToConvert.put(ToscaTagNamesEnum.NODE_TYPES.getElementName(), node);
- return this.createResourceFromNodeType(singleVfcYaml, resourceMetaData.left().value(), user, true, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts);
+ return yaml.dumpAsMap(mapToConvert);
}
public Either<Boolean, ResponseFormat> validateResourceCreationFromNodeType(Resource resource, User creator) {
@@ -1214,25 +1336,25 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResourceFromNodeType(String nodeTypeYaml, UploadResourceInfo resourceMetaData, User creator, boolean isInTransaction, boolean needLock,
- Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts) {
+ Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts, boolean forceCertificationAllowed, CsarInfo csarInfo) {
LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction("certification on import", LifecycleChanceActionEnum.CREATE_FROM_CSAR);
Function<Resource, Either<Boolean, ResponseFormat>> validator = (resource) -> this.validateResourceCreationFromNodeType(resource, creator);
- return this.resourceImportManager.importCertifiedResource(nodeTypeYaml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, true, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts);
+ return this.resourceImportManager.importCertifiedResource(nodeTypeYaml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, true, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo);
}
- private Either<UploadResourceInfo, ResponseFormat> fillResourceMetadata(String yamlName, Resource resourceVf, String nodeTypeName, User user) {
+ private Either<UploadResourceInfo, ResponseFormat> fillResourceMetadata(String yamlName, Resource resourceVf, String nodeName, User user) {
UploadResourceInfo resourceMetaData = new UploadResourceInfo();
// validate nodetype name prefix
- if (!nodeTypeName.startsWith(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX)) {
- log.debug("invalid nodeTypeName:{} does not start with {}.", nodeTypeName, Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX);
- ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, resourceMetaData.getName(), nodeTypeName);
+ if (!nodeName.startsWith(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX)) {
+ log.debug("invalid nodeName:{} does not start with {}.", nodeName, Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX);
+ ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, resourceMetaData.getName(), nodeName);
return Either.right(responseFormat);
}
- String actualName = this.getNodeTypeActualName(nodeTypeName);
- String namePrefix = nodeTypeName.replace(actualName, "");
+ String actualName = this.getNodeTypeActualName(nodeName);
+ String namePrefix = nodeName.replace(actualName, "");
String resourceType = namePrefix.substring(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX.length());
// if we import from csar, the node_type name can be
@@ -1244,7 +1366,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// validating type
if (!ResourceTypeEnum.containsName(resourceType.toUpperCase())) {
log.debug("invalid resourceType:{} the type is not one of the valide types:{}.", resourceType.toUpperCase(), ResourceTypeEnum.values());
- ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, resourceMetaData.getName(), nodeTypeName);
+ ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, resourceMetaData.getName(), nodeName);
return Either.right(responseFormat);
}
@@ -1279,20 +1401,68 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(resourceMetaData);
}
- private Either<Resource, ResponseFormat> createResourceAndRIsFromYaml(String yamlName, Resource resource, User user, ParsedToscaYamlInfo parsedToscaYamlInfo, AuditingActionEnum actionEnum, boolean isNormative, String csarUUID,
- Map<String, byte[]> csar, List<ArtifactDefinition> createdArtifacts, String topologyTemplateYaml) {
+ private Resource buildComplexVfcMetadata(Resource resourceVf, CsarInfo csarInfo, String nodeName, Map<String, NodeTypeInfo> nodesInfo) {
+ Resource cvfc = new Resource();
+ NodeTypeInfo nodeTypeInfo = nodesInfo.get(nodeName);
+ cvfc.setName(buildCvfcName(csarInfo.getVfResourceName(), nodeName));
+ cvfc.setNormalizedName(ValidationUtils.normaliseComponentName(cvfc.getName()));
+ cvfc.setSystemName(ValidationUtils.convertToSystemName(cvfc.getName()));
+ cvfc.setResourceType(ResourceTypeEnum.CVFC);
+ cvfc.setAbstract(true);
+ cvfc.setDerivedFrom(nodeTypeInfo.getDerivedFrom());
+ cvfc.setDescription(ImportUtils.Constants.CVFC_DESCRIPTION);
+ cvfc.setIcon(ImportUtils.Constants.DEFAULT_ICON);
+ cvfc.setContactId(csarInfo.getModifier().getUserId());
+ cvfc.setCreatorUserId(csarInfo.getModifier().getUserId());
+ cvfc.setVendorName(resourceVf.getVendorName());
+ cvfc.setVendorRelease(resourceVf.getVendorRelease());
+ cvfc.setResourceVendorModelNumber(resourceVf.getResourceVendorModelNumber());
+ cvfc.setToscaResourceName(buildNestedToscaResourceName(ResourceTypeEnum.VFC.name(), csarInfo.getVfResourceName(), nodeName));
+ cvfc.setInvariantUUID(UniqueIdBuilder.buildInvariantUUID());
+
+ List<String> tags = new ArrayList<>();
+ tags.add(cvfc.getName());
+ cvfc.setTags(tags);
+
+ CategoryDefinition category = new CategoryDefinition();
+ category.setName(ImportUtils.Constants.ABSTRACT_CATEGORY_NAME);
+ SubCategoryDefinition subCategory = new SubCategoryDefinition();
+ subCategory.setName(ImportUtils.Constants.ABSTRACT_SUBCATEGORY);
+ category.addSubCategory(subCategory);
+ List<CategoryDefinition> categories = new ArrayList<>();
+ categories.add(category);
+ cvfc.setCategories(categories);
+
+ cvfc.setVersion(ImportUtils.Constants.FIRST_NON_CERTIFIED_VERSION);
+ cvfc.setLifecycleState(ImportUtils.Constants.NORMATIVE_TYPE_LIFE_CYCLE_NOT_CERTIFIED_CHECKOUT);
+ cvfc.setHighestVersion(ImportUtils.Constants.NORMATIVE_TYPE_HIGHEST_VERSION);
+
+ return cvfc;
+ }
+
+ private String buildCvfcName(String resourceVfName, String nodeName) {
+ String nameWithouNamespacePrefix = nodeName.substring(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX.length());
+ String[] findTypes = nameWithouNamespacePrefix.split("\\.");
+ String resourceType = findTypes[0];
+ return resourceVfName + "-" + nameWithouNamespacePrefix.substring(resourceType.length() + 1);
+ }
+
+ private Either<Resource, ResponseFormat> createResourceAndRIsFromYaml(String yamlName, Resource resource, ParsedToscaYamlInfo parsedToscaYamlInfo, AuditingActionEnum actionEnum, boolean isNormative,
+ List<ArtifactDefinition> createdArtifacts, String topologyTemplateYaml, Map<String, NodeTypeInfo> nodeTypesInfo,
+ CsarInfo csarInfo, Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate,
+ boolean shouldLock, boolean inTransaction, String nodeName) {
boolean result = true;
- boolean inTransaction = true;
- Map<String, Resource> createdVfcs = new HashMap<>();
List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
- Either<Boolean, ResponseFormat> lockResult = lockComponentByName(resource.getSystemName(), resource, "Create Resource");
- if (lockResult.isRight()) {
- ResponseFormat responseFormat = lockResult.right().value();
- return Either.right(responseFormat);
- }
- log.debug("name is locked {} status = {}", resource.getSystemName(), lockResult);
+ if (shouldLock) {
+ Either<Boolean, ResponseFormat> lockResult = lockComponentByName(resource.getSystemName(), resource, "Create Resource");
+ if (lockResult.isRight()) {
+ ResponseFormat responseFormat = lockResult.right().value();
+ return Either.right(responseFormat);
+ }
+ log.debug("name is locked {} status = {}", resource.getSystemName(), lockResult);
+ }
try {
log.trace("************* createResourceFromYaml before full create resource {}", yamlName);
Either<Resource, ResponseFormat> genericResourceEither = fetchAndSetDerivedFromGenericType(resource);
@@ -1300,7 +1470,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
result = false;
return genericResourceEither;
}
- Either<Resource, ResponseFormat> createResourcesEither = createResourceTransaction(resource, user, isNormative, inTransaction);
+ Either<Resource, ResponseFormat> createResourcesEither = createResourceTransaction(resource, csarInfo.getModifier(), isNormative, inTransaction);
log.trace("************* createResourceFromYaml after full create resource {}", yamlName);
if (createResourcesEither.isRight()) {
result = false;
@@ -1313,7 +1483,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
generateInputsFromGenericTypeProperties(resource, genericResourceEither.left().value());
Map<String, InputDefinition> inputs = parsedToscaYamlInfo.getInputs();
- Either<Resource, ResponseFormat> createInputsOnResource = createInputsOnResource(resource, user, inputs, inTransaction);
+ Either<Resource, ResponseFormat> createInputsOnResource = createInputsOnResource(resource, csarInfo.getModifier(), inputs, inTransaction);
if (createInputsOnResource.isRight()) {
result = false;
return createInputsOnResource;
@@ -1323,7 +1493,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = parsedToscaYamlInfo.getInstances();
log.trace("************* Going to create nodes, RI's and Relations from yaml {}", yamlName);
- createResourcesEither = createRIAndRelationsFromYaml(yamlName, resource, user, uploadComponentInstanceInfoMap, actionEnum, topologyTemplateYaml, csar, csarUUID, nodeTypesNewCreatedArtifacts, createdVfcs);
+
+ createResourcesEither = createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap, actionEnum, topologyTemplateYaml,
+ nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName);
log.trace("************* Finished to create nodes, RI and Relation from yaml {}", yamlName);
if (createResourcesEither.isRight()) {
result = false;
@@ -1346,7 +1518,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
} else {
groups = parsedToscaYamlInfo.getGroups();
}
- Either<Resource, ResponseFormat> createGroupsOnResource = createGroupsOnResource(resource, user, groups);
+ Either<Resource, ResponseFormat> createGroupsOnResource = createGroupsOnResource(resource, csarInfo.getModifier(), groups);
if (createGroupsOnResource.isRight()) {
result = false;
return createGroupsOnResource;
@@ -1355,43 +1527,54 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
log.trace("************* Finished to add groups from yaml {}", yamlName);
log.trace("************* Going to add artifacts from yaml {}", yamlName);
- Either<Resource, ResponseFormat> createdCsarArtifactsEither = this.handleCsarArtifacts(resource, user, csarUUID, csar, createdArtifacts, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Create), false,
- inTransaction);
- log.trace("************* Finished to add artifacts from yaml {}", yamlName);
- if (createdCsarArtifactsEither.isRight()) {
- result = false;
- return createdCsarArtifactsEither;
- }
- resource = createdCsarArtifactsEither.left().value();
+ if(resource.getResourceType() == ResourceTypeEnum.CVFC){
+ if(nodeTypesArtifactsToCreate.containsKey(nodeName) && nodeTypesArtifactsToCreate.get(nodeName) !=null && !nodeTypesArtifactsToCreate.get(nodeName).isEmpty()){
+ Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes =
+ handleNodeTypeArtifacts(resource, nodeTypesArtifactsToCreate.get(nodeName), nodeTypesNewCreatedArtifacts, csarInfo.getModifier(), true, false);
+ if(handleNodeTypeArtifactsRes.isRight()){
+ return Either.right(handleNodeTypeArtifactsRes.right().value());
+ }
+ }
+ } else {
+ Either<Resource, ResponseFormat> createdCsarArtifactsEither = this.handleVfCsarArtifacts(resource, csarInfo, createdArtifacts, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Create), false,
+ inTransaction);
+ log.trace("************* Finished to add artifacts from yaml {}", yamlName);
+ if (createdCsarArtifactsEither.isRight()) {
+ result = false;
+ return createdCsarArtifactsEither;
+ }
+ resource = createdCsarArtifactsEither.left().value();
+ }
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.CREATED);
- componentsUtils.auditResource(responseFormat, user, resource, "", "", actionEnum, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", actionEnum, null);
ASDCKpiApi.countCreatedResourcesKPI();
return Either.left(resource);
} finally {
- if (!result) {
- log.warn("operation failed. do rollback");
- titanDao.rollback();
- if (!createdArtifacts.isEmpty() || !nodeTypesNewCreatedArtifacts.isEmpty()) {
- createdArtifacts.addAll(nodeTypesNewCreatedArtifacts);
- StorageOperationStatus deleteFromEsRes = artifactsBusinessLogic.deleteAllComponentArtifactsIfNotOnGraph(createdArtifacts);
- if (!deleteFromEsRes.equals(StorageOperationStatus.OK)) {
- ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteFromEsRes);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(actionStatus, resource.getName());
+ if (!inTransaction) {
+ if (!result) {
+ log.warn("operation failed. do rollback");
+ titanDao.rollback();
+ if (!createdArtifacts.isEmpty() || !nodeTypesNewCreatedArtifacts.isEmpty()) {
+ createdArtifacts.addAll(nodeTypesNewCreatedArtifacts);
+ StorageOperationStatus deleteFromEsRes = artifactsBusinessLogic.deleteAllComponentArtifactsIfNotOnGraph(createdArtifacts);
+ if (!deleteFromEsRes.equals(StorageOperationStatus.OK)) {
+ ActionStatus actionStatus = componentsUtils.convertFromStorageResponse(deleteFromEsRes);
+ return Either.right(componentsUtils.getResponseFormat(actionStatus, resource.getName()));
+ }
+ log.debug("component and all its artifacts were deleted, id = {}", resource.getName());
}
- log.debug("component and all its artifacts were deleted, id = {}", resource.getName());
- }
- } else {
- log.debug("operation success. do commit");
- titanDao.commit();
+ } else {
+ log.debug("operation success. do commit");
+ titanDao.commit();
+ }
+ }
+ if (shouldLock) {
+ graphLockOperation.unlockComponentByName(resource.getSystemName(), resource.getUniqueId(), NodeTypeEnum.Resource);
}
-
- graphLockOperation.unlockComponentByName(resource.getSystemName(), resource.getUniqueId(), NodeTypeEnum.Resource);
-
}
-
}
private Either<Resource, ResponseFormat> createGroupsOnResource(Resource resource, User user, Map<String, GroupDefinition> groups) {
@@ -1493,11 +1676,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<Resource, ResponseFormat> createInputsOnResource(Resource resource, User user, Map<String, InputDefinition> inputs, boolean inTransaction) {
- if (inputs != null && false == inputs.isEmpty()) {
+ List<InputDefinition> resourceProperties = resource.getInputs();
+ if ( (inputs != null && false == inputs.isEmpty()) || (resourceProperties != null && false == resourceProperties.isEmpty()) ) {
- Either<List<InputDefinition>, ResponseFormat> createGroups = inputsBusinessLogic.createInputsInGraph(inputs, resource, user, inTransaction);
- if (createGroups.isRight()) {
- return Either.right(createGroups.right().value());
+ Either<List<InputDefinition>, ResponseFormat> createInputs = inputsBusinessLogic.createInputsInGraph(inputs, resource, user, inTransaction);
+ if (createInputs.isRight()) {
+ return Either.right(createInputs.right().value());
}
} else {
return Either.left(resource);
@@ -1618,12 +1802,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// Filtered Members Of Current Group containing only members which
// are groups
List<String> currGroupFilteredMembers = currGroupMembers.stream().
- // Keep Only Elements of type group and not Resource Instances
- filter(innerGroupName -> allGroups.containsKey(innerGroupName)).
+ // Keep Only Elements of type group and not Resource Instances
+ filter(innerGroupName -> allGroups.containsKey(innerGroupName)).
// Add Filtered Elements to main Set
- peek(innerGroupName -> allGroupMembers.add(innerGroupName)).
+ peek(innerGroupName -> allGroupMembers.add(innerGroupName)).
// Collect results
- collect(Collectors.toList());
+ collect(Collectors.toList());
// Recursively call the method for all the filtered group members
for (String innerGroupName : currGroupFilteredMembers) {
@@ -1649,35 +1833,33 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (!stop) {
final Set<String> allMembers = allGroups.get(groupName).getMembers().keySet();
Set<String> membersOfTypeGroup = allMembers.stream().
- // Filter In Only Group members
- filter(innerGroupName -> allGroups.containsKey(innerGroupName)).
+ // Filter In Only Group members
+ filter(innerGroupName -> allGroups.containsKey(innerGroupName)).
// Collect
- collect(Collectors.toSet());
+ collect(Collectors.toSet());
stop = allGroupMembers.containsAll(membersOfTypeGroup);
}
return stop;
}
- private Either<Resource, ResponseFormat> createRIAndRelationsFromYaml(String yamlName, Resource resource, User user, Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap, AuditingActionEnum actionEnum,
- String topologyTemplateYaml, Map<String, byte[]> csar, String csarUUID, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts, Map<String, Resource> createdVfcs) {
+ private Either<Resource, ResponseFormat> createRIAndRelationsFromYaml(String yamlName, Resource resource, Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap, AuditingActionEnum actionEnum,
+ String topologyTemplateYaml, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts,
+ Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo, Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate,
+ String nodeName) {
Either<Resource, ResponseFormat> result;
Either<Resource, ResponseFormat> createResourcesInstancesEither;
- Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = findNodeTypeArtifactsToCreate(csar, yamlName, resource, uploadComponentInstanceInfoMap);
-
log.debug("************* Going to create all nodes {}", yamlName);
- Either<Map<String, Resource>, ResponseFormat> createdResourcesFromdNodeTypeMap = this.handleNodeTypes(yamlName, resource, user, topologyTemplateYaml, csar, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts);
+ Either<Map<String, Resource>, ResponseFormat> createdResourcesFromdNodeTypeMap = this.handleNodeTypes(yamlName, resource, topologyTemplateYaml, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
log.debug("************* Finished to create all nodes {}", yamlName);
if (createdResourcesFromdNodeTypeMap.isRight()) {
log.debug("failed to resources from node types status is {}", createdResourcesFromdNodeTypeMap.right().value());
return Either.right(createdResourcesFromdNodeTypeMap.right().value());
}
- createdVfcs.putAll(createdResourcesFromdNodeTypeMap.left().value());
-
log.debug("************* Going to create all resource instances {}", yamlName);
- createResourcesInstancesEither = createResourceInstances(user, yamlName, resource, uploadComponentInstanceInfoMap, true, false, createdResourcesFromdNodeTypeMap.left().value());
+ createResourcesInstancesEither = createResourceInstances(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap, true, false, csarInfo.getCreatedNodes());
log.debug("************* Finished to create all resource instances {}", yamlName);
if (createResourcesInstancesEither.isRight()) {
@@ -1687,7 +1869,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
resource = createResourcesInstancesEither.left().value();
log.debug("************* Going to create all relations {}", yamlName);
- createResourcesInstancesEither = createResourceInstancesRelations(user, yamlName, resource, uploadComponentInstanceInfoMap, true, false);
+ createResourcesInstancesEither = createResourceInstancesRelations(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap, true, false);
log.debug("************* Finished to create all relations {}", yamlName);
@@ -1700,44 +1882,21 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
log.debug("************* Going to create positions {}", yamlName);
- Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(resource, user.getUserId());
+ Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(resource, csarInfo.getModifier().getUserId());
log.debug("************* Finished to set positions {}", yamlName);
result = eitherSetPosition.isRight() ? Either.right(eitherSetPosition.right().value()) : Either.left(resource);
return result;
}
- private Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> findNodeTypeArtifactsToCreate(Map<String, byte[]> csar, String yamlName, Resource resource, Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap) {
+ private Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> findNodeTypeArtifactsToCreate(Map<String, byte[]> csar, Resource resource) {
Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = CsarUtils.extractVfcsArtifactsFromCsar(csar);
- List<ImmutablePair<ImmutablePair<String, List<String>>, String>> extractedVfcToscaNames = extractVfcToscaNames(csar, yamlName, resource.getSystemName(), uploadComponentInstanceInfoMap);
- validateNodeTypeIdentifiers(extractedVfcsArtifacts, extractedVfcToscaNames);
- Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = null;
- if (!extractedVfcsArtifacts.isEmpty() && !extractedVfcToscaNames.isEmpty()) {
- for (ImmutablePair<ImmutablePair<String, List<String>>, String> currToscaNamePair : extractedVfcToscaNames) {
- EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>> curNodeTypeArtifacts = null;
- String currVfcToscaNamespace = currToscaNamePair.getKey().getKey();
- List<String> relatedVfcs = currToscaNamePair.getKey().getValue();
- List<ArtifactDefinition> currArtifactList = null;
-
- for (String currSubstitute : relatedVfcs) {
- if (extractedVfcsArtifacts.containsKey(currSubstitute)) {
- if (MapUtils.isEmpty(curNodeTypeArtifacts)) {
- curNodeTypeArtifacts = new EnumMap<>(ArtifactOperationEnum.class);
- currArtifactList = new ArrayList<>();
- curNodeTypeArtifacts.put(ArtifactOperationEnum.Create, currArtifactList);
- } else {
- currArtifactList = curNodeTypeArtifacts.get(ArtifactOperationEnum.Create);
- }
- handleAndAddExtractedVfcsArtifacts(currArtifactList, extractedVfcsArtifacts.get(currSubstitute));
- }
- }
-
- if (nodeTypesArtifactsToHandle == null) {
- nodeTypesArtifactsToHandle = new HashMap<>();
- }
- nodeTypesArtifactsToHandle.put(currVfcToscaNamespace, curNodeTypeArtifacts);
- }
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
+ for (Map.Entry<String, List<ArtifactDefinition>> currArts : extractedVfcsArtifacts.entrySet()) {
+ EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>> artifactsToCreate = new EnumMap<>(ArtifactOperationEnum.class);
+ artifactsToCreate.put(ArtifactOperationEnum.Create, currArts.getValue());
+ nodeTypesArtifactsToHandle.put(currArts.getKey(), artifactsToCreate);
}
return nodeTypesArtifactsToHandle;
}
@@ -1754,47 +1913,51 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<Map<String, Resource>, ResponseFormat> handleNodeTypes(String yamlName, Resource resource, User user, String topologyTemplateYaml, Map<String, byte[]> csar, boolean needLock,
- Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts) {
-
- Map<String, Resource> createdResourcesFromdNodeTypeMap = new HashMap<>();
- Either<Map<String, Resource>, ResponseFormat> result = Either.left(createdResourcesFromdNodeTypeMap);
+ @SuppressWarnings("unchecked")
+ private Either<Map<String, Resource>, ResponseFormat> handleNodeTypes(String yamlName, Resource resource, String topologyTemplateYaml, boolean needLock,
+ Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts,
+ Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo, String nodeName) {
- String yamlFileName = Constants.GLOBAL_SUBSTITUTION_TYPES_SERVICE_TEMPLATE;
+ Either<Map<String, Resource>, ResponseFormat> result = Either.left(csarInfo.getCreatedNodes());
+ for (Entry<String, NodeTypeInfo> nodeTypeEntry : nodeTypesInfo.entrySet()) {
+ if (nodeTypeEntry.getValue().isNested()) {
- if (csar != null && csar.containsKey(yamlFileName)) {
- byte[] yamlFileBytes = csar.get(yamlFileName);
- String globalTypesYaml = new String(yamlFileBytes, StandardCharsets.UTF_8);
- Either<Map<String, Resource>, ResponseFormat> createdNodeTypesFromGlobalTypesTemplateEither = this.createResourcesFromYamlNodeTypesList(yamlFileName, resource, globalTypesYaml, user, needLock, nodeTypesArtifactsToHandle,
- nodeTypesNewCreatedArtifacts);
- if (createdNodeTypesFromGlobalTypesTemplateEither.isRight()) {
- ResponseFormat responseFormat = createdNodeTypesFromGlobalTypesTemplateEither.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
- return Either.right(responseFormat);
+ Either<Resource, ResponseFormat> createResourceFromYaml = handleNestedVfc(resource, nodeTypesArtifactsToHandle,
+ nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypeEntry.getKey());
+ log.trace("************* finished to create node {}", nodeTypeEntry.getKey());
+ if (createResourceFromYaml.isRight()) {
+ return Either.right(createResourceFromYaml.right().value());
+ }
}
- createdResourcesFromdNodeTypeMap.putAll(createdNodeTypesFromGlobalTypesTemplateEither.left().value());
}
-
- Either<Map<String, Resource>, ResponseFormat> createdNodeTypeFromMainTemplateEither = createResourcesFromYamlNodeTypesList(yamlName, resource, topologyTemplateYaml, user, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts);
+
+ Map<String, Object> mappedToscaTemplate = null;
+ if(StringUtils.isNotEmpty(nodeName) && MapUtils.isNotEmpty(nodeTypesInfo) && nodeTypesInfo.containsKey(nodeName)){
+ mappedToscaTemplate = nodeTypesInfo.get(nodeName).getMappedToscaTemplate();
+ }
+ if(MapUtils.isEmpty(mappedToscaTemplate)){
+ mappedToscaTemplate = (Map<String, Object>) new Yaml().load(topologyTemplateYaml);
+ }
+
+ Either<Map<String, Resource>, ResponseFormat> createdNodeTypeFromMainTemplateEither = createResourcesFromYamlNodeTypesList(yamlName, resource, topologyTemplateYaml, mappedToscaTemplate, needLock, nodeTypesArtifactsToHandle,
+ nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo);
if (createdNodeTypeFromMainTemplateEither.isRight()) {
ResponseFormat responseFormat = createdNodeTypeFromMainTemplateEither.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
return Either.right(responseFormat);
}
- createdResourcesFromdNodeTypeMap.putAll(createdNodeTypeFromMainTemplateEither.left().value());
-
// add the created node types to the cache although they are not in the
// graph.
- createdResourcesFromdNodeTypeMap.values().stream().forEach(p -> cacheManagerOperation.storeComponentInCache(p, NodeTypeEnum.Resource));
+ csarInfo.getCreatedNodes().values().stream().forEach(p -> cacheManagerOperation.storeComponentInCache(p, NodeTypeEnum.Resource));
return result;
}
- private Either<Resource, ResponseFormat> handleCsarArtifacts(Resource resource, User user, String csarUUID, Map<String, byte[]> csar, List<ArtifactDefinition> createdArtifacts, ArtifactOperationInfo artifactOperation, boolean shouldLock,
- boolean inTransaction) {
+ private Either<Resource, ResponseFormat> handleVfCsarArtifacts(Resource resource, CsarInfo csarInfo, List<ArtifactDefinition> createdArtifacts, ArtifactOperationInfo artifactOperation, boolean shouldLock,
+ boolean inTransaction) {
- if (csar != null) {
+ if (csarInfo.getCsar() != null) {
String vendorLicenseModelId = null;
String vfLicenseModelId = null;
@@ -1811,26 +1974,26 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
// Specific Behavior for license artifacts
- createOrUpdateSingleNonMetaArtifact(resource, user, csarUUID, csar, CsarUtils.ARTIFACTS_PATH + Constants.VENDOR_LICENSE_MODEL, Constants.VENDOR_LICENSE_MODEL, ArtifactTypeEnum.VENDOR_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
+ createOrUpdateSingleNonMetaArtifact(resource, csarInfo, CsarUtils.ARTIFACTS_PATH + Constants.VENDOR_LICENSE_MODEL, Constants.VENDOR_LICENSE_MODEL, ArtifactTypeEnum.VENDOR_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
Constants.VENDOR_LICENSE_LABEL, Constants.VENDOR_LICENSE_DISPLAY_NAME, Constants.VENDOR_LICENSE_DESCRIPTION, vendorLicenseModelId, artifactOperation, null, shouldLock, inTransaction);
- createOrUpdateSingleNonMetaArtifact(resource, user, csarUUID, csar, CsarUtils.ARTIFACTS_PATH + Constants.VF_LICENSE_MODEL, Constants.VF_LICENSE_MODEL, ArtifactTypeEnum.VF_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
+ createOrUpdateSingleNonMetaArtifact(resource, csarInfo, CsarUtils.ARTIFACTS_PATH + Constants.VF_LICENSE_MODEL, Constants.VF_LICENSE_MODEL, ArtifactTypeEnum.VF_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
Constants.VF_LICENSE_LABEL, Constants.VF_LICENSE_DISPLAY_NAME, Constants.VF_LICENSE_DESCRIPTION, vfLicenseModelId, artifactOperation, null, shouldLock, inTransaction);
- Either<Resource, ResponseFormat> eitherCreateResult = createOrUpdateNonMetaArtifacts(csarUUID, csar, resource, user, createdArtifacts, shouldLock, inTransaction, artifactOperation);
+ Either<Resource, ResponseFormat> eitherCreateResult = createOrUpdateNonMetaArtifacts(csarInfo, resource, createdArtifacts, shouldLock, inTransaction, artifactOperation);
if (eitherCreateResult.isRight()) {
return Either.right(eitherCreateResult.right().value());
}
- Either<ImmutablePair<String, String>, ResponseFormat> artifacsMetaCsarStatus = CsarValidationUtils.getArtifactsMeta(csar, csarUUID, componentsUtils);
+ Either<ImmutablePair<String, String>, ResponseFormat> artifacsMetaCsarStatus = CsarValidationUtils.getArtifactsMeta(csarInfo.getCsar(), csarInfo.getCsarUUID(), componentsUtils);
if (artifacsMetaCsarStatus.isLeft()) {
String artifactsFileName = artifacsMetaCsarStatus.left().value().getKey();
String artifactsContents = artifacsMetaCsarStatus.left().value().getValue();
Either<Resource, ResponseFormat> createArtifactsFromCsar = Either.left(resource);
if (artifactOperation.getArtifactOperationEnum() == ArtifactOperationEnum.Create)
- createArtifactsFromCsar = createResourceArtifactsFromCsar(csarUUID, csar, resource, user, artifactsContents, artifactsFileName, createdArtifacts, shouldLock, inTransaction);
+ createArtifactsFromCsar = createResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts, shouldLock, inTransaction);
else
- createArtifactsFromCsar = updateResourceArtifactsFromCsar(csarUUID, csar, resource, user, artifactsContents, artifactsFileName, createdArtifacts, shouldLock, inTransaction);
+ createArtifactsFromCsar = updateResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts, shouldLock, inTransaction);
if (createArtifactsFromCsar.isRight()) {
log.debug("Couldn't create artifacts from artifacts.meta");
return Either.right(createArtifactsFromCsar.right().value());
@@ -1849,7 +2012,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
* Either.right(componentsUtils.getResponseFormat(actionStatus)); } } }
*/
for (String artifactId : artifactsToDelete) {
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleDelete = artifactsBusinessLogic.handleDelete(resource.getUniqueId(), artifactId, user, AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE,
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleDelete = artifactsBusinessLogic.handleDelete(resource.getUniqueId(), artifactId, csarInfo.getModifier(), AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE,
resource, null, null, shouldLock, inTransaction);
if (handleDelete.isRight()) {
log.debug("Couldn't delete artifact {}", artifactId);
@@ -1870,18 +2033,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(resource);
}
- private Either<Boolean, ResponseFormat> createOrUpdateSingleNonMetaArtifact(Resource resource, User user, String csarUUID, Map<String, byte[]> csar, String artifactPath, String artifactFileName, String artifactType,
- ArtifactGroupTypeEnum artifactGroupType, String artifactLabel, String artifactDisplayName, String artifactDescription, String artifactId, ArtifactOperationInfo operation, List<ArtifactDefinition> createdArtifacts, boolean shouldLock,
- boolean inTransaction) {
+ private Either<Boolean, ResponseFormat> createOrUpdateSingleNonMetaArtifact(Resource resource, CsarInfo csarInfo, String artifactPath, String artifactFileName, String artifactType,
+ ArtifactGroupTypeEnum artifactGroupType, String artifactLabel, String artifactDisplayName, String artifactDescription, String artifactId, ArtifactOperationInfo operation, List<ArtifactDefinition> createdArtifacts, boolean shouldLock,
+ boolean inTransaction) {
byte[] artifactFileBytes = null;
- if (csar.containsKey(artifactPath)) {
- artifactFileBytes = csar.get(artifactPath);
+ if (csarInfo.getCsar().containsKey(artifactPath)) {
+ artifactFileBytes = csarInfo.getCsar().get(artifactPath);
}
Either<Boolean, ResponseFormat> result = Either.left(true);
if (operation.getArtifactOperationEnum() == ArtifactOperationEnum.Update || operation.getArtifactOperationEnum() == ArtifactOperationEnum.Delete) {
if (artifactId != null && !artifactId.isEmpty() && artifactFileBytes == null) {
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleDelete = artifactsBusinessLogic.handleDelete(resource.getUniqueId(), artifactId, user, AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE, resource, null,
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleDelete = artifactsBusinessLogic.handleDelete(resource.getUniqueId(), artifactId, csarInfo.getModifier(), AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE, resource, null,
null, shouldLock, inTransaction);
if (handleDelete.isRight()) {
result = Either.right(handleDelete.right().value());
@@ -1896,10 +2059,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
if (artifactFileBytes != null) {
Map<String, Object> vendorLicenseModelJson = buildJsonForUpdateArtifact(artifactId, artifactFileName, artifactType, artifactGroupType, artifactLabel, artifactDisplayName, artifactDescription, artifactFileBytes, null);
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> eitherNonMetaArtifacts = createOrUpdateCsarArtifactFromJson(resource, user, vendorLicenseModelJson, operation, shouldLock, inTransaction);
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> eitherNonMetaArtifacts = createOrUpdateCsarArtifactFromJson(resource, csarInfo.getModifier(), vendorLicenseModelJson, operation, shouldLock, inTransaction);
addNonMetaCreatedArtifactsToSupportRollback(operation, createdArtifacts, eitherNonMetaArtifacts);
if (eitherNonMetaArtifacts.isRight()) {
- BeEcompErrorManager.getInstance().logInternalFlowError("UploadLicenseArtifact", "Failed to upload license artifact: " + artifactFileName + "With csar uuid: " + csarUUID, ErrorSeverity.WARNING);
+ BeEcompErrorManager.getInstance().logInternalFlowError("UploadLicenseArtifact", "Failed to upload license artifact: " + artifactFileName + "With csar uuid: " + csarInfo.getCsarUUID(), ErrorSeverity.WARNING);
return Either.right(eitherNonMetaArtifacts.right().value());
}
}
@@ -1930,13 +2093,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(uploadArtifactToService.left().value());
}
- public Either<Resource, ResponseFormat> updateResourceArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, String artifactsMetaFile, String artifactsMetaFileName, List<ArtifactDefinition> createdNewArtifacts,
- boolean shouldLock, boolean inTransaction) {
+ public Either<Resource, ResponseFormat> updateResourceArtifactsFromCsar(CsarInfo csarInfo, Resource resource, String artifactsMetaFile, String artifactsMetaFileName, List<ArtifactDefinition> createdNewArtifacts,
+ boolean shouldLock, boolean inTransaction) {
- Either<Map<String, List<ArtifactTemplateInfo>>, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceArtifactsInfoFromFile(resource, artifactsMetaFile, artifactsMetaFileName, user);
+ Either<Map<String, List<ArtifactTemplateInfo>>, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceArtifactsInfoFromFile(resource, artifactsMetaFile, artifactsMetaFileName, csarInfo.getModifier());
if (parseResourceInfoFromYamlEither.isRight()) {
ResponseFormat responseFormat = parseResourceInfoFromYamlEither.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
return Either.right(responseFormat);
}
@@ -1960,7 +2123,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
}
- return createResourceArtifacts(csarUUID, csar, resource, user, parseResourceInfoFromYamlEither.left().value(), AuditingActionEnum.CREATE_RESOURCE, createdNewArtifacts, shouldLock, inTransaction);
+ return createResourceArtifacts(csarInfo, resource, parseResourceInfoFromYamlEither.left().value(), AuditingActionEnum.CREATE_RESOURCE, createdNewArtifacts, shouldLock, inTransaction);
}
// find master in group
@@ -1990,13 +2153,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Set<ArtifactDefinition> artifactsToDelete = new HashSet<ArtifactDefinition>();
Map<String, List<ArtifactDefinition>> groupToDelete = new HashMap<String, List<ArtifactDefinition>>();
- Map<String, List<String>> dissocArtifactFromGroup = new HashMap<String, List<String>>();
Set<ArtifactTemplateInfo> jsonMasterArtifacts = parsedGroup.keySet();
Map<GroupDefinition, MergedArtifactInfo> mergedgroup = mergeGroupInUpdateFlow(groupArtifact, parsedGroup, artifactsToDelete, groupToDelete, jsonMasterArtifacts, createdDeplymentArtifactsAfterDelete);
// Set<String> deletedArtifactsName = new HashSet<String>();
- Either<List<ArtifactDefinition>, ResponseFormat> deletedArtifactsEither = deleteArtifactsInUpdateCsarFlow(resource, user, shouldLock, inTransaction, artifactsToDelete, groupToDelete);
+ Either<List<ArtifactDefinition>, ResponseFormat> deletedArtifactsEither = deleteArtifactsInUpdateCsarFlow(resource, csarInfo.getModifier(), shouldLock, inTransaction, artifactsToDelete, groupToDelete);
if (deletedArtifactsEither.isRight()) {
log.debug("Failed to delete artifacts. Status is {} ", deletedArtifactsEither.right().value());
@@ -2023,8 +2185,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
////////////// dissociate, associate or create
////////////// artifacts////////////////////////////
- Either<Resource, ResponseFormat> assDissotiateEither = associateAndDissociateArtifactsToGroup(csarUUID, csar, resource, user, createdNewArtifacts, labelCounter, shouldLock, inTransaction, createdDeplymentArtifactsAfterDelete,
- mergedgroup, deletedArtifacts);
+ Either<Resource, ResponseFormat> assDissotiateEither = associateAndDissociateArtifactsToGroup(csarInfo, resource, createdNewArtifacts, labelCounter, shouldLock, inTransaction, createdDeplymentArtifactsAfterDelete,
+ mergedgroup, deletedArtifacts);
if (assDissotiateEither.isRight()) {
log.debug("Failed to delete artifacts. Status is {} ", assDissotiateEither.right().value());
@@ -2042,7 +2204,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
groups = resource.getGroups();
- List<GroupDefinition> groupToUpdate = new ArrayList<>();
+
// update vfModule names
Set<GroupDefinition> groupForAssociateWithMembers = mergedgroup.keySet();
if (groups != null && !groups.isEmpty()) {
@@ -2056,30 +2218,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
;
for (GroupDefinition updatedGroupDef : groupForAssociateWithMembers) {
- GroupDefinition group = null;
- Optional<GroupDefinition> opGr = groups.stream().filter(p -> p.getUniqueId().equals(updatedGroupDef.getUniqueId())).findAny();
- if (opGr.isPresent()) {
- group = opGr.get();
- groupToUpdate.add(group);
- }
- if (group != null) {
- Map<String, String> members = new HashMap<String, String>();
- Set<String> artifactsGroup = new HashSet<String>();
- artifactsGroup.addAll(group.getArtifacts());
- associateMembersToArtifacts(createdNewArtifacts, createdDeplymentArtifactsAfterDelete, heatGroups, artifactsGroup, members);
- if (!members.isEmpty()) {
- group.setMembers(members);
- }
+ if (updatedGroupDef.getMembers() != null && !updatedGroupDef.getMembers().isEmpty()) {
+ updatedGroupDef.getMembers().clear();
}
+ Map<String, String> members = new HashMap<String, String>();
+ Set<String> artifactsGroup = new HashSet<String>();
+ artifactsGroup.addAll(updatedGroupDef.getArtifacts());
+ associateMembersToArtifacts(createdNewArtifacts, createdDeplymentArtifactsAfterDelete, heatGroups, artifactsGroup, members);
+ if (!members.isEmpty()) {
+ updatedGroupDef.setMembers(members);
+
+ }
+
}
- /*
- * if (!groupToUpdate.isEmpty()) { Either<List<GroupDefinition>, ResponseFormat> assotiateGroupEither = groupBusinessLogic.associateMembersToGroup(resource.getUniqueId(), user.getUserId(), ComponentTypeEnum.RESOURCE, groupToUpdate, false,
- * true); if (assotiateGroupEither.isRight()) { log.debug("Failed to associate artifacts to groups. Status is {} ", assotiateGroupEither.right().value()); return Either.right(assotiateGroupEither.right().value());
- *
- * } }
- */
+
}
@@ -2111,7 +2265,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (validateGroupNamesRes.isRight()) {
return Either.right(validateGroupNamesRes.right().value());
}
- Either<Resource, ResponseFormat> resStatus = createGroupDeploymentArtifactsFromCsar(csarUUID, csar, resource, user, newArtifactsGroup, createdNewArtifacts, createdDeplymentArtifactsAfterDelete, labelCounter, shouldLock, inTransaction);
+ Either<Resource, ResponseFormat> resStatus = createGroupDeploymentArtifactsFromCsar(csarInfo, resource, newArtifactsGroup, createdNewArtifacts, createdDeplymentArtifactsAfterDelete, labelCounter, shouldLock, inTransaction);
if (resStatus.isRight())
return resStatus;
}
@@ -2142,7 +2296,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<List<ArtifactDefinition>, ResponseFormat> deleteArtifactsInUpdateCsarFlow(Resource resource, User user, boolean shouldLock, boolean inTransaction, Set<ArtifactDefinition> artifactsToDelete,
- Map<String, List<ArtifactDefinition>> groupToDelete) {
+ Map<String, List<ArtifactDefinition>> groupToDelete) {
List<ArtifactDefinition> deletedArtifacts = new ArrayList<ArtifactDefinition>();
String resourceId = resource.getUniqueId();
if (!artifactsToDelete.isEmpty()) {
@@ -2159,9 +2313,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
* deletedArtifacts.add(removeArifactFromGraph.left().value());
*/
- }
-
- else {
+ } else {
Either<Either<ArtifactDefinition, Operation>, ResponseFormat> handleDelete = artifactsBusinessLogic.handleDelete(resourceId, artifact.getUniqueId(), user, AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE, resource,
null, null, shouldLock, inTransaction);
if (handleDelete.isRight()) {
@@ -2194,8 +2346,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(deletedArtifacts);
}
- private Either<Resource, ResponseFormat> associateAndDissociateArtifactsToGroup(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, List<ArtifactDefinition> createdNewArtifacts, int labelCounter, boolean shouldLock,
- boolean inTransaction, List<ArtifactDefinition> createdDeplymentArtifactsAfterDelete, Map<GroupDefinition, MergedArtifactInfo> mergedgroup, List<ArtifactDefinition> deletedArtifacts) {
+ private Either<Resource, ResponseFormat> associateAndDissociateArtifactsToGroup(CsarInfo csarInfo, Resource resource, List<ArtifactDefinition> createdNewArtifacts, int labelCounter, boolean shouldLock,
+ boolean inTransaction, List<ArtifactDefinition> createdDeplymentArtifactsAfterDelete, Map<GroupDefinition, MergedArtifactInfo> mergedgroup, List<ArtifactDefinition> deletedArtifacts) {
Map<GroupDefinition, List<ArtifactTemplateInfo>> artifactsToAssotiate = new HashMap<GroupDefinition, List<ArtifactTemplateInfo>>();
Map<GroupDefinition, List<ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo>>> artifactsToUpdateMap = new HashMap<GroupDefinition, List<ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo>>>();
Either<Resource, ResponseFormat> resEither = Either.left(resource);
@@ -2212,7 +2364,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
List<ArtifactTemplateInfo> newArtifactsInGroup = entry.getValue().getListToAssociateArtifactToGroup();
if (newArtifactsInGroup != null && !newArtifactsInGroup.isEmpty())
artifactsToAssotiate.put(entry.getKey(), newArtifactsInGroup);
-
List<ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo>> artifactsToUpdate = entry.getValue().getListToUpdateArtifactInGroup();
if (artifactsToUpdate != null && !artifactsToUpdate.isEmpty())
@@ -2224,11 +2375,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
for (Entry<GroupDefinition, List<ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo>>> artifactsToUpdateEntry : artifactsToUpdateMap.entrySet()) {
List<ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo>> artifactsToUpdateList = artifactsToUpdateEntry.getValue();
GroupDefinition groupToUpdate = artifactsToUpdateEntry.getKey();
-
+
for (ImmutablePair<ArtifactDefinition, ArtifactTemplateInfo> artifact : artifactsToUpdateList) {
String prevUUID = artifact.getKey().getArtifactUUID();
String prevId = artifact.getKey().getUniqueId();
- Either<ArtifactDefinition, ResponseFormat> updateArtifactEither = updateDeploymentArtifactsFromCsar(csarUUID, csar, resource, user, artifact.getKey(), artifact.getValue(), updatedArtifacts,
+ Either<ArtifactDefinition, ResponseFormat> updateArtifactEither = updateDeploymentArtifactsFromCsar(csarInfo, resource, artifact.getKey(), artifact.getValue(), updatedArtifacts,
artifact.getRight().getRelatedArtifactsInfo(), shouldLock, inTransaction);
if (updateArtifactEither.isRight()) {
log.debug("failed to update artifacts. status is {}", updateArtifactEither.right().value());
@@ -2236,7 +2387,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return resEither;
}
ArtifactDefinition artAfterUpdate = updateArtifactEither.left().value();
- if ( !prevUUID.equals(artAfterUpdate.getArtifactUUID()) || !prevId.equals(artAfterUpdate.getUniqueId()) ){
+ if (!prevUUID.equals(artAfterUpdate.getArtifactUUID()) || !prevId.equals(artAfterUpdate.getUniqueId())) {
groupToUpdate.getArtifacts().remove(prevId);
groupToUpdate.getArtifactsUuid().remove(prevUUID);
groupToUpdate.getArtifacts().add(artAfterUpdate.getUniqueId());
@@ -2246,11 +2397,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
- List<GroupDefinition> associateArtifactGroup = new ArrayList<GroupDefinition>();
-
for (Entry<GroupDefinition, List<ArtifactTemplateInfo>> associateEntry : artifactsToAssotiate.entrySet()) {
List<ArtifactTemplateInfo> associatedArtifact = associateEntry.getValue();
Set<String> arifactsUids = new HashSet<String>();
+ Set<String> arifactsUuids = new HashSet<String>();
for (ArtifactTemplateInfo artifactTemplate : associatedArtifact) { // try
// to
// find
@@ -2261,6 +2411,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
for (ArtifactDefinition createdArtifact : createdDeplymentArtifactsAfterDelete) {
if (artifactTemplate.getFileName().equalsIgnoreCase(createdArtifact.getArtifactName())) {
arifactsUids.add(createdArtifact.getUniqueId());
+ arifactsUuids.add(createdArtifact.getUniqueId());
isCreate = false;
String heatEnvId = checkAndGetHeatEnvId(createdArtifact);
if (!heatEnvId.isEmpty()) {
@@ -2280,6 +2431,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
for (ArtifactDefinition createdNewArtifact : createdNewArtifacts) {
if (artifactTemplate.getFileName().equalsIgnoreCase(createdNewArtifact.getArtifactName())) {
arifactsUids.add(createdNewArtifact.getUniqueId());
+ arifactsUuids.add(createdNewArtifact.getUniqueId());
isCreate = false;
String heatEnvId = checkAndGetHeatEnvId(createdNewArtifact);
if (!heatEnvId.isEmpty()) {
@@ -2291,17 +2443,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
if (isCreate) {
- Either<ArtifactDefinition, ResponseFormat> createArtifactEither = createDeploymentArtifact(csarUUID, csar, resource, user, ARTIFACTS_PATH, artifactTemplate, createdNewArtifacts, labelCounter, shouldLock, inTransaction);
+ Either<ArtifactDefinition, ResponseFormat> createArtifactEither = createDeploymentArtifact(csarInfo, resource, ARTIFACTS_PATH, artifactTemplate, createdNewArtifacts, labelCounter, shouldLock, inTransaction);
if (createArtifactEither.isRight()) {
resEither = Either.right(createArtifactEither.right().value());
return resEither;
}
ArtifactDefinition createdArtifact = createArtifactEither.left().value();
arifactsUids.add(createdArtifact.getUniqueId());
+ arifactsUuids.add(createdArtifact.getUniqueId());
ArtifactTypeEnum artifactType = ArtifactTypeEnum.findType(createdArtifact.getArtifactType());
if (artifactType == ArtifactTypeEnum.HEAT || artifactType == ArtifactTypeEnum.HEAT_NET || artifactType == ArtifactTypeEnum.HEAT_VOL) {
Either<ArtifactDefinition, ResponseFormat> createHeatEnvPlaceHolder = artifactsBusinessLogic.createHeatEnvPlaceHolder(createdArtifact, ArtifactsBusinessLogic.HEAT_VF_ENV_NAME, resource.getUniqueId(), NodeTypeEnum.Resource,
- resource.getName(), user, resource, null);
+ resource.getName(), csarInfo.getModifier(), resource, null);
if (createHeatEnvPlaceHolder.isRight()) {
return Either.right(createHeatEnvPlaceHolder.right().value());
}
@@ -2314,11 +2467,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (arifactsUids.size() > 0) {
List<String> artifactsToAssociate = new ArrayList<String>();
artifactsToAssociate.addAll(arifactsUids);
- GroupDefinition assotiateGroup = new GroupDefinition();
- assotiateGroup.setUniqueId(associateEntry.getKey().getUniqueId());
- assotiateGroup.setArtifacts(artifactsToAssociate);
- associateArtifactGroup.add(assotiateGroup);
-
+ GroupDefinition assotiateGroup = associateEntry.getKey();
+ assotiateGroup.getArtifacts().addAll(arifactsUids);
+ assotiateGroup.getArtifactsUuid().addAll(arifactsUuids);
}
}
@@ -2354,7 +2505,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Map<GroupDefinition, MergedArtifactInfo> mergeGroupInUpdateFlow(Map<GroupDefinition, Map<ArtifactDefinition, List<ArtifactDefinition>>> groupArtifact, Map<ArtifactTemplateInfo, Set<ArtifactTemplateInfo>> parsedGroup,
- Set<ArtifactDefinition> artifactsToDelete, Map<String, List<ArtifactDefinition>> groupToDelete, Set<ArtifactTemplateInfo> jsonMasterArtifacts, List<ArtifactDefinition> createdDeplymentArtifacts) {
+ Set<ArtifactDefinition> artifactsToDelete, Map<String, List<ArtifactDefinition>> groupToDelete, Set<ArtifactTemplateInfo> jsonMasterArtifacts, List<ArtifactDefinition> createdDeplymentArtifacts) {
Map<GroupDefinition, MergedArtifactInfo> mergedgroup = new HashMap<GroupDefinition, MergedArtifactInfo>();
for (Entry<GroupDefinition, Map<ArtifactDefinition, List<ArtifactDefinition>>> groupListEntry : groupArtifact.entrySet()) {
Map<ArtifactDefinition, List<ArtifactDefinition>> createdArtifactMap = groupListEntry.getValue();
@@ -2365,21 +2516,21 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
for (ArtifactDefinition artToDelete : listToDelete) {
findArtifactToDelete(parsedGroup, artifactsToDelete, groupListEntry.getKey().getUniqueId(), artToDelete, createdDeplymentArtifacts);
}
- if(artifactsToDelete != null && !artifactsToDelete.isEmpty()){
+ if (artifactsToDelete != null && !artifactsToDelete.isEmpty()) {
GroupDefinition group = groupListEntry.getKey();
- for(ArtifactDefinition artifactDefinition: artifactsToDelete){
+ for (ArtifactDefinition artifactDefinition : artifactsToDelete) {
if (CollectionUtils.isNotEmpty(group.getArtifacts()) && group.getArtifacts().contains(artifactDefinition.getUniqueId())) {
group.getArtifacts().remove(artifactDefinition.getUniqueId());
-
+
}
if (CollectionUtils.isNotEmpty(group.getArtifactsUuid()) && group.getArtifactsUuid().contains(artifactDefinition.getArtifactUUID())) {
group.getArtifactsUuid().remove(artifactDefinition.getArtifactUUID());
-
+
}
}
-
+
}
-
+
for (ArtifactTemplateInfo jsonMasterArtifact : jsonMasterArtifacts) {
if (maserArtifact.getArtifactName().equalsIgnoreCase(jsonMasterArtifact.getFileName())) {
MergedArtifactInfo mergedGroup = new MergedArtifactInfo();
@@ -2400,34 +2551,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return mergedgroup;
}
- private Set<String> findArtifactsNotInGroupToDelete(List<GroupDefinition> groups, List<ArtifactDefinition> createdDeplymentArtifactsAfterDelete) {
- Set<String> artifactNotInGroupSet = new HashSet<String>();
- for (ArtifactDefinition artifact : createdDeplymentArtifactsAfterDelete) {
- boolean needToDelete = true;
- if (artifact.getArtifactName().equalsIgnoreCase(Constants.VENDOR_LICENSE_MODEL) || artifact.getArtifactName().equalsIgnoreCase(Constants.VF_LICENSE_MODEL))
- continue;
- if (groups != null) {
- for (GroupDefinition group : groups) {
- List<String> groupArtifactIds = group.getArtifacts();
- if (groupArtifactIds == null || groupArtifactIds.isEmpty()) {
- continue;
- }
- for (String groupArtifactid : groupArtifactIds) {
- if (groupArtifactid.equalsIgnoreCase(artifact.getUniqueId()))
- needToDelete = false;
-
- }
-
- }
- }
- if (needToDelete)
- artifactNotInGroupSet.add(artifact.getUniqueId());
- }
- return artifactNotInGroupSet;
- }
-
private void findArtifactToDelete(Map<ArtifactTemplateInfo, Set<ArtifactTemplateInfo>> parsedGroup, Set<ArtifactDefinition> artifactsToDelete, String deleteGroupId, ArtifactDefinition artifact,
- List<ArtifactDefinition> createdDeplymentArtifacts) {
+ List<ArtifactDefinition> createdDeplymentArtifacts) {
boolean isNeedToDeleteArtifact = true;
String artifactType = artifact.getArtifactType();
ArtifactDefinition generatedFromArt = null;
@@ -2492,20 +2617,20 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
- public Either<Resource, ResponseFormat> createResourceArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, String artifactsMetaFile, String artifactsMetaFileName, List<ArtifactDefinition> createdArtifacts,
- boolean shouldLock, boolean inTransaction) {
+ public Either<Resource, ResponseFormat> createResourceArtifactsFromCsar(CsarInfo csarInfo, Resource resource, String artifactsMetaFile, String artifactsMetaFileName, List<ArtifactDefinition> createdArtifacts,
+ boolean shouldLock, boolean inTransaction) {
log.debug("parseResourceArtifactsInfoFromFile start");
- Either<Map<String, List<ArtifactTemplateInfo>>, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceArtifactsInfoFromFile(resource, artifactsMetaFile, artifactsMetaFileName, user);
+ Either<Map<String, List<ArtifactTemplateInfo>>, ResponseFormat> parseResourceInfoFromYamlEither = parseResourceArtifactsInfoFromFile(resource, artifactsMetaFile, artifactsMetaFileName, csarInfo.getModifier());
if (parseResourceInfoFromYamlEither.isRight()) {
ResponseFormat responseFormat = parseResourceInfoFromYamlEither.right().value();
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
+ componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
return Either.right(responseFormat);
}
log.debug("parseResourceArtifactsInfoFromFile end");
log.debug("createResourceArtifacts start");
- Either<Resource, ResponseFormat> respStatus = createResourceArtifacts(csarUUID, csar, resource, user, parseResourceInfoFromYamlEither.left().value(), AuditingActionEnum.CREATE_RESOURCE, createdArtifacts, shouldLock, inTransaction);
+ Either<Resource, ResponseFormat> respStatus = createResourceArtifacts(csarInfo, resource, parseResourceInfoFromYamlEither.left().value(), AuditingActionEnum.CREATE_RESOURCE, createdArtifacts, shouldLock, inTransaction);
if (respStatus.isRight()) {
return respStatus;
}
@@ -2523,8 +2648,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<Resource, ResponseFormat> createGroupDeploymentArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, List<ArtifactTemplateInfo> artifactsTemplateList,
- List<ArtifactDefinition> createdNewArtifacts, List<ArtifactDefinition> artifactsFromResource, int labelCounter, boolean shouldLock, boolean inTransaction) {
+ private Either<Resource, ResponseFormat> createGroupDeploymentArtifactsFromCsar(CsarInfo csarInfo, Resource resource, List<ArtifactTemplateInfo> artifactsTemplateList,
+ List<ArtifactDefinition> createdNewArtifacts, List<ArtifactDefinition> artifactsFromResource, int labelCounter, boolean shouldLock, boolean inTransaction) {
Either<Resource, ResponseFormat> resStatus = Either.left(resource);
List<GroupDefinition> createdGroups = resource.getGroups();
List<GroupDefinition> heatGroups = null;
@@ -2538,7 +2663,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Set<String> artifactsGroup = new HashSet<String>();
Set<String> artifactsUUIDGroup = new HashSet<String>();
- resStatus = createDeploymentArtifactsFromCsar(csarUUID, csar, resource, user, artifactsGroup, artifactsUUIDGroup, groupTemplateInfo, createdNewArtifacts, artifactsFromResource, labelCounter, shouldLock, inTransaction);
+ resStatus = createDeploymentArtifactsFromCsar(csarInfo, resource, artifactsGroup, artifactsUUIDGroup, groupTemplateInfo, createdNewArtifacts, artifactsFromResource, labelCounter, shouldLock, inTransaction);
if (resStatus.isRight())
return resStatus;
@@ -2562,7 +2687,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
prop.setName(Constants.IS_BASE);
prop.setValue(Boolean.toString(groupTemplateInfo.isBase()));
properties.add(prop);
-
+
List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
createdArtifacts.addAll(createdNewArtifacts);
createdArtifacts.addAll(artifactsFromResource);
@@ -2590,15 +2715,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
resource = component.left().value();
- Either<List<GroupDefinition>, ResponseFormat> addGroups = groupBusinessLogic.addGroups(resource, user, ComponentTypeEnum.RESOURCE, needToAdd);
+ Either<List<GroupDefinition>, ResponseFormat> addGroups = groupBusinessLogic.addGroups(resource, csarInfo.getModifier(), ComponentTypeEnum.RESOURCE, needToAdd);
if (addGroups.isRight())
return Either.right(addGroups.right().value());
return resStatus;
}
- private Either<Resource, ResponseFormat> createDeploymentArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, Set<String> artifactsGroup, Set<String> artifactsUUIDGroup,
- ArtifactTemplateInfo artifactTemplateInfo, List<ArtifactDefinition> createdArtifacts, List<ArtifactDefinition> artifactsFromResource, int labelCounter, boolean shoudLock, boolean inTransaction) {
+ private Either<Resource, ResponseFormat> createDeploymentArtifactsFromCsar(CsarInfo csarInfo, Resource resource, Set<String> artifactsGroup, Set<String> artifactsUUIDGroup,
+ ArtifactTemplateInfo artifactTemplateInfo, List<ArtifactDefinition> createdArtifacts, List<ArtifactDefinition> artifactsFromResource, int labelCounter, boolean shoudLock, boolean inTransaction) {
Either<Resource, ResponseFormat> resStatus = Either.left(resource);
String artifactFileName = artifactTemplateInfo.getFileName();
String artifactUid = "";
@@ -2646,7 +2771,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// if not exist need to create
if (!alreadyExist) {
- Either<ArtifactDefinition, ResponseFormat> newArtifactEither = createDeploymentArtifact(csarUUID, csar, resource, user, ARTIFACTS_PATH, artifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
+ Either<ArtifactDefinition, ResponseFormat> newArtifactEither = createDeploymentArtifact(csarInfo, resource, ARTIFACTS_PATH, artifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
if (newArtifactEither.isRight()) {
resStatus = Either.right(newArtifactEither.right().value());
return resStatus;
@@ -2657,7 +2782,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ArtifactTypeEnum artifactType = ArtifactTypeEnum.findType(newArtifact.getArtifactType());
if (artifactType == ArtifactTypeEnum.HEAT || artifactType == ArtifactTypeEnum.HEAT_NET || artifactType == ArtifactTypeEnum.HEAT_VOL) {
Either<ArtifactDefinition, ResponseFormat> createHeatEnvPlaceHolder = artifactsBusinessLogic.createHeatEnvPlaceHolder(newArtifact, ArtifactsBusinessLogic.HEAT_VF_ENV_NAME, resource.getUniqueId(), NodeTypeEnum.Resource,
- resource.getName(), user, resource, null);
+ resource.getName(), csarInfo.getModifier(), resource, null);
if (createHeatEnvPlaceHolder.isRight()) {
return Either.right(createHeatEnvPlaceHolder.right().value());
}
@@ -2674,7 +2799,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
List<ArtifactTemplateInfo> relatedArtifacts = artifactTemplateInfo.getRelatedArtifactsInfo();
if (relatedArtifacts != null) {
for (ArtifactTemplateInfo relatedArtifactTemplateInfo : relatedArtifacts) {
- resStatus = createDeploymentArtifactsFromCsar(csarUUID, csar, resource, user, artifactsGroup, artifactsUUIDGroup, relatedArtifactTemplateInfo, createdArtifacts, artifactsFromResource, labelCounter, shoudLock, inTransaction);
+ resStatus = createDeploymentArtifactsFromCsar(csarInfo, resource, artifactsGroup, artifactsUUIDGroup, relatedArtifactTemplateInfo, createdArtifacts, artifactsFromResource, labelCounter, shoudLock, inTransaction);
if (resStatus.isRight())
return resStatus;
}
@@ -2682,8 +2807,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return resStatus;
}
- private Either<Resource, ResponseFormat> createResourceArtifacts(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, Map<String, List<ArtifactTemplateInfo>> artifactsMap, AuditingActionEnum createResource,
- List<ArtifactDefinition> createdArtifacts, boolean shouldLock, boolean inTransaction) {
+ private Either<Resource, ResponseFormat> createResourceArtifacts(CsarInfo csarInfo, Resource resource, Map<String, List<ArtifactTemplateInfo>> artifactsMap, AuditingActionEnum createResource,
+ List<ArtifactDefinition> createdArtifacts, boolean shouldLock, boolean inTransaction) {
Either<Resource, ResponseFormat> resStatus = Either.left(resource);
@@ -2691,7 +2816,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
for (List<ArtifactTemplateInfo> groupTemplateList : arifactsCollection) {
if (groupTemplateList != null) {
- resStatus = createGroupDeploymentArtifactsFromCsar(csarUUID, csar, resource, user, groupTemplateList, createdArtifacts, 0, shouldLock, inTransaction);
+ resStatus = createGroupDeploymentArtifactsFromCsar(csarInfo, resource, groupTemplateList, createdArtifacts, 0, shouldLock, inTransaction);
if (resStatus.isRight())
return resStatus;
}
@@ -2701,8 +2826,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<Resource, ResponseFormat> createOrUpdateNonMetaArtifacts(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, List<ArtifactDefinition> createdArtifacts, boolean shouldLock, boolean inTransaction,
- ArtifactOperationInfo artifactOperation) {
+ private Either<Resource, ResponseFormat> createOrUpdateNonMetaArtifacts(CsarInfo csarInfo, Resource resource, List<ArtifactDefinition> createdArtifacts, boolean shouldLock, boolean inTransaction, ArtifactOperationInfo artifactOperation) {
Either<Resource, ResponseFormat> resStatus = null;
Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
@@ -2710,7 +2834,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
try {
List<NonMetaArtifactInfo> artifactPathAndNameList =
// Stream of file paths contained in csar
- csar.entrySet().stream()
+ csarInfo.getCsar().entrySet().stream()
// Filter in only VF artifact path location
.filter(e -> Pattern.compile(VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN).matcher(e.getKey()).matches())
// Validate and add warnings
@@ -2722,13 +2846,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// collect to List
.collect(Collectors.toList());
+ Either<Boolean, String> responseFormatEither = validateArtifactNames(artifactPathAndNameList);
+ if (responseFormatEither.isRight()) {
+ return Either.right(getComponentsUtils().getResponseFormatByArtifactId(ActionStatus.ARTIFACT_NAME_INVALID, responseFormatEither.right().value()));
+ }
+
+
EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> vfCsarArtifactsToHandle = null;
if (artifactOperation.getArtifactOperationEnum() == ArtifactOperationEnum.Create) {
vfCsarArtifactsToHandle = new EnumMap<>(ArtifactOperationEnum.class);
vfCsarArtifactsToHandle.put(artifactOperation.getArtifactOperationEnum(), artifactPathAndNameList);
} else {
- Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandleRes = findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
+ Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandleRes = findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, csarInfo.getModifier());
if (findVfCsarArtifactsToHandleRes.isRight()) {
resStatus = Either.right(findVfCsarArtifactsToHandleRes.right().value());
@@ -2744,15 +2874,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// Stream of artifacts to be created
currArtifactOperationPair.getValue().stream()
// create each artifact
- .map(e -> createOrUpdateSingleNonMetaArtifact(resource, user, csarUUID, csar, e.getPath(), e.getArtifactName(), e.getArtifactType().getType(), e.getArtifactGroupType(), e.getArtifactLabel(), e.getDisplayName(),
+ .map(e -> createOrUpdateSingleNonMetaArtifact(resource, csarInfo, e.getPath(), e.getArtifactName(), e.getArtifactType().getType(), e.getArtifactGroupType(), e.getArtifactLabel(), e.getDisplayName(),
CsarUtils.ARTIFACT_CREATED_FROM_CSAR, e.getArtifactUniqueId(), artifactsBusinessLogic.new ArtifactOperationInfo(false, false, currArtifactOperationPair.getKey()), createdArtifacts, shouldLock,
inTransaction))
// filter in only error
.filter(e -> e.isRight()).
// Convert the error from either to ResponseFormat
- map(e -> e.right().value()).
+ map(e -> e.right().value()).
// Check if an error occurred
- findAny();
+ findAny();
// Error found on artifact Creation
if (optionalCreateInDBError.isPresent()) {
resStatus = Either.right(optionalCreateInDBError.get());
@@ -2772,6 +2902,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return resStatus;
}
+ private Either<Boolean, String> validateArtifactNames(List<NonMetaArtifactInfo> artifactPathAndNameList) {
+ Pattern englishNumbersAndUnderScoresOnly = Pattern.compile(CsarUtils.VALID_ENGLISH_ARTIFACT_NAME);
+ for (NonMetaArtifactInfo nonMetaArtifactInfo : artifactPathAndNameList) {
+ if (!englishNumbersAndUnderScoresOnly.matcher(nonMetaArtifactInfo.getDisplayName()).matches()) {
+ return Either.right(nonMetaArtifactInfo.getArtifactName());
+ }
+ }
+ return Either.left(true);
+ }
+
+
private Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandle(Resource resource, List<NonMetaArtifactInfo> artifactPathAndNameList, User user) {
List<ArtifactDefinition> existingArtifacts = new ArrayList<>();
@@ -2816,8 +2957,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
- private Either<Resource, ResponseFormat> createGroupDeploymentArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, List<ArtifactTemplateInfo> artifactsTemplateList, List<ArtifactDefinition> createdArtifacts,
- int labelCounter, boolean shouldLock, boolean inTransaction) {
+ private Either<Resource, ResponseFormat> createGroupDeploymentArtifactsFromCsar(CsarInfo csarInfo, Resource resource, List<ArtifactTemplateInfo> artifactsTemplateList, List<ArtifactDefinition> createdArtifacts,
+ int labelCounter, boolean shouldLock, boolean inTransaction) {
Either<Resource, ResponseFormat> resStatus = Either.left(resource);
List<GroupDefinition> createdGroups = resource.getGroups();
List<GroupDefinition> heatGroups = null;
@@ -2840,7 +2981,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Set<String> artifactsUUIDGroup = new HashSet<String>();
log.debug("createDeploymentArtifactsFromCsar start");
- resStatus = createDeploymentArtifactFromCsar(csarUUID, ARTIFACTS_PATH, csar, resource, user, artifactsGroup, artifactsUUIDGroup, groupTemplateInfo, createdArtifacts, labelCounter, shouldLock, inTransaction);
+ resStatus = createDeploymentArtifactFromCsar(csarInfo, ARTIFACTS_PATH, resource, artifactsGroup, artifactsUUIDGroup, groupTemplateInfo, createdArtifacts, labelCounter, shouldLock, inTransaction);
log.debug("createDeploymentArtifactsFromCsar end");
if (resStatus.isRight())
return resStatus;
@@ -2895,7 +3036,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
}
- Either<List<GroupDefinition>, ResponseFormat> createGroups = groupBusinessLogic.addGroups(component.left().value(), user, ComponentTypeEnum.RESOURCE, needToCreate);
+ Either<List<GroupDefinition>, ResponseFormat> createGroups = groupBusinessLogic.addGroups(component.left().value(), csarInfo.getModifier(), ComponentTypeEnum.RESOURCE, needToCreate);
if (createGroups.isRight()) {
return Either.right(createGroups.right().value());
}
@@ -2980,7 +3121,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
String heatFileNAme = prop.getValue();
if (null == heatFileNAme || heatFileNAme.isEmpty())
continue;
- List<ArtifactDefinition> artifacts = new ArrayList();
+ List<ArtifactDefinition> artifacts = new ArrayList<ArtifactDefinition>();
for (String artifactId : artifactsGroup) {
Optional<ArtifactDefinition> opArt = createdArtifacts.stream().filter(p -> p.getUniqueId().equals(artifactId)).findAny();
if (opArt.isPresent()) {
@@ -3004,8 +3145,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
- private Either<Resource, ResponseFormat> createDeploymentArtifactFromCsar(String csarUUID, String artifactPath, Map<String, byte[]> csar, Resource resource, User user, Set<String> artifactsGroup, Set<String> artifactsUUIDGroup,
- ArtifactTemplateInfo artifactTemplateInfo, List<ArtifactDefinition> createdArtifacts, int labelCounter, boolean shoudLock, boolean inTransaction) {
+ private Either<Resource, ResponseFormat> createDeploymentArtifactFromCsar(CsarInfo csarInfo, String artifactPath, Resource resource, Set<String> artifactsGroup, Set<String> artifactsUUIDGroup,
+ ArtifactTemplateInfo artifactTemplateInfo, List<ArtifactDefinition> createdArtifacts, int labelCounter, boolean shoudLock, boolean inTransaction) {
Either<Resource, ResponseFormat> resStatus = Either.left(resource);
String artifactFileName = artifactTemplateInfo.getFileName();
String artifactUid = "";
@@ -3031,7 +3172,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// if not exist need to create
if (!alreadyExist) {
- Either<ArtifactDefinition, ResponseFormat> newArtifactEither = createDeploymentArtifact(csarUUID, csar, resource, user, artifactPath, artifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
+ Either<ArtifactDefinition, ResponseFormat> newArtifactEither = createDeploymentArtifact(csarInfo, resource, artifactPath, artifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
if (newArtifactEither.isRight()) {
resStatus = Either.right(newArtifactEither.right().value());
return resStatus;
@@ -3043,7 +3184,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ArtifactTypeEnum artifactType = ArtifactTypeEnum.findType(newArtifact.getArtifactType());
if (artifactType == ArtifactTypeEnum.HEAT || artifactType == ArtifactTypeEnum.HEAT_NET || artifactType == ArtifactTypeEnum.HEAT_VOL) {
Either<ArtifactDefinition, ResponseFormat> createHeatEnvPlaceHolder = artifactsBusinessLogic.createHeatEnvPlaceHolder(newArtifact, ArtifactsBusinessLogic.HEAT_VF_ENV_NAME, resource.getUniqueId(), NodeTypeEnum.Resource,
- resource.getName(), user, resource, null);
+ resource.getName(), csarInfo.getModifier(), resource, null);
if (createHeatEnvPlaceHolder.isRight()) {
return Either.right(createHeatEnvPlaceHolder.right().value());
}
@@ -3060,7 +3201,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
List<ArtifactTemplateInfo> relatedArtifacts = artifactTemplateInfo.getRelatedArtifactsInfo();
if (relatedArtifacts != null) {
for (ArtifactTemplateInfo relatedArtifactTemplateInfo : relatedArtifacts) {
- resStatus = createDeploymentArtifactFromCsar(csarUUID, artifactPath, csar, resource, user, artifactsGroup, artifactsUUIDGroup, relatedArtifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
+ resStatus = createDeploymentArtifactFromCsar(csarInfo, artifactPath, resource, artifactsGroup, artifactsUUIDGroup, relatedArtifactTemplateInfo, createdArtifacts, labelCounter, shoudLock, inTransaction);
if (resStatus.isRight())
return resStatus;
}
@@ -3077,10 +3218,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return artifactEnvUid;
}
- private Either<ArtifactDefinition, ResponseFormat> createDeploymentArtifact(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, String artifactPath, ArtifactTemplateInfo artifactTemplateInfo,
- List<ArtifactDefinition> createdArtifacts, int labelCounter, boolean shoudLock, boolean inTransaction) {
+ private Either<ArtifactDefinition, ResponseFormat> createDeploymentArtifact(CsarInfo csarInfo, Resource resource, String artifactPath, ArtifactTemplateInfo artifactTemplateInfo,
+ List<ArtifactDefinition> createdArtifacts, int labelCounter, boolean shoudLock, boolean inTransaction) {
final String artifactFileName = artifactTemplateInfo.getFileName();
- Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactContententStatus = CsarValidationUtils.getArtifactsContent(csarUUID, csar, artifactPath + artifactFileName, artifactFileName, componentsUtils);
+ Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactContententStatus = CsarValidationUtils.getArtifactsContent(csarInfo.getCsarUUID(), csarInfo.getCsar(), artifactPath + artifactFileName, artifactFileName, componentsUtils);
if (artifactContententStatus.isRight()) {
return Either.right(artifactContententStatus.right().value());
}
@@ -3088,7 +3229,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, Object> json = buildJsonForArtifact(artifactTemplateInfo, artifactContententStatus.left().value().getValue(), labelCounter);
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> uploadArtifactToService = createOrUpdateCsarArtifactFromJson(resource, user, json, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Create),
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> uploadArtifactToService = createOrUpdateCsarArtifactFromJson(resource, csarInfo.getModifier(), json, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Create),
shoudLock, inTransaction);
if (uploadArtifactToService.isRight())
@@ -3097,7 +3238,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ArtifactDefinition currentInfo = uploadArtifactToService.left().value().left().value();
if (currentInfo.getHeatParameters() != null) {
- Either<ArtifactDefinition, ResponseFormat> updateEnvEither = updateHeatParamsFromCsar(resource, csarUUID, csar, artifactTemplateInfo, currentInfo, false);
+ Either<ArtifactDefinition, ResponseFormat> updateEnvEither = updateHeatParamsFromCsar(resource, csarInfo, artifactTemplateInfo, currentInfo, false);
if (updateEnvEither.isRight()) {
log.debug("failed to update parameters to artifact {}", artifactFileName);
return Either.right(updateEnvEither.right().value());
@@ -3113,39 +3254,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<ArtifactDefinition, ResponseFormat> createInformationalArtifact(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, ArtifactTemplateInfo artifactTemplateInfo, int labelCounter, boolean shoudLock,
- boolean inTransaction) {
- final String artifactFileName = artifactTemplateInfo.getFileName();
- String artifactPath = CsarUtils.ARTIFACTS_PATH + CsarUtils.INFORMATIONAL_ARTIFACTS + artifactFileName;
- Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactContententStatus = CsarValidationUtils.getArtifactsContent(csarUUID, csar, artifactPath, artifactFileName, componentsUtils);
- if (artifactContententStatus.isRight())
- return Either.right(artifactContententStatus.right().value());
-
- Map<String, Object> json = buildJsonForArtifact(artifactTemplateInfo, artifactContententStatus.left().value().getValue(), labelCounter);
-
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> uploadArtifactToService = createOrUpdateCsarArtifactFromJson(resource, user, json, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Create),
- shoudLock, inTransaction);
-
- if (uploadArtifactToService.isRight())
- return Either.right(uploadArtifactToService.right().value());
-
- ArtifactDefinition currentInfo = uploadArtifactToService.left().value().left().value();
-
- return Either.left(currentInfo);
-
- }
-
- private Either<ArtifactDefinition, ResponseFormat> updateDeploymentArtifactsFromCsar(String csarUUID, Map<String, byte[]> csar, Resource resource, User user, ArtifactDefinition oldArtifact, ArtifactTemplateInfo artifactTemplateInfo,
- List<ArtifactDefinition> updatedArtifacts, List<ArtifactTemplateInfo> updatedRequiredArtifacts, boolean shouldLock, boolean inTransaction) {
+ private Either<ArtifactDefinition, ResponseFormat> updateDeploymentArtifactsFromCsar(CsarInfo csarInfo, Resource resource, ArtifactDefinition oldArtifact, ArtifactTemplateInfo artifactTemplateInfo,
+ List<ArtifactDefinition> updatedArtifacts, List<ArtifactTemplateInfo> updatedRequiredArtifacts, boolean shouldLock, boolean inTransaction) {
Either<ArtifactDefinition, ResponseFormat> resStatus = null;
String artifactFileName = artifactTemplateInfo.getFileName();
- String artifactUid = "";
// check if artifacts already exist
for (ArtifactDefinition updatedArtifact : updatedArtifacts) {
if (updatedArtifact.getArtifactName().equals(artifactFileName)) {
- artifactUid = updatedArtifact.getUniqueId();
if (!updatedArtifact.getArtifactType().equalsIgnoreCase(artifactTemplateInfo.getType())) {
log.debug("Artifact with name {} and type {} already updated with type {}", artifactFileName, artifactTemplateInfo.getType(), updatedArtifact.getArtifactType());
BeEcompErrorManager.getInstance().logInternalDataError("Artifact file is not in expected formatr, fileName " + artifactFileName, "Artifact internals are invalid", ErrorSeverity.ERROR);
@@ -3158,7 +3275,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactContententStatus = CsarValidationUtils.getArtifactsContent(csarUUID, csar, CsarUtils.ARTIFACTS_PATH + artifactFileName, artifactFileName, componentsUtils);
+ Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactContententStatus = CsarValidationUtils.getArtifactsContent(csarInfo.getCsarUUID(), csarInfo.getCsar(), CsarUtils.ARTIFACTS_PATH + artifactFileName, artifactFileName, componentsUtils);
if (artifactContententStatus.isRight()) {
resStatus = Either.right(artifactContententStatus.right().value());
return resStatus;
@@ -3167,7 +3284,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, Object> json = buildJsonForUpdateArtifact(oldArtifact.getUniqueId(), artifactFileName, oldArtifact.getArtifactType(), ArtifactGroupTypeEnum.DEPLOYMENT, oldArtifact.getArtifactLabel(), oldArtifact.getArtifactDisplayName(),
oldArtifact.getDescription(), artifactContententStatus.left().value().getRight(), updatedRequiredArtifacts);
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> uploadArtifactToService = createOrUpdateCsarArtifactFromJson(resource, user, json, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Update),
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> uploadArtifactToService = createOrUpdateCsarArtifactFromJson(resource, csarInfo.getModifier(), json, artifactsBusinessLogic.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.Update),
shouldLock, inTransaction);
if (uploadArtifactToService.isRight()) {
@@ -3176,7 +3293,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
ArtifactDefinition currentInfo = uploadArtifactToService.left().value().left().value();
- Either<ArtifactDefinition, ResponseFormat> updateEnvEither = updateHeatParamsFromCsar(resource, csarUUID, csar, artifactTemplateInfo, currentInfo, true);
+ Either<ArtifactDefinition, ResponseFormat> updateEnvEither = updateHeatParamsFromCsar(resource, csarInfo, artifactTemplateInfo, currentInfo, true);
if (updateEnvEither.isRight()) {
log.debug("failed to update parameters to artifact {}", artifactFileName);
resStatus = Either.right(updateEnvEither.right().value());
@@ -3184,7 +3301,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
// TODO evg update env time ( must be separate US for this!!!!)
- artifactUid = updateEnvEither.left().value().getUniqueId();
updatedArtifacts.add(updateEnvEither.left().value());
resStatus = Either.left(updateEnvEither.left().value());
@@ -3192,11 +3308,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<ArtifactDefinition, ResponseFormat> updateHeatParamsFromCsar(Resource resource, String csarUUID, Map<String, byte[]> csar, ArtifactTemplateInfo artifactTemplateInfo, ArtifactDefinition currentInfo, boolean isUpdateEnv) {
+ private Either<ArtifactDefinition, ResponseFormat> updateHeatParamsFromCsar(Resource resource, CsarInfo csarInfo, ArtifactTemplateInfo artifactTemplateInfo, ArtifactDefinition currentInfo, boolean isUpdateEnv) {
Either<ArtifactDefinition, ResponseFormat> resStatus = Either.left(currentInfo);
if (artifactTemplateInfo.getEnv() != null && !artifactTemplateInfo.getEnv().isEmpty()) {
- Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactparamsStatus = CsarValidationUtils.getArtifactsContent(csarUUID, csar, CsarUtils.ARTIFACTS_PATH + artifactTemplateInfo.getEnv(), artifactTemplateInfo.getEnv(),
+ Either<ImmutablePair<String, byte[]>, ResponseFormat> artifactparamsStatus = CsarValidationUtils.getArtifactsContent(csarInfo.getCsarUUID(), csarInfo.getCsar(), CsarUtils.ARTIFACTS_PATH + artifactTemplateInfo.getEnv(), artifactTemplateInfo.getEnv(),
componentsUtils);
if (artifactparamsStatus.isRight()) {
resStatus = Either.right(artifactparamsStatus.right().value());
@@ -3308,7 +3424,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Map<String, Object> buildJsonForUpdateArtifact(String artifactId, String artifactName, String artifactType, ArtifactGroupTypeEnum artifactGroupType, String label, String displayName, String description, byte[] artifactContentent,
- List<ArtifactTemplateInfo> updatedRequiredArtifacts) {
+ List<ArtifactTemplateInfo> updatedRequiredArtifacts) {
Map<String, Object> json = new HashMap<String, Object>();
if (artifactId != null && !artifactId.isEmpty())
@@ -3335,6 +3451,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return json;
}
+ @SuppressWarnings({ "unchecked", "static-access" })
private Either<Map<String, List<ArtifactTemplateInfo>>, ResponseFormat> parseResourceArtifactsInfoFromFile(Resource resource, String artifactsMetaFile, String artifactFileName, User user) {
try {
@@ -3434,7 +3551,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (allDataTypes.isRight()) {
TitanOperationStatus status = allDataTypes.right().value();
BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + status, ErrorSeverity.ERROR);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertTitanStatusToStorageStatus(status)), yamlName);
+ return Either.right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(DaoStatusConverter.convertTitanStatusToStorageStatus(status)), yamlName));
}
@@ -3446,6 +3563,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, Resource> originCompMap = new HashMap<>();
List<RequirementCapabilityRelDef> relations = new ArrayList<>();
+ Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
+
for (Entry<String, UploadComponentInstanceInfo> entry : uploadResInstancesMap.entrySet()) {
UploadComponentInstanceInfo uploadComponentInstanceInfo = entry.getValue();
ComponentInstance currentCompInstance = null;
@@ -3466,31 +3585,72 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
String resourceInstanceId = currentCompInstance.getUniqueId();
Resource originResource = null;
if (!originCompMap.containsKey(currentCompInstance.getComponentUid())) {
- Either<Resource, StorageOperationStatus> getPropertyRes = toscaOperationFacade.getToscaFullElement(currentCompInstance.getComponentUid());
- if (getPropertyRes.isRight()) {
- log.debug("failed to find properties of resource {} status is {}", currentCompInstance.getComponentUid(), getPropertyRes);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(getPropertyRes.right().value()), yamlName);
+ Either<Resource, StorageOperationStatus> getOriginResourceRes = toscaOperationFacade.getToscaFullElement(currentCompInstance.getComponentUid());
+ if (getOriginResourceRes.isRight()) {
+ log.debug("failed to fetch resource with uniqueId {} and tosca component name {} status is {}", currentCompInstance.getComponentUid(), currentCompInstance.getToscaComponentName(), getOriginResourceRes);
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(getOriginResourceRes.right().value()), yamlName);
return Either.right(responseFormat);
}
- originResource = getPropertyRes.left().value();
+ originResource = getOriginResourceRes.left().value();
originCompMap.put(originResource.getUniqueId(), originResource);
} else {
originResource = originCompMap.get(currentCompInstance.getComponentUid());
}
- if (originResource.getCapabilities() != null && !originResource.getCapabilities().isEmpty())
- instCapabilties.put(currentCompInstance, originResource.getCapabilities());
- if (originResource.getRequirements() != null && !originResource.getRequirements().isEmpty())
- instRequirements.put(currentCompInstance, originResource.getRequirements());
+ if (originResource.getCapabilities() != null && !originResource.getCapabilities().isEmpty()) {
+ Map<String, List<CapabilityDefinition>> originCapabilities ;
+ if (MapUtils.isNotEmpty(uploadComponentInstanceInfo.getCapabilitiesNamesToUpdate()) && resource.getResourceType() == ResourceTypeEnum.CVFC) {
+ originCapabilities = new HashMap<>();
+ originResource.getCapabilities().entrySet().stream().forEach(e ->{
+ List<CapabilityDefinition> list = e.getValue().stream().map(l -> new CapabilityDefinition(l)).collect(Collectors.toList());
+ originCapabilities.put(e.getKey(), list);
+ });
+ for (List<CapabilityDefinition> capabilities : originCapabilities.values()) {
+ capabilities.stream().filter(c -> uploadComponentInstanceInfo.getCapabilitiesNamesToUpdate().containsKey(c.getName())).forEach(c -> c.setName(uploadComponentInstanceInfo.getCapabilitiesNamesToUpdate().get(c.getName())));
+ }
+ }else{
+ originCapabilities = originResource.getCapabilities();
+ }
+ instCapabilties.put(currentCompInstance, originCapabilities);
+ }
+ if (originResource.getRequirements() != null && !originResource.getRequirements().isEmpty()) {
+ Map<String, List<RequirementDefinition>> originRequirements;
+ if (MapUtils.isNotEmpty(uploadComponentInstanceInfo.getRequirementsNamesToUpdate()) && resource.getResourceType() == ResourceTypeEnum.CVFC) {
+ originRequirements = new HashMap<>();
+ originResource.getRequirements().entrySet().stream().forEach(e ->{
+ List<RequirementDefinition> list = e.getValue().stream().map(l -> new RequirementDefinition(l)).collect(Collectors.toList());
+ originRequirements.put(e.getKey(), list);
+ });
+ for (List<RequirementDefinition> requirements : originRequirements.values()) {
+ requirements.stream().filter(r -> uploadComponentInstanceInfo.getRequirementsNamesToUpdate().containsKey(r.getName())).forEach(r -> r.setName(uploadComponentInstanceInfo.getRequirementsNamesToUpdate().get(r.getName())));
+ }
+ }else{
+ originRequirements = originResource.getRequirements();
+ }
+ instRequirements.put(currentCompInstance, originRequirements);
+ }
if (originResource.getDeploymentArtifacts() != null && !originResource.getDeploymentArtifacts().isEmpty())
instArtifacts.put(resourceInstanceId, originResource.getDeploymentArtifacts());
if (originResource.getAttributes() != null && !originResource.getAttributes().isEmpty())
instAttributes.put(resourceInstanceId, originResource.getAttributes());
-
- ResponseFormat addPropertiesValueToRiRes = addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance, yamlName, instProperties, allDataTypes.left().value());
- if (addPropertiesValueToRiRes.getStatus() != 200) {
- return Either.right(addPropertiesValueToRiRes);
+ if (originResource.getResourceType() != ResourceTypeEnum.CVFC) {
+ ResponseFormat addPropertiesValueToRiRes = addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance, yamlName, instProperties, allDataTypes.left().value());
+ if (addPropertiesValueToRiRes.getStatus() != 200) {
+ return Either.right(addPropertiesValueToRiRes);
+ }
+ } else {
+ Either<Resource, ResponseFormat> genericResourceEither = fetchAndSetDerivedFromGenericType(originResource);
+ if (genericResourceEither.isRight()) {
+ return genericResourceEither;
+ }
+ log.trace("************* Going to add inputs from from original resource {} to resource instance. ", originResource.getName());
+ if (originResource.shouldGenerateInputs())
+ generateInputsFromGenericTypeProperties(originResource, genericResourceEither.left().value());
+
+ ResponseFormat addInputValueToRiRes = addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance, yamlName, instInputs, allDataTypes.left().value());
+ if (addInputValueToRiRes.getStatus() != 200) {
+ return Either.right(addInputValueToRiRes);
+ }
}
-
}
Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> addPropToInst = toscaOperationFacade.associateComponentInstancePropertiesToComponent(instProperties, resource.getUniqueId());
@@ -3499,7 +3659,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(addPropToInst.right().value()), yamlName);
return Either.right(responseFormat);
}
-
+ if (instInputs != null && !instInputs.isEmpty()) {
+ Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> addInputToInst = toscaOperationFacade.associateComponentInstanceInputsToComponent(instInputs, resource.getUniqueId());
+ if (addInputToInst.isRight()) {
+ log.debug("failed to associate inputs value of resource {} status is {}", resource.getUniqueId(), addInputToInst.right().value());
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(addInputToInst.right().value()), yamlName);
+ return Either.right(responseFormat);
+ }
+ }
StorageOperationStatus addArtToInst = toscaOperationFacade.associateArtifactToInstances(instArtifacts, resource.getUniqueId(), user);
if (addArtToInst != StorageOperationStatus.OK && addArtToInst != StorageOperationStatus.NOT_FOUND) {
log.debug("failed to associate artifact of resource {} status is {}", resource.getUniqueId(), addArtToInst);
@@ -3585,8 +3752,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
private ResponseFormat addRelationToRI(String yamlName, Resource resource, UploadComponentInstanceInfo nodesInfoValue, List<RequirementCapabilityRelDef> relations) {
List<ComponentInstance> componentInstancesList = resource.getComponentInstances();
- long totalCreateRel = 0;
- long totalCreatePropVal = 0;
UploadComponentInstanceInfo uploadComponentInstanceInfo = nodesInfoValue;
@@ -3609,95 +3774,188 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
String resourceInstanceId = currentCompInstance.getUniqueId();
- log.debug("************* addPropertyValuesToRi start");
- long startAddProperty = System.currentTimeMillis();
- log.debug("************* addPropertyValuesToRi end");
- totalCreatePropVal += (System.currentTimeMillis() - startAddProperty);
Map<String, List<UploadReqInfo>> regMap = uploadComponentInstanceInfo.getRequirements();
- if (regMap == null) {
+
+ if (regMap != null) {
+ Iterator<Entry<String, List<UploadReqInfo>>> nodesRegValue = regMap.entrySet().iterator();
+
+ while (nodesRegValue.hasNext()) {
+ Entry<String, List<UploadReqInfo>> nodesRegInfoEntry = nodesRegValue.next();
+
+ List<UploadReqInfo> uploadRegInfoList = nodesRegInfoEntry.getValue();
+ for (UploadReqInfo uploadRegInfo : uploadRegInfoList) {
+ log.debug("Going to create relation {}", uploadRegInfo.getName());
+ String regName = uploadRegInfo.getName();
+ RequirementCapabilityRelDef regCapRelDef = new RequirementCapabilityRelDef();
+ regCapRelDef.setFromNode(resourceInstanceId);
+ log.debug("try to find available requirement {} ", regName);
+ Either<RequirementDefinition, ResponseFormat> eitherReqStatus = findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, uploadRegInfo.getCapabilityName());
+ if (eitherReqStatus.isRight()) {
+ log.debug("failed to find available requirement {} status is {}", regName, eitherReqStatus.right().value());
+ return eitherReqStatus.right().value();
+ }
+
+ RequirementDefinition validReq = eitherReqStatus.left().value();
+ List<RequirementAndRelationshipPair> reqAndRelationshipPairList = regCapRelDef.getRelationships();
+ if (reqAndRelationshipPairList == null)
+ reqAndRelationshipPairList = new ArrayList<RequirementAndRelationshipPair>();
+ RequirementAndRelationshipPair reqAndRelationshipPair = new RequirementAndRelationshipPair();
+ reqAndRelationshipPair.setRequirement(regName);
+ reqAndRelationshipPair.setRequirementOwnerId(validReq.getOwnerId());
+ reqAndRelationshipPair.setRequirementUid(validReq.getUniqueId());
+ RelationshipImpl relationship = new RelationshipImpl();
+ relationship.setType(validReq.getCapability());
+ reqAndRelationshipPair.setRelationships(relationship);
+
+ ComponentInstance currentCapCompInstance = null;
+ for (ComponentInstance compInstance : componentInstancesList) {
+ if (compInstance.getName().equals(uploadRegInfo.getNode())) {
+ currentCapCompInstance = compInstance;
+ break;
+ }
+ }
+
+ if (currentCapCompInstance == null) {
+ log.debug("The component instance with name {} not found on resource {} ", uploadRegInfo.getNode(), resource.getUniqueId());
+ BeEcompErrorManager.getInstance().logInternalDataError("component instance with name " + uploadRegInfo.getNode() + " in resource {} ", resource.getUniqueId(), ErrorSeverity.ERROR);
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
+ return responseFormat;
+ }
+ regCapRelDef.setToNode(currentCapCompInstance.getUniqueId());
+ log.debug("try to find aviable Capability req name is {} ", validReq.getName());
+ CapabilityDefinition aviableCapForRel = findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadRegInfo);
+ if (aviableCapForRel == null) {
+ log.debug("aviable capability was not found. req name is {} component instance is {}", validReq.getName(), currentCapCompInstance.getUniqueId());
+ BeEcompErrorManager.getInstance().logInternalDataError("aviable capability was not found. req name is " + validReq.getName() + " component instance is " + currentCapCompInstance.getUniqueId(), resource.getUniqueId(),
+ ErrorSeverity.ERROR);
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
+ return responseFormat;
+ }
+ reqAndRelationshipPair.setCapability(aviableCapForRel.getName());
+ reqAndRelationshipPair.setCapabilityUid(aviableCapForRel.getUniqueId());
+ reqAndRelationshipPair.setCapabilityOwnerId(aviableCapForRel.getOwnerId());
+ reqAndRelationshipPairList.add(reqAndRelationshipPair);
+ regCapRelDef.setRelationships(reqAndRelationshipPairList);
+ relations.add(regCapRelDef);
+ }
+ }
+ } else if (resource.getResourceType() != ResourceTypeEnum.CVFC) {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.OK, yamlName);
return responseFormat;
}
- Iterator<Entry<String, List<UploadReqInfo>>> nodesRegValue = regMap.entrySet().iterator();
-
- long startAddRelation = System.currentTimeMillis();
-
- while (nodesRegValue.hasNext()) {
- Entry<String, List<UploadReqInfo>> nodesRegInfoEntry = nodesRegValue.next();
-
- List<UploadReqInfo> uploadRegInfoList = nodesRegInfoEntry.getValue();
- for (UploadReqInfo uploadRegInfo : uploadRegInfoList) {
- log.debug("Going to create relation {}", uploadRegInfo.getName());
- String regName = uploadRegInfo.getName();
- String nodeCapName = uploadRegInfo.getNode();
- RequirementCapabilityRelDef regCapRelDef = new RequirementCapabilityRelDef();
- regCapRelDef.setFromNode(resourceInstanceId);
- log.debug("try to find available requirement {} ", regName);
- Either<RequirementDefinition, ResponseFormat> eitherReqStatus = findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, uploadRegInfo.getCapabilityName());
- if (eitherReqStatus.isRight()) {
- log.debug("failed to find available requirement {} status is {}", regName, eitherReqStatus.right().value());
- return eitherReqStatus.right().value();
- }
-
- RequirementDefinition validReq = eitherReqStatus.left().value();
- List<RequirementAndRelationshipPair> reqAndRelationshipPairList = regCapRelDef.getRelationships();
- if (reqAndRelationshipPairList == null)
- reqAndRelationshipPairList = new ArrayList<RequirementAndRelationshipPair>();
- RequirementAndRelationshipPair reqAndRelationshipPair = new RequirementAndRelationshipPair();
- reqAndRelationshipPair.setRequirement(regName);
- reqAndRelationshipPair.setRequirementOwnerId(validReq.getOwnerId());
- reqAndRelationshipPair.setRequirementUid(validReq.getUniqueId());
- RelationshipImpl relationship = new RelationshipImpl();
- relationship.setType(validReq.getCapability());
- reqAndRelationshipPair.setRelationships(relationship);
-
- ComponentInstance currentCapCompInstance = null;
- for (ComponentInstance compInstance : componentInstancesList) {
- if (compInstance.getName().equals(uploadRegInfo.getNode())) {
- currentCapCompInstance = compInstance;
- break;
- }
+ return componentsUtils.getResponseFormat(ActionStatus.OK);
+ }
+
+ private ResponseFormat addInputsValuesToRi(UploadComponentInstanceInfo uploadComponentInstanceInfo, Resource resource, Resource originResource, ComponentInstance currentCompInstance, String yamlName,
+ Map<String, List<ComponentInstanceInput>> instInputs, Map<String, DataTypeDefinition> allDataTypes) {
+ Map<String, List<UploadPropInfo>> propMap = uploadComponentInstanceInfo.getProperties();
+ if (propMap != null && propMap.size() > 0) {
+ Map<String, InputDefinition> currPropertiesMap = new HashMap<String, InputDefinition>();
+
+ List<InputDefinition> listFromMap = originResource.getInputs();
+ if (listFromMap == null || listFromMap.isEmpty()) {
+ log.debug("failed to find properties ");
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND);
+ return responseFormat;
+ }
+ for (InputDefinition prop : listFromMap) {
+ String propName = prop.getName();
+ if (!currPropertiesMap.containsKey(propName)) {
+ currPropertiesMap.put(propName, prop);
}
+ }
+ List<ComponentInstanceInput> instPropList = new ArrayList<>();
+ for (List<UploadPropInfo> propertyList : propMap.values()) {
- if (currentCapCompInstance == null) {
- log.debug("component instance with name {} in resource {} ", uploadRegInfo.getNode(), resource.getUniqueId());
- BeEcompErrorManager.getInstance().logInternalDataError("component instance with name " + uploadRegInfo.getNode() + " in resource {} ", resource.getUniqueId(), ErrorSeverity.ERROR);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
+ UploadPropInfo propertyInfo = propertyList.get(0);
+ String propName = propertyInfo.getName();
+ if (!currPropertiesMap.containsKey(propName)) {
+ log.debug("failed to find property {} ", propName);
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND, propName);
return responseFormat;
}
- regCapRelDef.setToNode(currentCapCompInstance.getUniqueId());
- log.debug("try to find aviable Capability req name is {} ", validReq.getName());
- CapabilityDefinition aviableCapForRel = findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadRegInfo);
- if (aviableCapForRel == null) {
- log.debug("aviable capability was not found. req name is {} component instance is {}", validReq.getName(), currentCapCompInstance.getUniqueId());
- BeEcompErrorManager.getInstance().logInternalDataError("aviable capability was not found. req name is " + validReq.getName() + " component instance is " + currentCapCompInstance.getUniqueId(), resource.getUniqueId(),
- ErrorSeverity.ERROR);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
- return responseFormat;
+ InputDefinition curPropertyDef = currPropertiesMap.get(propName);
+ ComponentInstanceInput property = null;
+
+ String value = null;
+ List<GetInputValueDataDefinition> getInputs = null;
+ boolean isValidate = true;
+ if (propertyInfo.getValue() != null) {
+ getInputs = propertyInfo.getGet_input();
+ isValidate = getInputs == null || getInputs.isEmpty();
+ if (isValidate) {
+ value = ImportUtils.getPropertyJsonStringValue(propertyInfo.getValue(), curPropertyDef.getType());
+ } else
+ value = ImportUtils.getPropertyJsonStringValue(propertyInfo.getValue(), ToscaTagNamesEnum.GET_INPUT.getElementName());
}
- reqAndRelationshipPair.setCapability(aviableCapForRel.getName());
- reqAndRelationshipPair.setCapabilityUid(aviableCapForRel.getUniqueId());
- reqAndRelationshipPair.setCapabilityOwnerId(aviableCapForRel.getOwnerId());
- reqAndRelationshipPairList.add(reqAndRelationshipPair);
- regCapRelDef.setRelationships(reqAndRelationshipPairList);
- relations.add(regCapRelDef);
+ String innerType = null;
+ property = new ComponentInstanceInput(curPropertyDef, value, null);
- }
+ Either<String, StorageOperationStatus> validatevalueEiter = validatePropValueBeforeCreate(property, value, isValidate, innerType, allDataTypes);
+ if (validatevalueEiter.isRight()) {
+ return componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(validatevalueEiter.right().value()));
+ }
- }
- totalCreateRel += (System.currentTimeMillis() - startAddRelation);
+ // String uniqueId = UniqueIdBuilder.buildResourceInstancePropertyValueUid(currentCompInstance.getComponentUid(), index++);
+ // property.setUniqueId(uniqueId);
+ property.setValue(validatevalueEiter.left().value());
+
+ if (getInputs != null && !getInputs.isEmpty()) {
+ List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
+ for (GetInputValueDataDefinition getInput : getInputs) {
+ List<InputDefinition> inputs = resource.getInputs();
+ if (inputs == null || inputs.isEmpty()) {
+ log.debug("Failed to add property {} to resource instance {}. Inputs list is empty ", property, currentCompInstance.getUniqueId());
+ return componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT);
+ }
+
+ Optional<InputDefinition> optional = inputs.stream().filter(p -> p.getName().equals(getInput.getInputName())).findAny();
+ if (!optional.isPresent()) {
+ log.debug("Failed to find input {} ", getInput.getInputName());
+ // @@TODO error message
+ return componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT);
+ }
+ InputDefinition input = optional.get();
+ getInput.setInputId(input.getUniqueId());
+ getInputValues.add(getInput);
+ GetInputValueDataDefinition getInputIndex = getInput.getGetInputIndex();
+ if (getInputIndex != null) {
+ optional = inputs.stream().filter(p -> p.getName().equals(getInputIndex.getInputName())).findAny();
+ if (!optional.isPresent()) {
+ log.debug("Failed to find input {} ", getInputIndex.getInputName());
+ // @@TODO error message
+ return componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT);
+ }
+ InputDefinition inputIndex = optional.get();
+ getInputIndex.setInputId(inputIndex.getUniqueId());
+ getInputValues.add(getInputIndex);
+ }
+ }
+ property.setGetInputValues(getInputValues);
+ }
+ instPropList.add(property);
+ // delete overriden property
+ currPropertiesMap.remove(property.getName());
+ }
+ // add rest of properties
+ if (!currPropertiesMap.isEmpty()) {
+ for (InputDefinition value : currPropertiesMap.values()) {
+ instPropList.add(new ComponentInstanceInput(value));
+ }
+ }
+ instInputs.put(currentCompInstance.getUniqueId(), instPropList);
+ }
return componentsUtils.getResponseFormat(ActionStatus.OK);
}
private ResponseFormat addPropertyValuesToRi(UploadComponentInstanceInfo uploadComponentInstanceInfo, Resource resource, Resource originResource, ComponentInstance currentCompInstance, String yamlName,
- Map<String, List<ComponentInstanceProperty>> instProperties, Map<String, DataTypeDefinition> allDataTypes) {
+ Map<String, List<ComponentInstanceProperty>> instProperties, Map<String, DataTypeDefinition> allDataTypes) {
Map<String, List<UploadPropInfo>> propMap = uploadComponentInstanceInfo.getProperties();
if (propMap != null && propMap.size() > 0) {
Map<String, PropertyDefinition> currPropertiesMap = new HashMap<String, PropertyDefinition>();
- int index = 0;
List<PropertyDefinition> listFromMap = originResource.getProperties();
if (listFromMap == null || listFromMap.isEmpty()) {
log.debug("failed to find properties ");
@@ -3845,14 +4103,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return cap;
}
- private RequirementAndRelationshipPair getReqRelPair(CapabilityDefinition cap) {
- RequirementAndRelationshipPair relationPair = new RequirementAndRelationshipPair();
- relationPair.setCapabilityUid(cap.getUniqueId());
- relationPair.setCapability(cap.getName());
- relationPair.setCapabilityOwnerId(cap.getOwnerId());
- return relationPair;
- }
-
private CapabilityDefinition findAviableCapability(RequirementDefinition validReq, ComponentInstance currentCapCompInstance) {
CapabilityDefinition aviableCapForRel = null;
Map<String, List<CapabilityDefinition>> capMap = currentCapCompInstance.getCapabilities();
@@ -3955,9 +4205,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
@SuppressWarnings("unchecked")
- public Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYaml(String yamlFileName, Resource resource, String resourceYml, User user) {
+ public Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYaml(String yamlFileName, Resource resource, String resourceYml, User user, Map<String, String> createdNodesToscaResourceNames, Map<String, NodeTypeInfo> nodeTypesInfo, String nodeName) {
- Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(resourceYml);
+ Map<String, Object> mappedToscaTemplate;
+ if(nodeTypesInfo != null && nodeName != null && nodeTypesInfo.containsKey(nodeName)){
+ mappedToscaTemplate = nodeTypesInfo.get(nodeName).getMappedToscaTemplate();
+ }
+ else {
+ mappedToscaTemplate = (Map<String, Object>) new Yaml().load(resourceYml);
+ }
Either<Object, ResultStatusEnum> toscaElementEither = ImportUtils.findToscaElement(mappedToscaTemplate, ToscaTagNamesEnum.TOPOLOGY_TEMPLATE, ToscaElementTypeEnum.ALL);
if (toscaElementEither.isRight()) {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE);
@@ -3970,7 +4226,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.right(responseFormat);
}
- Either<Map<String, UploadComponentInstanceInfo>, ResponseFormat> uploadResInstancesEither = createResourcesInstanceInfoFromYaml(yamlFileName, mappedToscaTemplate, resource);
+ Either<Map<String, UploadComponentInstanceInfo>, ResponseFormat> uploadResInstancesEither = createResourcesInstanceInfoFromYaml(yamlFileName, mappedToscaTemplate, resource, createdNodesToscaResourceNames);
if (uploadResInstancesEither.isRight()) {
ResponseFormat responseFormat = uploadResInstancesEither.right().value();
return Either.right(responseFormat);
@@ -3991,7 +4247,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<Resource, ResponseFormat> createResourceInstances(User user, String yamlName, Resource resource, Map<String, UploadComponentInstanceInfo> uploadResInstancesMap, boolean inTransaction, boolean needLock,
- Map<String, Resource> nodeTypeNamespaceMap) {
+ Map<String, Resource> nodeNamespaceMap) {
Either<Resource, ResponseFormat> eitherResource = null;
log.debug("createResourceInstances is {} - going to create resource instanse from CSAR", yamlName);
@@ -4002,8 +4258,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
Map<String, Resource> existingnodeTypeMap = new HashMap<>();
- if (nodeTypeNamespaceMap != null && !nodeTypeNamespaceMap.isEmpty()) {
- nodeTypeNamespaceMap.entrySet().stream().forEach(x -> existingnodeTypeMap.put(x.getValue().getToscaResourceName(), x.getValue()));
+ if (nodeNamespaceMap != null && !nodeNamespaceMap.isEmpty()) {
+ nodeNamespaceMap.entrySet().stream().forEach(x -> existingnodeTypeMap.put(x.getValue().getToscaResourceName(), x.getValue()));
}
Iterator<Entry<String, UploadComponentInstanceInfo>> nodesInfoValue = uploadResInstancesMap.entrySet().iterator();
@@ -4016,8 +4272,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// updating type if the type is node type name - we need to take the
// updated name
log.debug("*************Going to create resource instances {}", uploadComponentInstanceInfo.getName());
- if (nodeTypeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
- uploadComponentInstanceInfo.setType(nodeTypeNamespaceMap.get(uploadComponentInstanceInfo.getType()).getToscaResourceName());
+ if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
+ uploadComponentInstanceInfo.setType(nodeNamespaceMap.get(uploadComponentInstanceInfo.getType()).getToscaResourceName());
}
eitherResource = validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, existingnodeTypeMap);
@@ -4093,11 +4349,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(eitherGerResource.left().value());
}
- private Either<Resource, ResponseFormat> validateResourceInstanceBeforeCreate(String yamlName, UploadComponentInstanceInfo uploadComponentInstanceInfo, Map<String, Resource> nodeTypeNamespaceMap) {
+ private Either<Resource, ResponseFormat> validateResourceInstanceBeforeCreate(String yamlName, UploadComponentInstanceInfo uploadComponentInstanceInfo, Map<String, Resource> nodeNamespaceMap) {
log.debug("validateResourceInstanceBeforeCreate - going to validate resource instance with name {} and type before create", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
Resource refResource = null;
- if (nodeTypeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
- refResource = nodeTypeNamespaceMap.get(uploadComponentInstanceInfo.getType());
+ if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
+ refResource = nodeNamespaceMap.get(uploadComponentInstanceInfo.getType());
} else {
Either<Resource, StorageOperationStatus> findResourceEither = toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(uploadComponentInstanceInfo.getType());
if (findResourceEither.isRight()) {
@@ -4106,7 +4362,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.right(responseFormat);
}
refResource = findResourceEither.left().value();
- nodeTypeNamespaceMap.put(refResource.getToscaResourceName(), refResource);
+ nodeNamespaceMap.put(refResource.getToscaResourceName(), refResource);
}
String componentState = refResource.getComponentMetadataDefinition().getMetadataDataDefinition().getState();
if (componentState.equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())) {
@@ -4114,32 +4370,36 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.ILLEGAL_COMPONENT_STATE, refResource.getComponentType().getValue(), refResource.getName(), componentState);
return Either.right(responseFormat);
}
- ResourceTypeEnum resourceTypeEnum = refResource.getResourceType();
- if (resourceTypeEnum == ResourceTypeEnum.VF) {
- log.debug("validateResourceInstanceBeforeCreate - ref resource type is ", resourceTypeEnum);
+
+ if (!ToscaUtils.isAtomicType(refResource) && refResource.getResourceType() != ResourceTypeEnum.CVFC) {
+ log.debug("validateResourceInstanceBeforeCreate - ref resource type is ", refResource.getResourceType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.right(responseFormat);
}
return Either.left(refResource);
}
- private Either<Map<String, UploadComponentInstanceInfo>, ResponseFormat> createResourcesInstanceInfoFromYaml(String yamlFileName, Map<String, Object> toscaJson, Resource resource) {
+ private Either<Map<String, UploadComponentInstanceInfo>, ResponseFormat> createResourcesInstanceInfoFromYaml(String yamlFileName, Map<String, Object> toscaJson, Resource resource, Map<String, String> createdNodesToscaResourceNames) {
Map<String, UploadComponentInstanceInfo> moduleComponentInstances = new HashMap<String, UploadComponentInstanceInfo>();
+ Map<String, Object> substitutionMappings = null;
Either<Map<String, UploadComponentInstanceInfo>, ResponseFormat> result = Either.left(moduleComponentInstances);
Either<Map<String, Object>, ResultStatusEnum> eitherNodesTemlates = ImportUtils.findFirstToscaMapElement(toscaJson, ToscaTagNamesEnum.NODE_TEMPLATES);
+ Either<Map<String, Object>, ResultStatusEnum> eitherSubstitutionMappings = ImportUtils.findFirstToscaMapElement(toscaJson, ToscaTagNamesEnum.SUBSTITUTION_MAPPINGS);
+ if (eitherSubstitutionMappings.isLeft()) {
+ substitutionMappings = eitherSubstitutionMappings.left().value();
+ }
if (eitherNodesTemlates.isLeft()) {
Map<String, Object> jsonNodeTemplates = eitherNodesTemlates.left().value();
Iterator<Entry<String, Object>> nodesNameValue = jsonNodeTemplates.entrySet().iterator();
while (nodesNameValue.hasNext()) {
Entry<String, Object> nodeNameValue = nodesNameValue.next();
- Either<UploadComponentInstanceInfo, ResponseFormat> eitherNode = createModuleComponentInstanceInfo(nodeNameValue.getValue());
+ Either<UploadComponentInstanceInfo, ResponseFormat> eitherNode = createModuleComponentInstanceInfo(nodeNameValue, substitutionMappings, createdNodesToscaResourceNames);
if (eitherNode.isRight()) {
log.info("error when creating node template:{}, for resource:{}", nodeNameValue.getKey(), resource.getName());
return Either.right(eitherNode.right().value());
} else {
UploadComponentInstanceInfo uploadComponentInstanceInfo = eitherNode.left().value();
- uploadComponentInstanceInfo.setName(nodeNameValue.getKey());
moduleComponentInstances.put(nodeNameValue.getKey(), uploadComponentInstanceInfo);
}
@@ -4154,20 +4414,25 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
- private Either<UploadComponentInstanceInfo, ResponseFormat> createModuleComponentInstanceInfo(Object nodeTemplateJson) {
+ @SuppressWarnings("unchecked")
+ private Either<UploadComponentInstanceInfo, ResponseFormat> createModuleComponentInstanceInfo(Entry<String, Object> nodeTemplateJsonEntry, Map<String, Object> substitutionMappings, Map<String, String> createdNodesToscaResourceNames) {
UploadComponentInstanceInfo nodeTemplateInfo = new UploadComponentInstanceInfo();
Either<UploadComponentInstanceInfo, ResponseFormat> result = Either.left(nodeTemplateInfo);
-
+ nodeTemplateInfo.setName(nodeTemplateJsonEntry.getKey());
try {
- if (nodeTemplateJson instanceof String) {
- String nodeTemplateJsonString = (String) nodeTemplateJson;
+ if (nodeTemplateJsonEntry.getValue() instanceof String) {
+ String nodeTemplateJsonString = (String) nodeTemplateJsonEntry.getValue();
nodeTemplateInfo.setType(nodeTemplateJsonString);
- } else if (nodeTemplateJson instanceof Map) {
- Map<String, Object> nodeTemplateJsonMap = (Map<String, Object>) nodeTemplateJson;
+ } else if (nodeTemplateJsonEntry.getValue() instanceof Map) {
+ Map<String, Object> nodeTemplateJsonMap = (Map<String, Object>) nodeTemplateJsonEntry.getValue();
// Type
if (nodeTemplateJsonMap.containsKey(ToscaTagNamesEnum.TYPE.getElementName())) {
- nodeTemplateInfo.setType((String) nodeTemplateJsonMap.get(ToscaTagNamesEnum.TYPE.getElementName()));
+ String toscaResourceType = (String) nodeTemplateJsonMap.get(ToscaTagNamesEnum.TYPE.getElementName());
+ if (createdNodesToscaResourceNames.containsKey(toscaResourceType)) {
+ toscaResourceType = createdNodesToscaResourceNames.get(toscaResourceType);
+ }
+ nodeTemplateInfo.setType(toscaResourceType);
}
if (nodeTemplateJsonMap.containsKey(ToscaTagNamesEnum.REQUIREMENTS.getElementName())) {
@@ -4195,13 +4460,30 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
nodeTemplateInfo.setProperties(regResponse.left().value());
}
}
+ if (substitutionMappings != null) {
+ if (substitutionMappings.containsKey(ToscaTagNamesEnum.CAPABILITIES.getElementName())) {
+ Either<Map<String, String>, ResponseFormat> getCapNamesToUpdateRes = getNamesToUpdate(nodeTemplateInfo, (Map<String, List<String>>) substitutionMappings.get(ToscaTagNamesEnum.CAPABILITIES.getElementName()));
+ if (getCapNamesToUpdateRes.isRight())
+ return Either.right(getCapNamesToUpdateRes.right().value());
+ if (getCapNamesToUpdateRes.left().value().size() > 0) {
+ nodeTemplateInfo.setCapabilitiesNamesToUpdate(getCapNamesToUpdateRes.left().value());
+ }
+ }
+ if (substitutionMappings.containsKey(ToscaTagNamesEnum.REQUIREMENTS.getElementName())) {
+ Either<Map<String, String>, ResponseFormat> getReqNamesToUpdateRes = getNamesToUpdate(nodeTemplateInfo, (Map<String, List<String>>) substitutionMappings.get(ToscaTagNamesEnum.REQUIREMENTS.getElementName()));
+ if (getReqNamesToUpdateRes.isRight())
+ return Either.right(getReqNamesToUpdateRes.right().value());
+ if (getReqNamesToUpdateRes.left().value().size() > 0) {
+ nodeTemplateInfo.setRequirementsNamesToUpdate(getReqNamesToUpdateRes.left().value());
+ }
+ }
+ }
} else {
result = Either.right(componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE));
}
} catch (Exception e) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeSystemError, "Import Resource - create capability");
BeEcompErrorManager.getInstance().logBeSystemError("Import Resource - create capability");
log.debug("error when creating capability, message:{}", e.getMessage(), e);
result = Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_YAML));
@@ -4210,6 +4492,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
+ private Either<Map<String, String>, ResponseFormat> getNamesToUpdate(UploadComponentInstanceInfo nodeTemplateInfo, Map<String, List<String>> elements) {
+ Either<Map<String, String>, ResponseFormat> response;
+ try {
+ Map<String, String> namesToUpdate = elements.entrySet().stream().filter(e -> e.getValue().get(0).equalsIgnoreCase(nodeTemplateInfo.getName())).collect(Collectors.toMap(e -> e.getValue().get(1), e -> e.getKey()));
+ response = Either.left(namesToUpdate);
+ } catch (Exception e) {
+ log.debug("The exception {} occured upon adding names to update for instance {} . ", e.getMessage(), nodeTemplateInfo.getName());
+ response = Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
+ }
+ return response;
+ }
+
+ @SuppressWarnings("unchecked")
private Either<Map<String, List<UploadPropInfo>>, ResponseFormat> createPropModuleFromYaml(Map<String, Object> nodeTemplateJsonMap) {
Map<String, List<UploadPropInfo>> moduleProp = new HashMap<String, List<UploadPropInfo>>();
Either<Map<String, List<UploadPropInfo>>, ResponseFormat> response = Either.left(moduleProp);
@@ -4222,21 +4517,21 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Object propValue = jsonPropObj.getValue();
if (valueContainsPattern(STR_REPLACE_PATTERN, propValue)) {
- log.debug("Ignore property value {}.", propName);
+ log.trace("Ignore property value {}.", propName);
continue;
}
if (valueContainsPattern(TOKEN_PATTERN, propValue)) {
- log.debug("Ignore property value {}.", propName);
+ log.trace("Ignore property value {}.", propName);
continue;
}
if (valueContainsPattern(GET_PROPERTY_PATTERN, propValue)) {
- log.debug("Ignore property value {}.", propName);
+ log.trace("Ignore property value {}.", propName);
continue;
}
if (valueContainsPattern(CONCAT_PATTERN, propValue)) {
- log.debug("Ignore property value {}.", propName);
+ log.trace("Ignore property value {}.", propName);
continue;
}
@@ -4283,6 +4578,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return response;
}
+ @SuppressWarnings("unchecked")
private void createInputPropList(UploadPropInfo propertyDef, List<Object> propValueList) {
for (Object objValue : propValueList) {
@@ -4316,6 +4612,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
+ @SuppressWarnings("unchecked")
private void createGetInputModuleFromMap(String propName, Map<String, Object> propValue, UploadPropInfo propertyDef) {
if (propValue.containsKey(ToscaTagNamesEnum.GET_INPUT.getElementName())) {
@@ -4399,7 +4696,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
log.debug("valueContainsToken value is {}", propValue);
boolean result = false;
if (propValue != null) {
- log.debug("valueContainspattern value is {}", propValue.getClass());
+ log.trace("valueContainspattern value is {}", propValue.getClass());
Matcher matcher = pattern.matcher(propValue.toString());
result = matcher.find();
}
@@ -4408,6 +4705,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
+ @SuppressWarnings("unchecked")
private Either<Map<String, List<UploadCapInfo>>, ResponseFormat> createCapModuleFromYaml(UploadComponentInstanceInfo nodeTemplateInfo, Map<String, Object> nodeTemplateJsonMap) {
Map<String, List<UploadCapInfo>> moduleCap = new HashMap<String, List<UploadCapInfo>>();
Either<Map<String, List<UploadCapInfo>>, ResponseFormat> response = Either.left(moduleCap);
@@ -4433,15 +4731,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
list.add(requirementDef);
moduleCap.put(capName, list);
}
-
}
}
-
}
-
return response;
}
+ @SuppressWarnings("unchecked")
private Either<Map<String, List<UploadReqInfo>>, ResponseFormat> createReqModuleFromYaml(UploadComponentInstanceInfo nodeTemplateInfo, Map<String, Object> nodeTemplateJsonMap) {
Map<String, List<UploadReqInfo>> moduleRequirements = new HashMap<String, List<UploadReqInfo>>();
Either<Map<String, List<UploadReqInfo>>, ResponseFormat> response = Either.left(moduleRequirements);
@@ -4467,14 +4763,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
list.add(requirementDef);
moduleRequirements.put(requirementName, list);
}
-
}
}
-
}
return response;
}
+ @SuppressWarnings("unchecked")
private Either<UploadCapInfo, ResponseFormat> createModuleNodeTemplateCap(Object capObject) {
UploadCapInfo capTemplateInfo = new UploadCapInfo();
Either<UploadCapInfo, ResponseFormat> result = Either.left(capTemplateInfo);
@@ -4509,10 +4804,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
}
-
return result;
}
+ @SuppressWarnings("unchecked")
private Either<UploadReqInfo, ResponseFormat> createModuleNodeTemplateReg(Object regObject) {
UploadReqInfo regTemplateInfo = new UploadReqInfo();
@@ -4532,33 +4827,31 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
regTemplateInfo.setCapabilityName((String) nodeTemplateJsonMap.get(ToscaTagNamesEnum.CAPABILITY.getElementName()));
}
}
-
return result;
}
- public Either<Resource, ResponseFormat> propagateStateToCertified(User user, Resource resource, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction, boolean needLock) {
+ public Either<Resource, ResponseFormat> propagateStateToCertified(User user, Resource resource, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction, boolean needLock, boolean forceCertificationAllowed) {
+
Either<Resource, ResponseFormat> result = null;
-
- // resource updated with checkout. certify the resource
- if (resource.getLifecycleState().equals(LifecycleStateEnum.CERTIFIED)) {
- Either<Either<ArtifactDefinition, Operation>, ResponseFormat> eitherPopulated = populateToscaArtifacts(resource, user, false, inTransaction, needLock);
- result = eitherPopulated.isLeft() ? Either.left(resource) : Either.right(eitherPopulated.right().value());
- return result;
- }
try {
- result = lifecycleBusinessLogic.changeState(resource.getUniqueId(), user, LifeCycleTransitionEnum.CERTIFICATION_REQUEST, lifecycleChangeInfo, inTransaction, needLock);
- if (result.isLeft()) {
+ if(resource.getLifecycleState() != LifecycleStateEnum.CERTIFIED && forceCertificationAllowed){
+ result = nodeForceCertification(resource, user, lifecycleChangeInfo, inTransaction, needLock);
+ if(result.isRight()){
+ return result;
+ }
resource = result.left().value();
- result = lifecycleBusinessLogic.changeState(resource.getUniqueId(), user, LifeCycleTransitionEnum.START_CERTIFICATION, lifecycleChangeInfo, inTransaction, needLock);
}
- if (result.isLeft()) {
- resource = result.left().value();
- result = lifecycleBusinessLogic.changeState(resource.getUniqueId(), user, LifeCycleTransitionEnum.CERTIFY, lifecycleChangeInfo, inTransaction, needLock);
+ if (resource.getLifecycleState() == LifecycleStateEnum.CERTIFIED) {
+ Either<Either<ArtifactDefinition, Operation>, ResponseFormat> eitherPopulated = populateToscaArtifacts(resource, user, false, inTransaction, needLock);
+ result = eitherPopulated.isLeft() ? Either.left(resource) : Either.right(eitherPopulated.right().value());
+ return result;
}
- return result;
+ return nodeFullCertification(resource.getUniqueId(), user, lifecycleChangeInfo, inTransaction, needLock);
+ } catch (Exception e) {
+ log.debug("The exception {} has occured upon certification of resource {}. ", e.getMessage(), resource.getName());
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
} finally {
if (result == null || result.isRight()) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeSystemError, "Change LifecycleState - Certify");
BeEcompErrorManager.getInstance().logBeSystemError("Change LifecycleState - Certify");
if (inTransaction == false) {
log.debug("operation failed. do rollback");
@@ -4571,6 +4864,21 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
+ private Either<Resource, ResponseFormat> nodeFullCertification(String uniqueId, User user, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction, boolean needLock) {
+ Either<Resource, ResponseFormat> result = lifecycleBusinessLogic.changeState(uniqueId, user, LifeCycleTransitionEnum.CERTIFICATION_REQUEST, lifecycleChangeInfo, inTransaction, needLock);
+ if (result.isLeft()) {
+ result = lifecycleBusinessLogic.changeState(uniqueId, user, LifeCycleTransitionEnum.START_CERTIFICATION, lifecycleChangeInfo, inTransaction, needLock);
+ }
+ if (result.isLeft()) {
+ result = lifecycleBusinessLogic.changeState(uniqueId, user, LifeCycleTransitionEnum.CERTIFY, lifecycleChangeInfo, inTransaction, needLock);
+ }
+ return result;
+ }
+
+ private Either<Resource, ResponseFormat> nodeForceCertification(Resource resource, User user, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction, boolean needLock) {
+ return lifecycleBusinessLogic.forceResourceCertification(resource, user, lifecycleChangeInfo, inTransaction, needLock);
+ }
+
/*
* /**
*
@@ -4581,7 +4889,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
* createOrUpdateResourceByImport(resource, user, isNormative, false, needLock); }
*/
- public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResourceByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction, boolean needLock) {
+ public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResourceByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction, boolean needLock, CsarInfo csarInfo) {
// check if resource already exist
Either<Resource, StorageOperationStatus> latestByName = toscaOperationFacade.getLatestByName(resource.getName());
@@ -4592,11 +4900,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Either<Resource, StorageOperationStatus> latestByToscaName = toscaOperationFacade.getLatestByToscaResourceName(resource.getToscaResourceName());
if (latestByToscaName.isRight() && latestByToscaName.right().value().equals(StorageOperationStatus.NOT_FOUND))
- result = createResourceByImport(resource, user, isNormative, isInTransaction);
+ result = createResourceByImport(resource, user, isNormative, isInTransaction, csarInfo);
else {
StorageOperationStatus status = latestByName.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeResourceMissingError, "Create / Update resource by import", resource.getName());
BeEcompErrorManager.getInstance().logBeComponentMissingError("Create / Update resource by import", ComponentTypeEnum.RESOURCE.getValue(), resource.getName());
log.debug("resource already exist {}. status={}", resource.getName(), status);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_ALREADY_EXISTS);
@@ -4614,7 +4921,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// error
else {
StorageOperationStatus status = latestByName.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeResourceMissingError, "Create / Update resource by import", resource.getName());
log.debug("failed to get latest version of resource {}. status={}", resource.getName(), status);
ResponseFormat responseFormat = componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(latestByName.right().value()), resource);
componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
@@ -4624,9 +4930,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
- private Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResourceByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction) {
+ private Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResourceByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction, CsarInfo csarInfo) {
log.debug("resource with name {} does not exist. create new resource", resource.getName());
- Either<Resource, ResponseFormat> response = validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, isInTransaction);
+ Either<Resource, ResponseFormat> response = validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, isInTransaction, csarInfo);
if (response.isRight()) {
return Either.right(response.right().value());
}
@@ -4726,7 +5032,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
} finally {
if (result == null || result.isRight()) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeSystemError, "Change LifecycleState - Certify");
BeEcompErrorManager.getInstance().logBeSystemError("Change LifecycleState - Certify");
log.debug("operation failed. do rollback");
titanDao.rollback();
@@ -4764,6 +5069,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
newResource.setVendorRelease(oldResource.getVendorRelease());
}
+ if (newResource.getResourceVendorModelNumber() == null) {
+ newResource.setResourceVendorModelNumber(oldResource.getResourceVendorModelNumber());
+ }
+
if (newResource.getContactId() == null) {
newResource.setContactId(oldResource.getContactId());
}
@@ -4785,7 +5094,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
- public Either<Resource, ResponseFormat> validateResourceBeforeCreate(Resource resource, User user, AuditingActionEnum actionEnum, boolean inTransaction) {
+ public Either<Resource, ResponseFormat> validateResourceBeforeCreate(Resource resource, User user, AuditingActionEnum actionEnum, boolean inTransaction, CsarInfo csarInfo) {
Either<Boolean, ResponseFormat> eitherValidation = validateResourceFieldsBeforeCreate(user, resource, actionEnum, inTransaction);
if (eitherValidation.isRight()) {
@@ -4808,12 +5117,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
resource.setCreatorUserId(user.getUserId());
resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
resource.setContactId(resource.getContactId().toLowerCase());
- if (resource.getResourceType().equals(ResourceTypeEnum.VF)) {
- resource.setToscaResourceName(CommonBeUtils.generateToscaResourceName(ResourceTypeEnum.VF.name(), resource.getSystemName()));
+ if (StringUtils.isEmpty(resource.getToscaResourceName()) && !ToscaUtils.isAtomicType(resource)) {
+ String resourceSystemName;
+ if(csarInfo != null && StringUtils.isNotEmpty(csarInfo.getVfResourceName())){
+ resourceSystemName = ValidationUtils.convertToSystemName(csarInfo.getVfResourceName());
+ } else {
+ resourceSystemName = resource.getSystemName();
+ }
+ resource.setToscaResourceName(CommonBeUtils.generateToscaResourceName(resource.getResourceType().name().toLowerCase(), resourceSystemName));
}
// Generate invariant UUID - must be here and not in operation since it
// should stay constant during clone
+ // TODO
String invariantUUID = UniqueIdBuilder.buildInvariantUUID();
resource.setInvariantUUID(invariantUUID);
@@ -4842,10 +5158,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Either<InterfaceDefinition, StorageOperationStatus> eitherCapTypeFound = interfaceTypeOperation.getInterface(intType);
if (eitherCapTypeFound.isRight()) {
if (eitherCapTypeFound.right().value() == StorageOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeInterfaceMissingError, "Create Resource - validateLifecycleTypesCreate", intType);
BeEcompErrorManager.getInstance().logBeGraphObjectMissingError("Create Resource - validateLifecycleTypesCreate", "Interface", intType);
log.debug("Lifecycle Type: {} is required by resource: {} but does not exist in the DB", intType, resource.getName());
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Create Resource - validateLifecycleTypesCreate");
BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateLifecycleTypesCreate");
log.debug("request to data model failed with error: {}", eitherCapTypeFound.right().value().name());
}
@@ -4878,7 +5192,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (resource.getRequirements() != null && resource.getRequirements().size() > 0) {
log.debug("validate capability Types Exist - requirements section");
for (String type : resource.getRequirements().keySet()) {
- eitherResult = validateCapabilityTypeExists(user, capabilityTypeOperation, resource, resource.getRequirements().get(type) , actionEnum, eitherResult, type, inTransaction);
+ eitherResult = validateCapabilityTypeExists(user, capabilityTypeOperation, resource, resource.getRequirements().get(type), actionEnum, eitherResult, type, inTransaction);
if (eitherResult.isRight()) {
return Either.right(eitherResult.right().value());
}
@@ -4888,24 +5202,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return eitherResult;
}
- //@param typeObject- the object to which the validation is done
- private Either<Boolean, ResponseFormat> validateCapabilityTypeExists(User user, ICapabilityTypeOperation capabilityTypeOperation, Resource resource, List validationObjects , AuditingActionEnum actionEnum, Either<Boolean, ResponseFormat> eitherResult, String type,
- boolean inTransaction) {
+ // @param typeObject- the object to which the validation is done
+ private Either<Boolean, ResponseFormat> validateCapabilityTypeExists(User user, ICapabilityTypeOperation capabilityTypeOperation, Resource resource, List<?> validationObjects, AuditingActionEnum actionEnum, Either<Boolean, ResponseFormat> eitherResult, String type,
+ boolean inTransaction) {
Either<CapabilityTypeDefinition, StorageOperationStatus> eitherCapTypeFound = capabilityTypeOperation.getCapabilityType(type, inTransaction);
if (eitherCapTypeFound.isRight()) {
if (eitherCapTypeFound.right().value() == StorageOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeCapabilityTypeMissingError, "Create Resource - validateCapabilityTypesCreate", type);
BeEcompErrorManager.getInstance().logBeGraphObjectMissingError("Create Resource - validateCapabilityTypesCreate", "Capability Type", type);
log.debug("Capability Type: {} is required by resource: {} but does not exist in the DB", type, resource.getName());
BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateCapabilityTypesCreate");
}
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Create Resource - validateCapabilityTypesCreate");
log.debug("Trying to get capability type {} failed with error: {}", type, eitherCapTypeFound.right().value().name());
- ResponseFormat errorResponse =null;
- if (type!=null)
+ ResponseFormat errorResponse = null;
+ if (type != null)
errorResponse = componentsUtils.getResponseFormat(ActionStatus.MISSING_CAPABILITY_TYPE, type);
else
- errorResponse = componentsUtils.getResponseFormatByElement(ActionStatus.MISSING_CAPABILITY_TYPE, validationObjects );
+ errorResponse = componentsUtils.getResponseFormatByElement(ActionStatus.MISSING_CAPABILITY_TYPE, validationObjects);
eitherResult = Either.right(errorResponse);
componentsUtils.auditResource(errorResponse, user, resource, "", "", actionEnum, null);
}
@@ -4913,16 +5225,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<Boolean, ResponseFormat> validateCapabilityTypeExists(User user, ICapabilityTypeOperation capabilityTypeOperation, Resource resource, AuditingActionEnum actionEnum, Either<Boolean, ResponseFormat> eitherResult,
- Entry<String, List<CapabilityDefinition>> typeEntry, boolean inTransaction) {
+ Entry<String, List<CapabilityDefinition>> typeEntry, boolean inTransaction) {
Either<CapabilityTypeDefinition, StorageOperationStatus> eitherCapTypeFound = capabilityTypeOperation.getCapabilityType(typeEntry.getKey(), inTransaction);
if (eitherCapTypeFound.isRight()) {
if (eitherCapTypeFound.right().value() == StorageOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeCapabilityTypeMissingError, "Create Resource - validateCapabilityTypesCreate", typeEntry.getKey());
BeEcompErrorManager.getInstance().logBeGraphObjectMissingError("Create Resource - validateCapabilityTypesCreate", "Capability Type", typeEntry.getKey());
log.debug("Capability Type: {} is required by resource: {} but does not exist in the DB", typeEntry.getKey(), resource.getName());
BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateCapabilityTypesCreate");
}
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Create Resource - validateCapabilityTypesCreate");
log.debug("Trying to get capability type {} failed with error: {}", typeEntry.getKey(), eitherCapTypeFound.right().value().name());
ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.MISSING_CAPABILITY_TYPE, typeEntry.getKey());
eitherResult = Either.right(errorResponse);
@@ -4985,8 +5295,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Either<Resource, ResponseFormat> respStatus = createResourceTransaction(resource, user, isNormative, inTransaction);
if (respStatus.isLeft()) {
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.CREATED);
- componentsUtils.auditResource(responseFormat, user, resource, "", "", actionEnum, additionalParams);
+ auditCreateResource(user, respStatus.left().value(), actionEnum, additionalParams);
ASDCKpiApi.countCreatedResourcesKPI();
} else
componentsUtils.auditResource(respStatus.right().value(), user, resource, "", "", actionEnum, additionalParams);
@@ -4999,6 +5308,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
+ private void auditCreateResource(User user, Resource persistedResource, AuditingActionEnum actionEnum, EnumMap<AuditingFieldsKeysEnum, Object> additionalParams) {
+ ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.CREATED);
+ componentsUtils.auditResource(responseFormat, user, persistedResource, "", "", actionEnum, additionalParams);
+ }
+
private Either<Resource, ResponseFormat> createResourceTransaction(Resource resource, User user, boolean isNormative, boolean inTransaction) {
// validate resource name uniqueness
log.debug("validate resource name");
@@ -5026,7 +5340,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
resource.setVersion(INITIAL_VERSION);
resource.setHighestVersion(true);
- resource.setAbstract(false);
+ if (resource.getResourceType() != null && resource.getResourceType() != ResourceTypeEnum.CVFC)
+ resource.setAbstract(false);
}
Either<Resource, StorageOperationStatus> createToscaElement = toscaOperationFacade.createToscaComponent(resource);
@@ -5090,6 +5405,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
resource.setDeploymentArtifacts(artifactMap);
}
+ @SuppressWarnings("unchecked")
private void setInformationalArtifactsPlaceHolder(Resource resource, User user) {
Map<String, ArtifactDefinition> artifactMap = resource.getArtifacts();
if (artifactMap == null) {
@@ -5097,6 +5413,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
String resourceUniqueId = resource.getUniqueId();
List<String> exludeResourceCategory = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludeResourceCategory();
+ List<String> exludeResourceType = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludeResourceType();
Map<String, Object> informationalResourceArtifacts = ConfigurationManager.getConfigurationManager().getConfiguration().getInformationalResourceArtifacts();
List<CategoryDefinition> categories = resource.getCategories();
boolean isCreateArtifact = true;
@@ -5110,6 +5427,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
+ if (isCreateArtifact && exludeResourceType != null) {
+ String resourceType = resource.getResourceType().name();
+ for (String type : exludeResourceType) {
+ if (type.equalsIgnoreCase(resourceType)) {
+ isCreateArtifact = false;
+ break;
+ }
+ }
+
+ }
if (informationalResourceArtifacts != null && isCreateArtifact) {
Set<String> keys = informationalResourceArtifacts.keySet();
@@ -5273,14 +5600,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
/**
* updateResourceMetadata
*
- * @param user
- * - modifier data (userId)
- * @param inTransaction
- * TODO
- * @param resourceIdToUpdate
- * - the resource identifier
+ * @param user - modifier data (userId)
+ * @param inTransaction TODO
+ * @param resourceIdToUpdate - the resource identifier
* @param newResource
- *
* @return Either<Resource, responseFormat>
*/
public Either<Resource, ResponseFormat> updateResourceMetadata(String resourceIdToUpdate, Resource newResource, Resource currentResource, User user, boolean inTransaction) {
@@ -5315,7 +5638,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// lock resource
StorageOperationStatus lockResult = graphLockOperation.lockComponent(resourceIdToUpdate, NodeTypeEnum.Resource);
if (!lockResult.equals(StorageOperationStatus.OK)) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedLockObjectError, "Upload Artifact - lock " + resourceIdToUpdate + ": " + NodeTypeEnum.Resource);
BeEcompErrorManager.getInstance().logBeFailedLockObjectError("Upload Artifact - lock ", NodeTypeEnum.Resource.getName(), resourceIdToUpdate);
log.debug("Failed to lock resource: {}, error - {}", resourceIdToUpdate, lockResult);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(lockResult));
@@ -5331,7 +5653,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// list
// This code is not called from import resources, because of root
// VF "derivedFrom" should be null (or ignored)
- if (!currentResource.getResourceType().equals(ResourceTypeEnum.VF)) {
+ if (ToscaUtils.isAtomicType(currentResource)) {
Either<Boolean, ResponseFormat> derivedFromNotEmptyEither = validateDerivedFromNotEmpty(null, newResource, null);
if (derivedFromNotEmptyEither.isRight()) {
log.debug("for updated resource {}, derived from field is empty", newResource.getName());
@@ -5373,7 +5695,54 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
}
+ private Either<List<GroupDefinition>,Boolean> updateComponentGroupName(String replacePattern , String with ,List<GroupDefinition> oldGroup){
+ if ( oldGroup==null || with==null || replacePattern==null || with.isEmpty() || replacePattern.isEmpty()){
+ if (log.isInfoEnabled())
+ log.info("cannot update group name , invalid args -> replacePattern:{} , with:{} , oldGroup:{}" , replacePattern, with, oldGroup == null ? null : " < size : "+oldGroup.size()+" >" );
+ return Either.right(false);
+ }
+ List<GroupDefinition> list = oldGroup.stream().map( group -> new GroupDefinition(group)).collect(Collectors.toList());
+ for ( GroupDefinition group : list) {
+ if ( group!=null && group.isSamePrefix( replacePattern ) ){
+ String prefix = group.getName().substring( 0, replacePattern.length() );
+ String newGroupName = group.getName().replaceFirst(prefix , with);
+ group.setName(newGroupName);
+ //String newUid = group.getUniqueId().replaceFirst(prefix , with); //removing this will also change the unique id
+ //group.setUniqueId(newUid);
+ }
+ }
+ return Either.left(list);
+ }
+
+ private boolean isComponentNameChanged(Resource newResource,Resource oldResource){
+ if (newResource!=null && oldResource!=null){ //TODO - must protect all chain against null , use optional
+ String futureName = newResource.getComponentMetadataDefinition().getMetadataDataDefinition().getName();
+ String oldName = oldResource.getComponentMetadataDefinition().getMetadataDataDefinition().getName();
+ return !oldName.equals(futureName);
+ }
+ return false;
+ }
+
private Either<Resource, ResponseFormat> updateResourceMetadata(String resourceIdToUpdate, Resource newResource, User user, Resource currentResource, boolean shouldLock, boolean inTransaction) {
+ //region -> Update groups name for newResource
+ if ( isComponentNameChanged( currentResource , newResource) ){
+ String replacePattern = Optional.ofNullable( //get currentResource name from metadata
+ Optional.ofNullable( Optional.ofNullable( currentResource )
+ .orElse(null).getComponentMetadataDefinition() )
+ .orElse(null).getMetadataDataDefinition() )
+ .orElse(null).getName();
+ String with = Optional.ofNullable( //get newResource name from metadata
+ Optional.ofNullable( Optional.ofNullable( newResource )
+ .orElse(null).getComponentMetadataDefinition() )
+ .orElse(null).getMetadataDataDefinition() )
+ .orElse(null).getName();
+ if ( with != null && replacePattern != null ){
+ Either<List<GroupDefinition>,Boolean> result = updateComponentGroupName( replacePattern , with ,currentResource.getGroups());
+ if (result.isLeft())
+ newResource.setGroups( (List<GroupDefinition>)result.left().value() );
+ }
+ }
+ //endregion
Either<Boolean, ResponseFormat> validateResourceFields = validateResourceFieldsBeforeUpdate(currentResource, newResource, inTransaction);
if (validateResourceFields.isRight()) {
@@ -5395,6 +5764,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
log.debug("send resource {} to dao for update", newResource.getUniqueId());
+ if (newResource!=null && newResource.getGroups()!=null){
+ for ( GroupDefinition group : newResource.getGroups() ){
+ if (newResource.getComponentMetadataDefinition()!=null && newResource.getComponentMetadataDefinition().getMetadataDataDefinition()!=null)
+ groupBusinessLogic.validateAndUpdateGroupMetadata(
+ newResource.getComponentMetadataDefinition().getMetadataDataDefinition().getUniqueId() ,
+ user,
+ ComponentTypeEnum.RESOURCE_INSTANCE,
+ group,
+ true ,
+ false) ;
+ }
+ }
Either<Resource, StorageOperationStatus> dataModelResponse = toscaOperationFacade.updateToscaElement(newResource);
if (dataModelResponse.isRight()) {
@@ -5410,12 +5791,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
/**
* validateResourceFieldsBeforeCreate
*
- * @param user
- * - modifier data (userId)
- * @param dataModel
- * - IResourceOperation for resource crud
- * @param resource
- * - Resource object to validate
+ * @param user - modifier data (userId)
+ * @param dataModel - IResourceOperation for resource crud
+ * @param resource - Resource object to validate
* @return Either<Boolean, ErrorResponse>
*/
private Either<Boolean, ResponseFormat> validateResourceFieldsBeforeCreate(User user, Resource resource, AuditingActionEnum actionEnum, boolean inTransaction) {
@@ -5449,7 +5827,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return eitherValidation;
}
- // validate vendor name & release
+ // validate vendor name & release & model number
log.debug("validate vendor name");
eitherValidation = validateVendorName(user, resource, actionEnum);
if (eitherValidation.isRight()) {
@@ -5462,6 +5840,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return eitherValidation;
}
+ log.debug("validate resource vendor model number");
+ eitherValidation = validateResourceVendorModelNumber(user, resource, actionEnum);
+ if (eitherValidation.isRight()) {
+ return eitherValidation;
+ }
+
// validate contact info
/*
* log.debug("validate contact info"); eitherValidation = validateContactIdContactId(user, resource, actionEnum); if (eitherValidation.isRight()) { return eitherValidation; }
@@ -5483,7 +5867,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
// validate template (derived from)
log.debug("validate derived from");
- if (resource.getResourceType().equals(ResourceTypeEnum.VF)) {
+ if (!ToscaUtils.isAtomicType(resource) && resource.getResourceType() != ResourceTypeEnum.CVFC) {
resource.setDerivedFrom(null);
}
eitherValidation = validateDerivedFromExist(user, resource, actionEnum);
@@ -5519,8 +5903,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
/**
* validateResourceFieldsBeforeUpdate
*
- * @param currentResource
- * - Resource object to validate
+ * @param currentResource - Resource object to validate
* @return Either<Boolean, ErrorResponse>
*/
private Either<Boolean, ResponseFormat> validateResourceFieldsBeforeUpdate(Resource currentResource, Resource updateInfoResource, boolean inTransaction) {
@@ -5559,6 +5942,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return eitherValidation;
}
+ log.debug("validate resource vendor model number before update");
+ eitherValidation = validateResourceVendorModelNumber(currentResource, updateInfoResource);
+ if (eitherValidation.isRight()) {
+ return eitherValidation;
+ }
+
+
log.debug("validate vendor release before update");
eitherValidation = validateVendorReleaseName(null, updateInfoResource, null);
if (eitherValidation.isRight()) {
@@ -5763,6 +6153,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(true);
}
+ private Either<Boolean, ResponseFormat> validateResourceVendorModelNumber(Resource currentResource, Resource updateInfoResource) {
+ String updatedResourceVendorModelNumber = updateInfoResource.getResourceVendorModelNumber();
+ String currentResourceVendorModelNumber = currentResource.getResourceVendorModelNumber();
+ if (!currentResourceVendorModelNumber.equals(updatedResourceVendorModelNumber)) {
+ Either<Boolean, ResponseFormat> validateResourceVendorModelNumber = validateResourceVendorModelNumber(null, updateInfoResource, null);
+ if (validateResourceVendorModelNumber.isRight()) {
+ ResponseFormat errorResponse = validateResourceVendorModelNumber.right().value();
+ return Either.right(errorResponse);
+ }
+ }
+ return Either.left(true);
+ }
+
private Either<Boolean, ResponseFormat> validateCategory(Resource currentResource, Resource updateInfoResource, boolean hasBeenCertified, boolean inTransaction) {
Either<Boolean, ResponseFormat> validateCategoryName = validateCategory(null, updateInfoResource, null, inTransaction);
if (validateCategoryName.isRight()) {
@@ -5834,16 +6237,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Either<Boolean, StorageOperationStatus> dataModelResponse = toscaOperationFacade.validateToscaResourceNameExists(templateName);
if (dataModelResponse.isRight()) {
StorageOperationStatus storageStatus = dataModelResponse.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Create Resource - validateDerivedFromExist");
BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateDerivedFromExist");
log.debug("request to data model failed with error: {}", storageStatus.name());
ResponseFormat responseFormat = componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus), resource);
log.trace("audit before sending response");
componentsUtils.auditResource(responseFormat, user, resource, "", "", actionEnum, null);
return Either.right(responseFormat);
- }
-
- else if (!dataModelResponse.left().value()) {
+ } else if (!dataModelResponse.left().value()) {
log.info("resource template with name: {}, does not exists", templateName);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.PARENT_RESOURCE_NOT_FOUND);
componentsUtils.auditResource(responseFormat, user, resource, "", "", actionEnum, null);
@@ -5958,7 +6358,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.right(responseFormat);
}
if (subcategories.size() > 1) {
- log.debug("Must be only one sub ategory for resource");
+ log.debug("Must be only one sub category for resource");
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_TOO_MUCH_SUBCATEGORIES);
return Either.right(responseFormat);
}
@@ -6071,6 +6471,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
+ private Either<Boolean, ResponseFormat> validateResourceVendorModelNumber(User user, Resource resource, AuditingActionEnum actionEnum) {
+ String resourceVendorModelNumber = resource.getResourceVendorModelNumber();
+ Either<Boolean, ResponseFormat> validateResourceVendorModelNumber = validateResourceVendorModelNumber(resourceVendorModelNumber);
+ if (validateResourceVendorModelNumber.isRight()) {
+ ResponseFormat responseFormat = validateResourceVendorModelNumber.right().value();
+ componentsUtils.auditResource(responseFormat, user, resource, "", "", actionEnum, null);
+ }
+ return validateResourceVendorModelNumber;
+
+ }
+
+
private Either<Boolean, ResponseFormat> validateVendorName(String vendorName) {
if (vendorName != null) {
if (!ValidationUtils.validateVendorNameLength(vendorName)) {
@@ -6091,6 +6503,26 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
+ private Either<Boolean, ResponseFormat> validateResourceVendorModelNumber(String resourceVendorModelNumber) {
+ if (resourceVendorModelNumber.equals("")) {
+ return Either.left(true);
+ } else {
+ if (!ValidationUtils.validateResourceVendorModelNumberLength(resourceVendorModelNumber)) {
+ log.info("resource vendor model number exceeds limit.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT, "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
+ return Either.right(errorResponse);
+ }
+ // resource vendor model number is currently validated as vendor name
+ if (!ValidationUtils.validateVendorName(resourceVendorModelNumber)) {
+ log.info("resource vendor model number is not valid.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.INVALID_RESOURCE_VENDOR_MODEL_NUMBER);
+ return Either.right(errorResponse);
+ }
+ return Either.left(true);
+ }
+ }
+
+
/*
* private Either<Boolean, ResponseFormat> validateDescriptionAndCleanup(User user, Resource resource, AuditingActionEnum actionEnum) { String description = resource.getDescription(); if (!ValidationUtils.validateStringNotEmpty(description)) {
* log.debug("Resource description is empty"); ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus. COMPONENT_MISSING_DESCRIPTION, ComponentTypeEnum.RESOURCE.getValue()); componentsUtils.auditResource(errorResponse,
@@ -6355,7 +6787,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
if (inputs.isRight()) {
String message = "Failed when creating inputs: for resource:" + resource.getName();
BeEcompErrorManager.getInstance().logInternalFlowError("ImportResource", message, ErrorSeverity.INFO);
- Map<String, InputDefinition> resultMap = new HashMap();
+ Map<String, InputDefinition> resultMap = new HashMap<>();
return Either.left(resultMap);
}
@@ -6365,6 +6797,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
+ @SuppressWarnings("unchecked")
private Either<GroupDefinition, ResponseFormat> createGroupInfo(String groupName, Object groupTemplateJson) {
GroupDefinition groupInfo = new GroupDefinition();
@@ -6428,6 +6861,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return result;
}
+ @SuppressWarnings("unchecked")
private Either<List<GroupProperty>, ResponseFormat> createPropertiesValueModuleFromYaml(Object properties, String groupName, String groupType) {
List<GroupProperty> result = new ArrayList<>();
@@ -6568,7 +7002,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
private Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> organizeVfCsarArtifactsByArtifactOperation(List<NonMetaArtifactInfo> artifactPathAndNameList, List<ArtifactDefinition> existingArtifactsToHandle,
- Resource resource, User user) {
+ Resource resource, User user) {
EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> nodeTypeArtifactsToHandle = new EnumMap<>(ArtifactOperationEnum.class);
Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
@@ -6631,22 +7065,20 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return nodeTypeArtifactsToHandleRes;
}
- private String buildNestedVfcToscaNamespace(String nodeTypeFullName) {
-
- String actualName = this.getNodeTypeActualName(nodeTypeFullName);
- return ImportUtils.Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + ResourceTypeEnum.VFC.name().toLowerCase() + actualName;
-
- }
- private String buildNestedVfcToscaResourceName(String vfResourceName, String nodeTypeFullName) {
- String toscaResourceName;
- String nameWithouNamespacePrefix = getNodeTypeActualName(nodeTypeFullName);
- if (nameWithouNamespacePrefix.startsWith(Constants.ABSTRACT)) {
- toscaResourceName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + ResourceTypeEnum.VFC.name().toLowerCase() + '.' + vfResourceName + '.' + nameWithouNamespacePrefix;
+ private String buildNestedToscaResourceName(String nodeResourceType, String vfResourceName, String nodeTypeFullName) {
+ StringBuilder toscaResourceName = new StringBuilder(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX);
+ String nameWithouNamespacePrefix = nodeTypeFullName.substring(Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX.length());
+ String[] findTypes = nameWithouNamespacePrefix.split("\\.");
+ String resourceType = findTypes[0];
+ String actualName = nameWithouNamespacePrefix.substring(resourceType.length());
+
+ if (actualName.startsWith(Constants.ABSTRACT)) {
+ toscaResourceName.append(resourceType.toLowerCase()).append('.').append(ValidationUtils.convertToSystemName(vfResourceName));
} else {
- toscaResourceName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + ResourceTypeEnum.VFC.name().toLowerCase() + '.' + vfResourceName + '.' + Constants.ABSTRACT + nameWithouNamespacePrefix;
+ toscaResourceName.append(nodeResourceType.toLowerCase()).append('.').append(ValidationUtils.convertToSystemName(vfResourceName)).append('.').append(Constants.ABSTRACT);
}
- return toscaResourceName;
+ return toscaResourceName.append(actualName.toLowerCase()).toString();
}
public ICacheMangerOperation getCacheManagerOperation() {
@@ -6658,85 +7090,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
///////////////////////////////////////// DataModel refactoring/////////////////////////////////////////////
-
- /*
- * /**
- *
- * @deprecated Use {@link #createOrUpdateResourceByImport(Resource,User,boolean, boolean,boolean)} instead
- */
- /*
- * public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResourceByImport(Resource resource, User user, AuditingActionEnum auditingEnum, boolean isNormative, boolean needLock) { return
- * createOrUpdateResourceByImport(resource, user, isNormative, false, needLock); }
- */
-
- public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateNodeTypeByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction, boolean needLock) {
-
- // check if resource already exist
- Either<Resource, StorageOperationStatus> latestByName = toscaOperationFacade.getLatestByName(resource.getName());
- Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> result = null;
-
- // create
- if (latestByName.isRight() && latestByName.right().value().equals(StorageOperationStatus.NOT_FOUND)) {
-
- Either<Resource, StorageOperationStatus> latestByToscaName = toscaOperationFacade.getLatestByToscaResourceName(resource.getToscaResourceName());
- if (latestByToscaName.isRight() && latestByToscaName.right().value().equals(StorageOperationStatus.NOT_FOUND))
- result = createNodeTypeByImport(resource, user, isNormative, isInTransaction);
-
- else {
- StorageOperationStatus status = latestByName.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeResourceMissingError, "Create / Update resource by import", resource.getName());
- BeEcompErrorManager.getInstance().logBeComponentMissingError("Create / Update resource by import", ComponentTypeEnum.RESOURCE.getValue(), resource.getName());
- log.debug("resource already exist {}. status={}", resource.getName(), status);
- ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_ALREADY_EXISTS);
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
- result = Either.right(responseFormat);
- }
-
- }
-
- // update
- else if (latestByName.isLeft()) {
- // result = updateExistingNodeTypeByImport(resource, latestByName.left().value(), user, isNormative, needLock);
- }
-
- // error
- else {
- StorageOperationStatus status = latestByName.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeResourceMissingError, "Create / Update resource by import", resource.getName());
- log.debug("failed to get latest version of resource {}. status={}", resource.getName(), status);
- ResponseFormat responseFormat = componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(latestByName.right().value()), resource);
- componentsUtils.auditResource(responseFormat, user, resource, "", "", AuditingActionEnum.IMPORT_RESOURCE, null);
- result = Either.right(responseFormat);
- }
- return result;
-
- }
-
- private Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createNodeTypeByImport(Resource resource, User user, boolean isNormative, boolean isInTransaction) {
- log.debug("resource with name {} does not exist. create new resource", resource.getName());
- Either<Resource, ResponseFormat> response = validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, isInTransaction);
- if (response.isRight()) {
- return Either.right(response.right().value());
- }
-
- Either<Resource, ResponseFormat> createResponse = createResourceByDao(resource, user, AuditingActionEnum.IMPORT_RESOURCE, isNormative, isInTransaction, null);
- if (createResponse.isRight()) {
- return Either.right(createResponse.right().value());
- } else {
- ImmutablePair<Resource, ActionStatus> resourcePair = new ImmutablePair<>(createResponse.left().value(), ActionStatus.CREATED);
- ASDCKpiApi.countImportResourcesKPI();
- return Either.left(resourcePair);
-
- }
- }
-
+ @Override
public Either<UiComponentDataTransfer, ResponseFormat> getUiComponentDataTransferByComponentId(String resourceId, List<String> dataParamsToReturn) {
ComponentParametersView paramsToRetuen = new ComponentParametersView(dataParamsToReturn);
Either<Resource, StorageOperationStatus> resourceResultEither = toscaOperationFacade.getToscaElement(resourceId, paramsToRetuen);
if (resourceResultEither.isRight()) {
- if(resourceResultEither.right().value().equals(StorageOperationStatus.NOT_FOUND)) {
+ if (resourceResultEither.right().value().equals(StorageOperationStatus.NOT_FOUND)) {
log.debug("Failed to found resource with id {} ", resourceId);
Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java
index b157b635b4..ac6183db00 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java
@@ -36,6 +36,7 @@ import java.util.stream.Collectors;
import javax.servlet.ServletContext;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.auditing.api.IAuditingManager;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
@@ -55,6 +56,7 @@ import org.openecomp.sdc.be.impl.WebAppContextWrapper;
import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.CapabilityDefinition;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
+import org.openecomp.sdc.be.model.CsarInfo;
import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.PropertyDefinition;
@@ -124,7 +126,7 @@ public class ResourceImportManager {
lifecycleChangeInfo.setUserRemarks("certification on import");
Function<Resource, Either<Boolean, ResponseFormat>> validator = (resource) -> resourceBusinessLogic.validatePropertiesDefaultValues(resource);
- return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, false, createNewVersion, needLock, null, null);
+ return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, false, createNewVersion, needLock, null, null, false, null);
}
public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> importNormativeResourceFromCsar(String resourceYml, UploadResourceInfo resourceMetaData, User creator, boolean createNewVersion, boolean needLock) {
@@ -133,18 +135,18 @@ public class ResourceImportManager {
lifecycleChangeInfo.setUserRemarks("certification on import");
Function<Resource, Either<Boolean, ResponseFormat>> validator = (resource) -> resourceBusinessLogic.validatePropertiesDefaultValues(resource);
- return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, false, createNewVersion, needLock, null, null);
+ return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, false, createNewVersion, needLock, null, null, false, null);
}
public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> importCertifiedResource(String resourceYml, UploadResourceInfo resourceMetaData, User creator, Function<Resource, Either<Boolean, ResponseFormat>> validationFunction,
- LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean isInTransaction, boolean createNewVersion, boolean needLock, Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts) {
+ LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean isInTransaction, boolean createNewVersion, boolean needLock, Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle, List<ArtifactDefinition> nodeTypesNewCreatedArtifacts, boolean forceCertificationAllowed, CsarInfo csarInfo) {
Resource resource = new Resource();
ImmutablePair<Resource, ActionStatus> responsePair = new ImmutablePair<>(resource, ActionStatus.CREATED);
Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> response = Either.left(responsePair);
String latestCertifiedResourceId = null;
try {
- boolean shouldBeCertified = nodeTypeArtifactsToHandle == null || nodeTypeArtifactsToHandle.isEmpty() ? true : false;
+ boolean shouldBeCertified = nodeTypeArtifactsToHandle == null || nodeTypeArtifactsToHandle.isEmpty();
setConstantMetaData(resource, shouldBeCertified);
setMetaDataFromJson(resourceMetaData, resource);
@@ -166,20 +168,20 @@ public class ResourceImportManager {
}
}
- response = resourceBusinessLogic.createOrUpdateResourceByImport(resource, creator, true, isInTransaction, needLock);
+ response = resourceBusinessLogic.createOrUpdateResourceByImport(resource, creator, true, isInTransaction, needLock, csarInfo);
Either<Resource, ResponseFormat> changeStateResponse;
if (response.isLeft()) {
resource = response.left().value().left;
if(nodeTypeArtifactsToHandle !=null && !nodeTypeArtifactsToHandle.isEmpty()){
Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes =
- resourceBusinessLogic.handleNodeTypeArtifacts(resource, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, creator, isInTransaction);
+ resourceBusinessLogic.handleNodeTypeArtifacts(resource, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, creator, isInTransaction, false);
if(handleNodeTypeArtifactsRes.isRight()){
return Either.right(handleNodeTypeArtifactsRes.right().value());
}
}
latestCertifiedResourceId = getLatestCertifiedResourceId(resource);
- changeStateResponse = resourceBusinessLogic.propagateStateToCertified(creator, resource, lifecycleChangeInfo, isInTransaction, needLock);
+ changeStateResponse = resourceBusinessLogic.propagateStateToCertified(creator, resource, lifecycleChangeInfo, isInTransaction, needLock, forceCertificationAllowed);
if (changeStateResponse.isRight()) {
response = Either.right(changeStateResponse.right().value());
} else {
@@ -254,7 +256,7 @@ public class ResourceImportManager {
Either<Boolean, ResponseFormat> validatePropertiesTypes = resourceBusinessLogic.validatePropertiesDefaultValues(resource);
if (validatePropertiesTypes.isLeft()) {
- response = resourceBusinessLogic.createOrUpdateResourceByImport(resource, creator, false, isInTransaction, true);
+ response = resourceBusinessLogic.createOrUpdateResourceByImport(resource, creator, false, isInTransaction, true, null);
} else {
ResponseFormat validationErrorResponse = validatePropertiesTypes.right().value();
auditErrorImport(resourceMetaData, creator, validationErrorResponse, false);
@@ -270,14 +272,14 @@ public class ResourceImportManager {
}
- private Either<Boolean, ResponseFormat> populateResourceFromYaml(String resourceYml, Resource resource, boolean inTransaction) {
+ Either<Boolean, ResponseFormat> populateResourceFromYaml(String resourceYml, Resource resource, boolean inTransaction) {
@SuppressWarnings("unchecked")
Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
Map<String, Object> toscaJsonAll = (Map<String, Object>) new Yaml().load(resourceYml);
Map<String, Object> toscaJson = toscaJsonAll;
// Checks if exist and builds the node_types map
- if (toscaJsonAll.containsKey(ToscaTagNamesEnum.NODE_TYPES.getElementName())) {
+ if (toscaJsonAll.containsKey(ToscaTagNamesEnum.NODE_TYPES.getElementName()) && resource.getResourceType()!=ResourceTypeEnum.CVFC) {
toscaJson = new HashMap<String, Object>();
toscaJson.put(ToscaTagNamesEnum.NODE_TYPES.getElementName(), toscaJsonAll.get(ToscaTagNamesEnum.NODE_TYPES.getElementName()));
}
@@ -287,7 +289,8 @@ public class ResourceImportManager {
return Either.right(setDerivedFrom.right().value());
}
Resource parentResource = setDerivedFrom.left().value();
- setToscaResourceName(toscaJson, resource);
+ if(StringUtils.isEmpty(resource.getToscaResourceName()))
+ setToscaResourceName(toscaJson, resource);
setAttributes(toscaJson, resource);
eitherResult = setCapabilities(toscaJson, resource, parentResource);
if (eitherResult.isRight())
@@ -721,7 +724,7 @@ public class ResourceImportManager {
capabilityDefinition.setProperties(capabilityProperties);
}
}
- } else {
+ } else if (!(capabilityJson instanceof List)) {
result = Either.right(componentsUtils.getResponseFormat(ActionStatus.INVALID_YAML));
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java
index bc1c6e5910..ae7ae31ed9 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java
@@ -447,14 +447,12 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
return componentsFieldsValidation;
}
- // validate service name uniqueness
log.debug("validate service name uniqueness");
Either<Boolean, ResponseFormat> serviceNameUniquenessValidation = validateComponentNameUnique(user, service, actionEnum);
if (serviceNameUniquenessValidation.isRight()) {
return serviceNameUniquenessValidation;
}
- // validate category
log.debug("validate category");
Either<Boolean, ResponseFormat> categoryValidation = validateServiceCategory(user, service, actionEnum);
if (categoryValidation.isRight()) {
@@ -462,12 +460,23 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
}
// validate project name (ProjectCode) - mandatory in service
-
log.debug("validate projectName");
Either<Boolean, ResponseFormat> projectCodeValidation = validateProjectCode(user, service, actionEnum);
if (projectCodeValidation.isRight()) {
return projectCodeValidation;
}
+
+ log.debug("validate service type");
+ Either<Boolean, ResponseFormat> serviceTypeValidation = validateServiceTypeAndCleanup(user, service, actionEnum);
+ if (serviceTypeValidation.isRight()) {
+ return serviceTypeValidation;
+ }
+
+ log.debug("validate service role");
+ Either<Boolean, ResponseFormat> serviceRoleValidation = validateServiceRoleAndCleanup(user, service, actionEnum);
+ if (serviceRoleValidation.isRight()) {
+ return serviceRoleValidation;
+ }
return Either.left(true);
@@ -704,6 +713,18 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
if (!uuidCurrent.equals(uuidUpdated)) {
log.info("update srvice: recived request to update uuid to {} the field is not updatable ignoring.", uuidUpdated);
}
+
+ response = validateAndUpdateServiceType(user, currentService, serviceUpdate, null);
+ if (response.isRight()) {
+ ResponseFormat errorResponse = response.right().value();
+ return Either.right(errorResponse);
+ }
+
+ response = validateAndUpdateServiceRole(user, currentService, serviceUpdate, null);
+ if (response.isRight()) {
+ ResponseFormat errorResponse = response.right().value();
+ return Either.right(errorResponse);
+ }
String currentInvariantUuid = currentService.getInvariantUUID();
String updatedInvariantUuid = serviceUpdate.getInvariantUUID();
@@ -821,18 +842,18 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
return Either.left(true);
}
- private Either<Boolean, ResponseFormat> validateAndUpdateServiceName(User user, Service currentService, Service serviceUpdate, boolean hasBeenCertified, AuditingActionEnum audatingAction) {
+ private Either<Boolean, ResponseFormat> validateAndUpdateServiceName(User user, Service currentService, Service serviceUpdate, boolean hasBeenCertified, AuditingActionEnum auditingAction) {
String serviceNameUpdated = serviceUpdate.getName();
String serviceNameCurrent = currentService.getName();
if (!serviceNameCurrent.equals(serviceNameUpdated)) {
if (!hasBeenCertified) {
- Either<Boolean, ResponseFormat> validatServiceNameResponse = validateComponentName(user, serviceUpdate, audatingAction);
+ Either<Boolean, ResponseFormat> validatServiceNameResponse = validateComponentName(user, serviceUpdate, auditingAction);
if (validatServiceNameResponse.isRight()) {
ResponseFormat errorRespons = validatServiceNameResponse.right().value();
return Either.right(errorRespons);
}
- Either<Boolean, ResponseFormat> serviceNameUniquenessValidation = validateComponentNameUnique(user, serviceUpdate, audatingAction);
+ Either<Boolean, ResponseFormat> serviceNameUniquenessValidation = validateComponentNameUnique(user, serviceUpdate, auditingAction);
if (serviceNameUniquenessValidation.isRight()) {
return serviceNameUniquenessValidation;
}
@@ -848,6 +869,111 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
}
return Either.left(true);
}
+
+ private Either<Boolean, ResponseFormat> validateAndUpdateServiceType(User user, Service currentService, Service updatedService, AuditingActionEnum auditingAction) {
+ String updatedServiceType = updatedService.getServiceType();
+ String currentServiceType = currentService.getServiceType();
+ if (!currentServiceType.equals(updatedServiceType)) {
+ Either<Boolean, ResponseFormat> validateServiceType = validateServiceTypeAndCleanup(user, updatedService , auditingAction);
+ if (validateServiceType.isRight()) {
+ ResponseFormat errorResponse = validateServiceType.right().value();
+ componentsUtils.auditComponentAdmin(errorResponse, user, updatedService, "", "", auditingAction, ComponentTypeEnum.SERVICE);
+ return Either.right(errorResponse);
+ }
+ currentService.setServiceType(updatedServiceType);
+ }
+ return Either.left(true);
+ }
+
+ protected Either<Boolean, ResponseFormat> validateServiceTypeAndCleanup(User user, Component component, AuditingActionEnum actionEnum) {
+ String serviceType = ((Service)component).getServiceType();
+ if (serviceType != null){
+ serviceType = cleanUpText(serviceType);
+ Either<Boolean, ResponseFormat> validateServiceType = validateServiceType(serviceType);
+ if (validateServiceType.isRight()) {
+ ResponseFormat responseFormat = validateServiceType.right().value();
+ componentsUtils.auditComponentAdmin(responseFormat, user, component, "", "", actionEnum, ComponentTypeEnum.SERVICE);
+ return Either.right(responseFormat);
+ }
+ return Either.left(true);
+ } else {
+ return Either.left(false);
+ }
+ }
+
+
+ private Either<Boolean, ResponseFormat> validateServiceType(String serviceType) {
+ if (serviceType.equals("")){
+ return Either.left(true);
+ } else {
+ if (!ValidationUtils.validateServiceTypeLength(serviceType)) {
+ log.info("service type exceeds limit.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.SERVICE_TYPE_EXCEEDS_LIMIT, "" + ValidationUtils.SERVICE_TYPE_MAX_LENGTH);
+ return Either.right(errorResponse);
+ }
+
+ if (!ValidationUtils.validateIsEnglish(serviceType)) {
+ log.info("service type is not valid.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.INVALID_SERVICE_TYPE);
+ return Either.right(errorResponse);
+ }
+ return Either.left(true);
+ }
+ }
+
+ private Either<Boolean, ResponseFormat> validateAndUpdateServiceRole(User user, Service currentService, Service updatedService, AuditingActionEnum auditingAction) {
+ String updatedServiceRole = updatedService.getServiceRole();
+ String currentServiceRole = currentService.getServiceRole();
+ if (!currentServiceRole.equals(updatedServiceRole)) {
+ Either<Boolean, ResponseFormat> validateServiceRole = validateServiceRoleAndCleanup(user, updatedService , auditingAction);
+ if (validateServiceRole.isRight()) {
+ ResponseFormat errorResponse = validateServiceRole.right().value();
+ componentsUtils.auditComponentAdmin(errorResponse, user, updatedService, "", "", auditingAction, ComponentTypeEnum.SERVICE);
+ return Either.right(errorResponse);
+ }
+ currentService.setServiceRole(updatedServiceRole);
+ }
+ return Either.left(true);
+ }
+
+ protected Either<Boolean, ResponseFormat> validateServiceRoleAndCleanup(User user, Component component, AuditingActionEnum actionEnum) {
+ String serviceRole = ((Service)component).getServiceRole();
+ if (serviceRole != null){
+ serviceRole = cleanUpText(serviceRole);
+
+ Either<Boolean, ResponseFormat> validateServiceRole = validateServiceRole(serviceRole);
+ if (validateServiceRole.isRight()) {
+ ResponseFormat responseFormat = validateServiceRole.right().value();
+ componentsUtils.auditComponentAdmin(responseFormat, user, component, "", "", actionEnum, ComponentTypeEnum.SERVICE);
+ return Either.right(responseFormat);
+ }
+ return Either.left(true);
+ } else {
+ return Either.left(false);
+ }
+ }
+
+
+ private Either<Boolean, ResponseFormat> validateServiceRole(String serviceRole) {
+ if (serviceRole.equals("")){
+ return Either.left(true);
+ } else {
+ if (!ValidationUtils.validateServiceRoleLength(serviceRole)) {
+ log.info("service role exceeds limit.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.SERVICE_ROLE_EXCEEDS_LIMIT, "" + ValidationUtils.SERVICE_ROLE_MAX_LENGTH);
+ return Either.right(errorResponse);
+ }
+
+ if (!ValidationUtils.validateIsEnglish(serviceRole)) {
+ log.info("service role is not valid.");
+ ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.INVALID_SERVICE_ROLE);
+ return Either.right(errorResponse);
+ }
+ return Either.left(true);
+ }
+ }
+
+
private Either<Boolean, ResponseFormat> validateAndUpdateCategory(User user, Service currentService, Service serviceUpdate, boolean hasBeenCertified, AuditingActionEnum audatingAction) {
List<CategoryDefinition> categoryUpdated = serviceUpdate.getCategories();
@@ -1225,7 +1351,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
// DE194021
ServletContext servletContext = request.getSession().getServletContext();
- boolean isDistributionEngineUp = getHealthCheckBL(servletContext).isDistributionEngineUp(request.getSession().getServletContext()); // DE
+ boolean isDistributionEngineUp = getHealthCheckBL(servletContext).isDistributionEngineUp(); // DE
if (!isDistributionEngineUp) {
BeEcompErrorManager.getInstance().logBeSystemError("Distribution Engine is DOWN");
log.debug("Distribution Engine is DOWN");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceComponentInstanceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceComponentInstanceBusinessLogic.java
index 9586be81ea..11ffcd9329 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceComponentInstanceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceComponentInstanceBusinessLogic.java
@@ -31,10 +31,6 @@ import fj.data.Either;
@Component("serviceComponentInstanceBusinessLogic")
public class ServiceComponentInstanceBusinessLogic extends ComponentInstanceBusinessLogic {
- @Override
- protected Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances(org.openecomp.sdc.be.model.Component containerComponent) {
- return Either.left(true);
- }
@Override
protected NodeTypeEnum getNodeTypeOfComponentInstanceOrigin() {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/VFComponentInstanceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/VFComponentInstanceBusinessLogic.java
index 61a5af5b74..5a93ecf182 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/VFComponentInstanceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/VFComponentInstanceBusinessLogic.java
@@ -25,6 +25,7 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.tosca.ToscaUtils;
import org.openecomp.sdc.exception.ResponseFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,17 +39,6 @@ public class VFComponentInstanceBusinessLogic extends ComponentInstanceBusinessL
private static Logger log = LoggerFactory.getLogger(VFComponentInstanceBusinessLogic.class.getName());
@Override
- protected Either<Boolean, ResponseFormat> validateAllowedToContainCompInstances(org.openecomp.sdc.be.model.Component containerComponent) {
- Resource resource = (Resource) containerComponent;
- ResourceTypeEnum resourceType = resource.getResourceType();
- if (ResourceTypeEnum.VF != resourceType) {
- log.debug("Cannot attach resource instances to container resource of type {}", resourceType);
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES, resourceType.getValue()));
- }
- return Either.left(true);
- }
-
- @Override
protected NodeTypeEnum getNodeTypeOfComponentInstanceOrigin() {
return NodeTypeEnum.Resource;
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransition.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransition.java
index 042af54383..b18c4d0985 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransition.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransition.java
@@ -55,6 +55,7 @@ import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter;
@@ -66,6 +67,7 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.be.tosca.ToscaError;
import org.openecomp.sdc.be.tosca.ToscaExportHandler;
import org.openecomp.sdc.be.tosca.ToscaRepresentation;
+import org.openecomp.sdc.be.tosca.ToscaUtils;
import org.openecomp.sdc.be.user.Role;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
import org.openecomp.sdc.common.util.ValidationUtils;
@@ -196,7 +198,7 @@ public class CertificationRequestTransition extends LifeCycleTransition {
ResponseFormat responseFormat;
Either<? extends Component, ResponseFormat> result = null;
try{
- if (componentType == ComponentTypeEnum.SERVICE || (componentType == ComponentTypeEnum.RESOURCE && ((Resource) component).getResourceType() == ResourceTypeEnum.VF)) {
+ if (component.getToscaType().equals(ToscaElementTypeEnum.TopologyTemplate.getValue())) {
Either<Boolean, ResponseFormat> statusCert = validateAllResourceInstanceCertified(component);
if (statusCert.isRight()) {
@@ -270,7 +272,10 @@ public class CertificationRequestTransition extends LifeCycleTransition {
// occurrences in the future
Map<String, List<String>> reqName2Ids = new HashMap<>();
Map<String, List<String>> capName2Ids = new HashMap<>();
- parseRelationsForReqCapVerification(component, reqName2Ids, capName2Ids);
+// Either<Boolean, ResponseFormat> parseRelationsForReqCapVerificationRes = parseRelationsForReqCapVerification(component, reqName2Ids, capName2Ids);
+// if(parseRelationsForReqCapVerificationRes.isRight()){
+// return parseRelationsForReqCapVerificationRes;
+// }
Map<String, Set<String>> requirementsToFulfillBeforeCert = configurationManager.getConfiguration().getRequirementsToFulfillBeforeCert();
Map<String, Set<String>> capabilitiesToConsumeBeforeCert = configurationManager.getConfiguration().getCapabilitiesToConsumeBeforeCert();
for (ComponentInstance compInst : componentInstances) {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogic.java
index 8e89a6bf31..dfe04f919d 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogic.java
@@ -32,6 +32,7 @@ import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic;
import org.openecomp.sdc.be.components.impl.ProductBusinessLogic;
import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
+import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction.LifecycleChanceActionEnum;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
@@ -46,13 +47,14 @@ import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter;
import org.openecomp.sdc.be.model.operations.api.ICacheMangerOperation;
import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.CapabilityOperation;
-import org.openecomp.sdc.be.model.operations.impl.ComponentOperation;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.be.tosca.ToscaExportHandler;
import org.openecomp.sdc.common.api.Constants;
@@ -204,9 +206,9 @@ public class LifecycleBusinessLogic {
String resourceCurrVersion = component.getVersion();
LifecycleStateEnum resourceCurrState = component.getLifecycleState();
- log.info("lock component {}", componentId);
// lock resource
if (inTransaction == false && needLock) {
+ log.info("lock component {}", componentId);
Either<Boolean, ResponseFormat> eitherLockResource = lockComponent(componentType, component);
if (eitherLockResource.isRight()) {
errorResponse = eitherLockResource.right().value();
@@ -214,8 +216,8 @@ public class LifecycleBusinessLogic {
log.error("lock component {} failed", componentId);
return Either.right(errorResponse);
}
+ log.info("after lock component {}", componentId);
}
- log.info("after lock component {}", componentId);
try {
Either<String, ResponseFormat> commentValidationResult = validateComment(changeInfo, transitionEnum);
if (commentValidationResult.isRight()) {
@@ -463,4 +465,51 @@ public class LifecycleBusinessLogic {
return Either.left(latestComponent);
}
+ public Either<Resource, ResponseFormat> forceResourceCertification(Resource resource, User user, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction, boolean needLock) {
+ Either<Resource, ResponseFormat> result = null;
+ Either<ToscaElement, StorageOperationStatus> certifyResourceRes = null;
+ if(lifecycleChangeInfo.getAction() != LifecycleChanceActionEnum.CREATE_FROM_CSAR){
+ log.debug("Force certification is not allowed for the action {}. ", lifecycleChangeInfo.getAction().name());
+ result = Either.right(componentUtils.getResponseFormat(ActionStatus.NOT_ALLOWED));
+ }
+ // lock resource
+ if(result == null && !inTransaction && needLock){
+ log.info("lock component {}", resource.getUniqueId());
+ Either<Boolean, ResponseFormat> eitherLockResource = lockComponent(resource.getComponentType(), resource);
+ if (eitherLockResource.isRight()) {
+ log.error("lock component {} failed", resource.getUniqueId());
+ result = Either.right(eitherLockResource.right().value());
+ }
+ log.info("after lock component {}", resource.getUniqueId());
+ }
+ try{
+ if(result == null){
+ certifyResourceRes = lifecycleOperation.forceCerificationOfToscaElement(resource.getUniqueId(), user.getUserId(), user.getUserId(), resource.getVersion());
+ if (certifyResourceRes.isRight()) {
+ StorageOperationStatus status = certifyResourceRes.right().value();
+ log.debug("Failed to perform a force certification of resource {}. The status is {}. ", resource.getName(), status);
+ result = Either.right(componentUtils.getResponseFormatByResource(componentUtils.convertFromStorageResponse(status), resource));
+ }
+ }
+ if(result == null){
+ result = Either.left(ModelConverter.convertFromToscaElement(certifyResourceRes.left().value()));
+ }
+ } finally {
+ log.info("unlock component {}", resource.getUniqueId());
+ if (!inTransaction) {
+ if(result.isLeft()){
+ titanDao.commit();
+ } else{
+ titanDao.rollback();
+ }
+ if(needLock){
+ NodeTypeEnum nodeType = resource.getComponentType().getNodeType();
+ log.info("During change state, another component {} has been created/updated", resource.getUniqueId());
+ graphLockOperation.unlockComponent(resource.getUniqueId(), nodeType);
+ }
+ }
+ }
+ return result;
+ }
+
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
index c3708d4017..f96e226d26 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
@@ -126,10 +126,11 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
Response response = null;
ResponseFormat responseFormat = null;
String query = request.getQueryString();
- String requestURI = request.getRequestURI();
+ String requestURI = request.getRequestURI().endsWith("/")?
+ removeDuplicateSlashSeparator(request.getRequestURI()): request.getRequestURI();
String url = request.getMethod() + " " + requestURI;
log.debug("Start handle request of {}", url);
-
+
AuditingActionEnum auditingActionEnum = query == null ? AuditingActionEnum.GET_ASSET_LIST : AuditingActionEnum.GET_FILTERED_ASSET_LIST;
EnumMap<AuditingFieldsKeysEnum, Object> additionalParam = new EnumMap<AuditingFieldsKeysEnum, Object>(AuditingFieldsKeysEnum.class);
@@ -162,7 +163,7 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
}
if (resourceType != null) {
ResourceTypeEnum resourceTypeEnum = ResourceTypeEnum.getTypeIgnoreCase(resourceType);
- if( resourceTypeEnum == null ){
+ if (resourceTypeEnum == null) {
log.debug("getAssetList: Asset Fetching Failed. Invalid resource type was received");
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
@@ -370,4 +371,11 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
return response;
}
}
+
+
+ private String removeDuplicateSlashSeparator(String requestUri) {
+ return requestUri.substring(0, requestUri.length()-1);
+ }
+
+
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
index 529d2aba4d..40a5322afa 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
@@ -269,7 +269,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
@ApiOperation(value = "Change Resource lifecycle State", httpMethod = "POST")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Resource state changed", response = AssetMetadata.class),
- @ApiResponse(code = 400, message = "Missing X-ECOMP-InstanceID HTTP header - POL5001"),
+ @ApiResponse(code = 400, message = "Missing X-ECOMP-InstanceID HTTP header - POL5001"),
@ApiResponse(code = 401, message = "ECOMP component should authenticate itself and to re-send again HTTP request with its Basic Authentication credentials - POL5002"),
@ApiResponse(code = 403, message = "ECOMP component is not authorized - POL5003"),
@ApiResponse(code = 404, message = "Error: Requested '%1' (uuid) resource was not found - SVC4063"),
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java
index 6b16e71e82..55ad44db0c 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java
@@ -102,7 +102,7 @@ public abstract class AbstractValidationsServlet extends BeGenericServlet {
}
- private synchronized void initLog(Logger log) {
+ protected synchronized void initLog(Logger log) {
if (this.log == null) {
this.log = log;
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentServlet.java
index 92bc31f123..dff6cddbbb 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentServlet.java
@@ -120,7 +120,7 @@ public class ComponentServlet extends BeGenericServlet {
@Path("/{componentType}/{componentId}/requirmentsCapabilities")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- @ApiOperation(value = "Get Component Requirments And Capabilities", httpMethod = "GET", notes = "Returns Requirments And Capabilities according to componentId", response = Resource.class)
+ @ApiOperation(value = "Get Component Requirments And Capabilities", httpMethod = "GET", notes = "Returns Requirements And Capabilities according to componentId", response = Resource.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Component found"), @ApiResponse(code = 403, message = "Restricted operation"), @ApiResponse(code = 404, message = "Component not found") })
public Response getRequirementAndCapabilities(@PathParam("componentType") final String componentType, @PathParam("componentId") final String componentId, @Context final HttpServletRequest request,
@HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java
index da64dc58fb..4b2ff89ef8 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ElementServlet.java
@@ -20,26 +20,8 @@
package org.openecomp.sdc.be.servlets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.inject.Singleton;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-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.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import com.jcabi.aspects.Loggable;
+import fj.data.Either;
import org.openecomp.sdc.be.components.clean.ComponentsCleanBusinessLogic;
import org.openecomp.sdc.be.components.impl.ElementBusinessLogic;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -47,13 +29,9 @@ import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.info.ArtifactTypesInfo;
-import org.openecomp.sdc.be.model.ArtifactType;
-import org.openecomp.sdc.be.model.Category;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.PropertyScope;
-import org.openecomp.sdc.be.model.Tag;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
import org.openecomp.sdc.be.model.category.GroupingDefinition;
import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
@@ -65,14 +43,20 @@ import org.openecomp.sdc.exception.ResponseFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.jcabi.aspects.Loggable;
+import javax.inject.Singleton;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
-import fj.data.Either;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.*;
@Path("/v1/")
@@ -552,14 +536,14 @@ public class ElementServlet extends BeGenericServlet {
@ApiOperation(value = "Retrieve catalog resources and services", httpMethod = "GET", notes = "Retrieve catalog resources and services", response = User.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "Returns resources and services Ok"), @ApiResponse(code = 404, message = "No resources and services were found"), @ApiResponse(code = 404, message = "User not found"),
@ApiResponse(code = 500, message = "Internal Server Error") })
- public Response getCatalogComponents(@Context final HttpServletRequest request, @HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
+ public Response getCatalogComponents(@Context final HttpServletRequest request, @HeaderParam(value = Constants.USER_ID_HEADER) String userId, @QueryParam("excludeTypes") List<OriginTypeEnum> excludeTypes) {
Response res = null;
try {
String url = request.getMethod() + " " + request.getRequestURI();
log.debug("Start handle request of {}", url);
- Either<Map<String, List<? extends Component>>, ResponseFormat> catalogData = getElementBL(request.getSession().getServletContext()).getCatalogComponents(userId);
+ Either<Map<String, List<? extends Component>>, ResponseFormat> catalogData = getElementBL(request.getSession().getServletContext()).getCatalogComponents(userId, excludeTypes);
if (catalogData.isRight()) {
log.debug("failed to get catalog data");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java
index 04081bac30..f7e7ae2da1 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/GroupServlet.java
@@ -153,7 +153,7 @@ public class GroupServlet extends AbstractValidationsServlet {
// Update GroupDefinition
ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.findByParamName(containerComponentType);
Either<GroupDefinition, ResponseFormat> actionResponse = businessLogic
- .validateAndUpdateGroupMetadata(componentId, user, componentTypeEnum, updatedGroup, true);
+ .validateAndUpdateGroupMetadata(componentId, user, componentTypeEnum, updatedGroup, true ,true);
if (actionResponse.isRight()) {
log.debug("failed to update GroupDefinition");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/RepresentationUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/RepresentationUtils.java
index 5eed7eeb0d..98e966e6eb 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/RepresentationUtils.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/RepresentationUtils.java
@@ -44,6 +44,42 @@ public class RepresentationUtils {
private static Logger log = LoggerFactory.getLogger(RepresentationUtils.class.getName());
+ public static ArtifactDefinition convertJsonToArtifactDefinitionForUpdate(String content, Class<ArtifactDefinition> clazz) {
+
+ JsonObject jsonElement = new JsonObject();
+ ArtifactDefinition resourceInfo = null;
+
+ try {
+ Gson gson = new Gson();
+ jsonElement = gson.fromJson(content, jsonElement.getClass());
+ String payload = null;
+ jsonElement.remove(Constants.ARTIFACT_GROUP_TYPE_FIELD);
+ //in update the group type is ignored but this spagheti code makes it too complex to remove this field.
+ jsonElement.addProperty(Constants.ARTIFACT_GROUP_TYPE_FIELD, ArtifactGroupTypeEnum.INFORMATIONAL.getType());
+ JsonElement artifactPayload = jsonElement.get(Constants.ARTIFACT_PAYLOAD_DATA);
+ if (artifactPayload != null && !artifactPayload.isJsonNull()) {
+ payload = artifactPayload.getAsString();
+ }
+ jsonElement.remove(Constants.ARTIFACT_PAYLOAD_DATA);
+ String json = gson.toJson(jsonElement);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(Feature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
+
+ resourceInfo = mapper.readValue(json, clazz);
+ resourceInfo.setPayloadData(payload);
+
+ } catch (Exception e) {
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeArtifactInformationInvalidError, "Artifact Upload / Update");
+ BeEcompErrorManager.getInstance().logBeArtifactInformationInvalidError("Artifact Upload / Update");
+ log.debug("Failed to convert the content {} to object.", content.substring(0, Math.min(50, content.length())), e);
+ }
+
+ return resourceInfo;
+ }
+
+
public static class ResourceRep {
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
index fb87e34de7..b70dae68e8 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
@@ -75,8 +75,10 @@ import org.openecomp.sdc.be.model.operations.impl.LifecycleOperation;
import org.openecomp.sdc.be.resources.data.ESArtifactData;
import org.openecomp.sdc.be.resources.data.SdcSchemaFilesData;
import org.openecomp.sdc.be.tosca.model.ToscaTemplate;
+import org.openecomp.sdc.be.utils.CommonBeUtils;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
+import org.openecomp.sdc.common.api.Constants;
import org.openecomp.sdc.common.impl.ExternalConfiguration;
import org.openecomp.sdc.common.util.GeneralUtility;
import org.openecomp.sdc.common.util.ValidationUtils;
@@ -146,9 +148,14 @@ public class CsarUtils {
"([\\w\\_\\-\\.\\s]+)(/)" +
// Artifact Type
"([\\w\\_\\-\\.\\s]+)(/)" +
- // Artifact File Name
- "([\\w\\_\\-\\.\\s]+)";
- public static final String ARTIFACT_CREATED_FROM_CSAR = "Artifact created from csar";
+ // Artifact Any File Name
+ ".+";
+ public static final String VALID_ENGLISH_ARTIFACT_NAME = "([\\w\\_\\-\\.\\s]+)";
+ public static final String SERVICE_TEMPLATE_PATH_PATTERN = Constants.SERVICE_TEMPLATES_CONTAINING_FOLDER +
+ // Service Template File Name
+ "([\\w\\_\\-\\.\\s]+)";
+
+ public static final String ARTIFACT_CREATED_FROM_CSAR = "Artifact created from csar";
public CsarUtils() {
if(SDC_VERSION != null && !SDC_VERSION.isEmpty()){
@@ -281,8 +288,8 @@ public class CsarUtils {
dependencies = dependenciesRes.left().value().getDependencies();
}
- //UID <cassandraId,filename,component>
- Map<String, ImmutableTriple<String,String, Component>> innerComponentsCache = new HashMap<>();
+ //UID <cassandraId,filename,component>
+ Map<String, ImmutableTriple<String,String, Component>> innerComponentsCache = new HashMap<>();
if (dependencies != null && !dependencies.isEmpty()) {
for (Triple<String, String, Component> d : dependencies) {
@@ -295,18 +302,16 @@ public class CsarUtils {
return Either.right(responseFormat);
}
- //fill innerComponentsCache
- fileName = d.getLeft();
- innerComponentsCache.put(childComponent.getUniqueId(),
- new ImmutableTriple<String, String, Component>(cassandraId, fileName, childComponent));
- insertInnerComponentsToCache(innerComponentsCache, childComponent);
-
- byte[] content = entryData.left().value();
- generatorInputs.add(new ImmutablePair<Component, byte[]>(childComponent, content));
- }
+ //fill innerComponentsCache
+ fileName = d.getLeft();
+ addComponentToCache(innerComponentsCache, cassandraId, fileName, childComponent);
+ addInnerComponentsToCache(innerComponentsCache, childComponent);
- //add inner components to CSAR
-
+ byte[] content = entryData.left().value();
+ generatorInputs.add(new ImmutablePair<Component, byte[]>(childComponent, content));
+ }
+
+ //add inner components to CSAR
for (Entry<String, ImmutableTriple<String, String, Component>> innerComponentTripleEntry : innerComponentsCache.entrySet()) {
ImmutableTriple<String, String, Component> innerComponentTriple = innerComponentTripleEntry.getValue();
@@ -418,7 +423,7 @@ public class CsarUtils {
}
- private void insertInnerComponentsToCache(Map<String, ImmutableTriple<String, String, Component>> componentCache,
+ private void addInnerComponentsToCache(Map<String, ImmutableTriple<String, String, Component>> componentCache,
Component childComponent) {
List<ComponentInstance> instances = childComponent.getComponentInstances();
@@ -438,19 +443,32 @@ public class CsarUtils {
ArtifactDefinition childArtifactDefinition = childToscaArtifacts.get(ToscaExportHandler.ASSET_TOSCA_TEMPLATE);
if (childArtifactDefinition != null) {
//add to cache
- componentCache.put(ci.getComponentUid(),
- new ImmutableTriple<String, String, Component>(childArtifactDefinition.getEsId(),
- childArtifactDefinition.getArtifactName(), componentRI));
+ addComponentToCache(componentCache, childArtifactDefinition.getEsId(), childArtifactDefinition.getArtifactName(), componentRI);
}
//if not atomic - insert inner components as well
if(!ToscaUtils.isAtomicType(componentRI)) {
- insertInnerComponentsToCache(componentCache, componentRI);
+ addInnerComponentsToCache(componentCache, componentRI);
}
}
});
}
}
+
+ private void addComponentToCache(Map<String, ImmutableTriple<String, String, Component>> componentCache,
+ String id, String fileName, Component component) {
+
+ ImmutableTriple<String, String, Component> cachedComponent = componentCache.get(component.getInvariantUUID());
+ if (cachedComponent == null || CommonBeUtils.compareAsdcComponentVersions(component.getVersion(), cachedComponent.getRight().getVersion())) {
+ componentCache.put(component.getInvariantUUID(),
+ new ImmutableTriple<String, String, Component>(id, fileName, component));
+
+ if(cachedComponent != null) {
+ //overwriting component with newer version
+ log.warn("Overwriting component invariantID {} of version {} with a newer version {}", id, cachedComponent.getRight().getVersion(), component.getVersion());
+ }
+ }
+ }
private Either<ZipOutputStream, ResponseFormat> writeComponentInterface(Component component, ZipOutputStream zip, String fileName) {
try {
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
index 0804ef1ed4..b8414367aa 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
@@ -100,7 +100,7 @@ public class PropertyConvertor {
eschema.setDescription(schema.getProperty().getDescription());
prop.setEntry_schema(eschema);
}
- log.debug("try to convert property {} from type {} with default value {}", property.getName(), property.getType(), property.getDefaultValue());
+ log.trace("try to convert property {} from type {} with default value [{}]", property.getName(), property.getType(), property.getDefaultValue());
prop.setDefaultp(convertToToscaObject(property.getType(), property.getName(), property.getDefaultValue(), innerType, dataTypes));
prop.setType(property.getType());
prop.setDescription(property.getDescription());
@@ -112,45 +112,46 @@ public class PropertyConvertor {
}
public Object convertToToscaObject(String propertyType, String propertyName, String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- log.debug("try to convert propertyType {} , value {}, innerType {}", propertyType, value, innerType);
+ log.trace("try to convert propertyType {} , value [{}], innerType {}", propertyType, value, innerType);
if (value == null) {
value = getDataTypeDefaultValue(propertyName, dataTypes.get(propertyType));
if(StringUtils.isEmpty(value)){
return null;
}
- }
-
- ToscaMapValueConverter mapConverterInst = ToscaMapValueConverter.getInstance();
- ToscaValueConverter innerConverter = null;
- Boolean isScalar = true;
-
- ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
- if (type == null) {
- log.debug("isn't prederfined type, get from all data types");
- DataTypeDefinition dataTypeDefinition = dataTypes.get(propertyType);
- if (innerType == null) {
- innerType = propertyType;
- }
-
- if ((type = mapConverterInst.isScalarType(dataTypeDefinition)) != null) {
- log.debug("This is scalar type. get suitable converter for type {}", type);
- innerConverter = type.getValueConverter();
- } else {
- isScalar = false;
- }
- } else {
- ToscaPropertyType typeIfScalar = ToscaPropertyType.getTypeIfScalar(type.getType());
- if (typeIfScalar == null) {
- isScalar = false;
- }
- innerConverter = type.getValueConverter();
- if (ToscaPropertyType.STRING.equals(type) && value.startsWith("/")) {
- return innerConverter.convertToToscaValue(value, innerType, dataTypes);
- }
}
- JsonElement jsonElement = null;
try {
+ ToscaMapValueConverter mapConverterInst = ToscaMapValueConverter.getInstance();
+ ToscaValueConverter innerConverter = null;
+ Boolean isScalar = true;
+
+ ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
+ if (type == null) {
+ log.trace("isn't prederfined type, get from all data types");
+ DataTypeDefinition dataTypeDefinition = dataTypes.get(propertyType);
+ if (innerType == null) {
+ innerType = propertyType;
+ }
+
+ if ((type = mapConverterInst.isScalarType(dataTypeDefinition)) != null) {
+ log.trace("This is scalar type. get suitable converter for type {}", type);
+ innerConverter = type.getValueConverter();
+ } else {
+ isScalar = false;
+ }
+ } else {
+ ToscaPropertyType typeIfScalar = ToscaPropertyType.getTypeIfScalar(type.getType());
+ if (typeIfScalar == null) {
+ isScalar = false;
+ }
+
+ innerConverter = type.getValueConverter();
+ if (ToscaPropertyType.STRING.equals(type) && value.startsWith("/")) {
+ return innerConverter.convertToToscaValue(value, innerType, dataTypes);
+ }
+ }
+ JsonElement jsonElement = null;
+
StringReader reader = new StringReader(value);
JsonReader jsonReader = new JsonReader(reader);
jsonReader.setLenient(true);
@@ -162,11 +163,11 @@ public class PropertyConvertor {
}
if (jsonElement.isJsonPrimitive() && isScalar) {
- log.debug("It's well defined type. convert it");
+ log.trace("It's well defined type. convert it");
ToscaValueConverter converter = type.getValueConverter();
return converter.convertToToscaValue(value, innerType, dataTypes);
} else {
- log.debug("It's data type or inputs in primitive type. convert as map");
+ log.trace("It's data type or inputs in primitive type. convert as map");
Object convertedValue;
if (innerConverter != null && (ToscaPropertyType.MAP.equals(type) || ToscaPropertyType.LIST.equals(type))) {
convertedValue = innerConverter.convertToToscaValue(value, innerType, dataTypes);
@@ -185,7 +186,7 @@ public class PropertyConvertor {
return convertedValue;
}
- } catch (JsonSyntaxException e) {
+ } catch (Exception e) {
log.debug("convertToToscaValue failed to parse json value :", e);
return null;
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
index d6f87967ca..f802d0f412 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
@@ -94,7 +94,7 @@ public class ToscaExportHandler {
private static Logger log = LoggerFactory.getLogger(ToscaExportHandler.class.getName());
- public static final String TOSCA_VERSION = "tosca_simple_yaml_1_0";
+ public static final String TOSCA_VERSION = "tosca_simple_yaml_1_1";
public static final String SERVICE_NODE_TYPE_PREFIX = "org.openecomp.service.";
public static final String IMPORTS_FILE_KEY = "file";
public static final String TOSCA_TEMPLATE_NAME = "-template.yml";
@@ -333,10 +333,13 @@ public class ToscaExportHandler {
toscaMetadata.setSubcategory(categoryDefinition.getSubcategories().get(0).getName());
toscaMetadata.setResourceVendor(resource.getVendorName());
toscaMetadata.setResourceVendorRelease(resource.getVendorRelease());
-
+ toscaMetadata.setResourceVendorModelNumber(resource.getResourceVendorModelNumber());
break;
case SERVICE:
+ Service service = (Service) component;
toscaMetadata.setType(component.getComponentType().getValue());
+ toscaMetadata.setServiceType(service.getServiceType());
+ toscaMetadata.setServiceRole(service.getServiceRole());
if (!isInstance) {
// DE268546
toscaMetadata.setServiceEcompNaming(((Service)component).isEcompGeneratedNaming());
@@ -747,8 +750,9 @@ public class ToscaExportHandler {
toscaMetadata = new VfModuleToscaMetadata();
Map<String, Object> properties = fillGroupProperties(props.get());
-
- properties.put(VF_MODULE_DESC_KEY, description.get());
+ if(!properties.containsKey(VF_MODULE_DESC_KEY) || StringUtils.isEmpty((String) properties.get(VF_MODULE_DESC_KEY))){
+ properties.put(VF_MODULE_DESC_KEY, description.get());
+ }
toscaGroup.setProperties(properties);
}
toscaMetadata.setName(groupName.get());
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaMetadata.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaMetadata.java
index 6573313dbb..604a52083b 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaMetadata.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/ToscaMetadata.java
@@ -32,6 +32,9 @@ public class ToscaMetadata implements IToscaMetadata {
private String subcategory;
private String resourceVendor;
private String resourceVendorRelease;
+ private String resourceVendorModelNumber;
+ private String serviceType;
+ private String serviceRole;
private Boolean serviceEcompNaming;
private Boolean ecompGeneratedNaming;
private String namingPolicy;
@@ -110,6 +113,30 @@ public class ToscaMetadata implements IToscaMetadata {
public void setResourceVendorRelease(String resourceVendorRelease) {
this.resourceVendorRelease = resourceVendorRelease;
}
+
+ public String getResourceVendorModelNumber() {
+ return resourceVendorModelNumber;
+ }
+
+ public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
+ this.resourceVendorModelNumber = resourceVendorModelNumber;
+ }
+
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ public void setServiceType(String serviceType) {
+ this.serviceType = serviceType;
+ }
+
+ public String getServiceRole() {
+ return serviceRole;
+ }
+
+ public void setServiceRole(String serviceRole) {
+ this.serviceRole = serviceRole;
+ }
public Boolean isEcompGeneratedNaming() {
return ecompGeneratedNaming;
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/mngr/RollbackManager.java b/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/mngr/RollbackManager.java
index 0641524038..7485a8dc43 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/mngr/RollbackManager.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/common/transaction/mngr/RollbackManager.java
@@ -20,68 +20,54 @@
package org.openecomp.sdc.common.transaction.mngr;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import fj.P;
+import fj.data.Either;
+import fj.data.HashMap;
+import fj.data.List;
import org.openecomp.sdc.common.transaction.api.RollbackHandler;
import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBActionCodeEnum;
import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBTypeEnum;
import org.openecomp.sdc.common.util.MethodActivationStatusEnum;
-import fj.data.Either;
-
public class RollbackManager {
- private Map<DBTypeEnum, RollbackHandler> rollBackHandlersMap;
- private Integer transactionId;
- private String userId, actionType;
+ private final HashMap<DBTypeEnum, RollbackHandler> rollbackHandlersMap;
+ private final Integer transactionId;
+ private final String userId;
+ private final String actionType;
- RollbackManager(Integer transactionId, String userId, String actionType, List<RollbackHandler> roleBackHandlers) {
+ RollbackManager(Integer transactionId, String userId, String actionType, Iterable<RollbackHandler> rollbackHandlers) {
this.transactionId = transactionId;
this.userId = userId;
this.actionType = actionType;
- rollBackHandlersMap = new HashMap<>();
- for (RollbackHandler handler : roleBackHandlers) {
- rollBackHandlersMap.put(handler.getDBType(), handler);
- }
-
+ this.rollbackHandlersMap = HashMap.from(List.iterableList(rollbackHandlers).map(i -> P.p(i.getDBType(), i)));
}
public DBActionCodeEnum transactionRollback() {
- DBActionCodeEnum rollbackResult = DBActionCodeEnum.SUCCESS;
- Iterator<RollbackHandler> handlersItr = rollBackHandlersMap.values().iterator();
- while (handlersItr.hasNext()) {
- RollbackHandler handler = handlersItr.next();
- DBActionCodeEnum rollbackCode = handler.doRollback();
- if (rollbackCode == DBActionCodeEnum.FAIL_GENERAL) {
- rollbackResult = DBActionCodeEnum.FAIL_GENERAL;
- }
- }
-
- return rollbackResult;
+ List<DBActionCodeEnum> results = rollbackHandlersMap.values().map(RollbackHandler::doRollback);
+ boolean failure = results.exists(r -> r == DBActionCodeEnum.FAIL_GENERAL);
+ return failure ? DBActionCodeEnum.FAIL_GENERAL : DBActionCodeEnum.SUCCESS;
}
protected Either<RollbackHandler, MethodActivationStatusEnum> addRollbackHandler(RollbackHandler rollbackHandler) {
Either<RollbackHandler, MethodActivationStatusEnum> result;
- if (rollBackHandlersMap.containsKey(rollbackHandler.getDBType())) {
+ if (rollbackHandlersMap.contains(rollbackHandler.getDBType())) {
result = Either.right(MethodActivationStatusEnum.NOT_ALLOWED);
} else {
- rollBackHandlersMap.put(rollbackHandler.getDBType(), rollbackHandler);
+ rollbackHandlersMap.set(rollbackHandler.getDBType(), rollbackHandler);
result = Either.left(rollbackHandler);
}
return result;
}
- protected Either<RollbackHandler, MethodActivationStatusEnum> createRollbackHandler(DBTypeEnum dbType) {
+ protected Either<RollbackHandler, MethodActivationStatusEnum> createRollbackHandler(final DBTypeEnum dbType) {
- final DBTypeEnum dbTypeFinal = dbType;
RollbackHandler rollbackHandler = new RollbackHandler(transactionId, userId, actionType) {
@Override
public DBTypeEnum getDBType() {
- return dbTypeFinal;
+ return dbType;
}
@Override
@@ -89,19 +75,12 @@ public class RollbackManager {
return true;
}
};
- Either<RollbackHandler, MethodActivationStatusEnum> result = addRollbackHandler(rollbackHandler);
-
- return result;
+ return addRollbackHandler(rollbackHandler);
}
protected Either<RollbackHandler, MethodActivationStatusEnum> getRollbackHandler(DBTypeEnum dbType) {
- Either<RollbackHandler, MethodActivationStatusEnum> result;
- if (rollBackHandlersMap.containsKey(dbType)) {
- result = Either.left(rollBackHandlersMap.get(dbType));
- } else {
- result = Either.right(MethodActivationStatusEnum.NOT_FOUND);
- }
- return result;
+ // need to swap here because the uses of Either in SDC appears to be opposite of convention
+ // by convention left is failure; in SDC right is failure
+ return rollbackHandlersMap.get(dbType).toEither(MethodActivationStatusEnum.NOT_FOUND).swap();
}
-
}
diff --git a/catalog-be/src/main/resources/config/SDC.zip b/catalog-be/src/main/resources/config/SDC.zip
index 674f6f86b4..6df1b13f2b 100644
--- a/catalog-be/src/main/resources/config/SDC.zip
+++ b/catalog-be/src/main/resources/config/SDC.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/config/configuration.yaml b/catalog-be/src/main/resources/config/configuration.yaml
index c9ebfd2e9f..5242652188 100644
--- a/catalog-be/src/main/resources/config/configuration.yaml
+++ b/catalog-be/src/main/resources/config/configuration.yaml
@@ -23,7 +23,7 @@ beSslPort: 8443
version: 1.0
released: 2012-11-30
-toscaConformanceLevel: 3.0
+toscaConformanceLevel: 4.0
minToscaConformanceLevel: 3.0
titanCfgFile: /home/vagrant/catalog-be/config/catalog-be/titan.properties
@@ -41,7 +41,6 @@ esReconnectIntervalInSeconds: 3
uebHealthCheckReconnectIntervalInSeconds: 15
uebHealthCheckReadTimeout: 4
-
# Protocols
protocols:
- http
@@ -75,7 +74,7 @@ neo4j:
cassandraConfig:
cassandraHosts: ['localhost']
- localDataCenter:
+ localDataCenter: datacenter1
reconnectTimeout : 30000
authenticate: false
username: koko
@@ -87,6 +86,7 @@ cassandraConfig:
- { name: sdcaudit, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
- { name: sdcartifact, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
- { name: sdccomponent, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
+ - { name: sdcrepository, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
#Application-specific settings of ES
elasticSearch:
@@ -147,6 +147,7 @@ resourceTypes: &allResourceTypes
- VF
- VFCMT
- Abstract
+ - CVFC
# validForResourceTypes usage
# validForResourceTypes:
@@ -195,6 +196,8 @@ toscaArtifacts:
#Informational artifacts placeHolder
excludeResourceCategory:
- Generic
+excludeResourceType:
+ - PNF
informationalResourceArtifacts:
features:
displayName: Features
@@ -303,6 +306,10 @@ serviceDeploymentArtifacts:
MODEL_QUERY_SPEC:
acceptedTypes:
- xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
+
#AAI Artifacts
AAI_SERVICE_MODEL:
acceptedTypes:
@@ -500,7 +507,15 @@ resourceInformationalArtifacts:
validForResourceTypes: *allResourceTypes
OTHER:
acceptedTypes:
- validForResourceTypes: *allResourceTypes
+ validForResourceTypes:
+ - VFC
+ - CVFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - PNF
SNMP_POLL:
acceptedTypes:
validForResourceTypes: *allResourceTypes
@@ -512,6 +527,7 @@ resourceInformationalArtifacts:
validForResourceTypes:
- VF
- VFC
+ - CVFC
resourceInformationalDeployedArtifacts:
@@ -538,6 +554,7 @@ onboarding:
host: localhost
port: 8080
downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
switchoverDetector:
gBeFqdn: AIO-BE.ecomp.idns.cip.com
@@ -597,5 +614,7 @@ vfModuleProperties:
genericAssetNodeTypes:
VFC: org.openecomp.resource.abstract.nodes.VFC
+ CVFC: org.openecomp.resource.abstract.nodes.VFC
VF : org.openecomp.resource.abstract.nodes.VF
+ PNF: org.openecomp.resource.abstract.nodes.PNF
Service: org.openecomp.resource.abstract.nodes.service
diff --git a/catalog-be/src/main/resources/config/error-configuration.yaml b/catalog-be/src/main/resources/config/error-configuration.yaml
index 4985ab552a..62bd7206ba 100644
--- a/catalog-be/src/main/resources/config/error-configuration.yaml
+++ b/catalog-be/src/main/resources/config/error-configuration.yaml
@@ -12,103 +12,103 @@ errors:
code: 204,
message: "No Content"
}
-#--------POL4050-----------------------------
+#--------POL4050-----------------------------
NOT_ALLOWED: {
code: 405,
message: "Error: Method not allowed.",
messageId: "POL4050"
}
-#--------POL5000-----------------------------
+#--------POL5000-----------------------------
GENERAL_ERROR: {
code: 500,
message: "Error: Internal Server Error. Please try again later.",
messageId: "POL5000"
}
-#---------POL5001------------------------------
+#---------POL5001------------------------------
MISSING_X_ECOMP_INSTANCE_ID: {
code: 400 ,
message: "Error: Missing 'X-ECOMP-InstanceID' HTTP header.",
messageId: "POL5001"
}
-#---------POL5002------------------------------
+#---------POL5002------------------------------
AUTH_REQUIRED: {
code: 401 ,
message: "Error: Authentication is required to use the API.",
messageId: "POL5002"
}
-#---------POL5003------------------------------
+#---------POL5003------------------------------
AUTH_FAILED: {
code: 403 ,
message: "Error: Not authorized to use the API.",
messageId: "POL5003"
}
-#---------POL5004------------------------------
+#---------POL5004------------------------------
MISSING_USER_ID: {
code: 400 ,
message: "Error: Missing 'USER_ID' HTTP header.",
messageId: "POL5004"
}
-#---------SVC4000-----------------------------
+#---------SVC4000-----------------------------
INVALID_CONTENT: {
code: 400,
message: "Error: Invalid content.",
messageId: "SVC4000"
}
-#---------SVC4002-----------------------------
+#---------SVC4002-----------------------------
MISSING_INFORMATION: {
code: 403,
message: "Error: Missing information.",
messageId: "SVC4002"
}
-#---------SVC4003------------------------------
-# %1 - Users's ID
+#---------SVC4003------------------------------
+# %1 - Users's ID
USER_NOT_FOUND: {
code: 404,
message: "Error: User '%1' was not found.",
messageId: "SVC4003"
}
-#---------SVC4004-----------------------------
-# %1 - Users's email address
+#---------SVC4004-----------------------------
+# %1 - Users's email address
INVALID_EMAIL_ADDRESS: {
code: 400,
message: "Error: Invalid email address '%1'.",
messageId: "SVC4004"
}
-#---------SVC4005------------------------------
+#---------SVC4005------------------------------
# %1 - role
INVALID_ROLE: {
code: 400,
message: "Error: Invalid role '%1'.",
messageId: "SVC4005"
}
-#---------SVC4006------------------------------
-# %1 - Users's USER_ID
+#---------SVC4006------------------------------
+# %1 - Users's USER_ID
USER_ALREADY_EXIST: {
code: 409,
message: "Error: User with '%1' ID already exists.",
messageId: "SVC4006"
}
-#---------SVC4007------------------------------
+#---------SVC4007------------------------------
DELETE_USER_ADMIN_CONFLICT: {
code: 409,
message: "Error: An administrator can only be deleted by another administrator.",
messageId: "SVC4007"
}
-#---------SVC4008-----------------------------
-# %1 - Users's userId
+#---------SVC4008-----------------------------
+# %1 - Users's userId
INVALID_USER_ID: {
code: 400,
message: "Error: Invalid userId '%1'.",
messageId: "SVC4008"
}
-#---------SVC4049------------------------------
+#---------SVC4049------------------------------
# %1 - service/resource
COMPONENT_MISSING_CONTACT: {
code: 400,
message: "Error: Invalid Content. Missing %1 contact.",
messageId: "SVC4049"
- }
-#---------SVC4050-----------------------------
+ }
+#---------SVC4050-----------------------------
# %1 - Service/Resource/Additional parameter
# %2 - service/resource/label name
COMPONENT_NAME_ALREADY_EXIST: {
@@ -116,90 +116,90 @@ errors:
message: "Error: %1 with name '%2' already exists.",
messageId: "SVC4050"
}
-#---------SVC4051------------------------------
-# %1 - resource/service
+#---------SVC4051------------------------------
+# %1 - resource/service
COMPONENT_MISSING_CATEGORY: {
code: 400,
message: "Error: Invalid Content. Missing %1 category.",
messageId: "SVC4051"
}
-#---------SVC4052------------------------------
+#---------SVC4052------------------------------
COMPONENT_MISSING_TAGS: {
code: 400,
message: "Error: Invalid Content. At least one tag has to be specified.",
messageId: "SVC4052"
}
-#---------SVC4053------------------------------
+#---------SVC4053------------------------------
# %1 - service/resource
COMPONENT_MISSING_DESCRIPTION: {
code: 400,
message: "Error: Invalid Content. Missing %1 description.",
messageId: "SVC4053"
}
-#---------SVC4054------------------------------
+#---------SVC4054------------------------------
# %1 - resource/service
COMPONENT_INVALID_CATEGORY: {
code: 400,
message: "Error: Invalid Content. Invalid %1 category.",
messageId: "SVC4054"
}
-#---------SVC4055------------------------------
+#---------SVC4055------------------------------
MISSING_VENDOR_NAME: {
code: 400,
message: "Error: Invalid Content. Missing vendor name.",
messageId: "SVC4055"
}
-#---------SVC4056------------------------------
+#---------SVC4056------------------------------
MISSING_VENDOR_RELEASE: {
code: 400,
message: "Error: Invalid Content. Missing vendor release.",
messageId: "SVC4056"
}
-#---------SVC4057------------------------------
+#---------SVC4057------------------------------
MISSING_DERIVED_FROM_TEMPLATE: {
code: 400,
message: "Error: Invalid Content. Missing derived from template specification.",
messageId: "SVC4057"
}
-#---------SVC4058------------------------------
+#---------SVC4058------------------------------
# %1 - service/resource
COMPONENT_MISSING_ICON: {
code: 400,
message: "Error: Invalid Content. Missing %1 icon.",
messageId: "SVC4058"
}
-#---------SVC4059------------------------------
+#---------SVC4059------------------------------
# %1 - service/resource
COMPONENT_INVALID_ICON: {
code: 400,
message: "Error: Invalid Content. Invalid %1 icon.",
messageId: "SVC4059"
}
-#---------SVC4060------------------------------
+#---------SVC4060------------------------------
PARENT_RESOURCE_NOT_FOUND: {
code: 400,
message: "Error: Invalid Content. Derived from resource template was not found.",
messageId: "SVC4060"
}
-#---------SVC4061------------------------------
+#---------SVC4061------------------------------
MULTIPLE_PARENT_RESOURCE_FOUND: {
code: 400,
message: "Error: Invalid Content. Multiple derived from resource template is not allowed.",
messageId: "SVC4061"
}
-#---------SVC4062------------------------------
+#---------SVC4062------------------------------
# %1 - service/resource
MISSING_COMPONENT_NAME: {
code: 400,
message: "Error: Invalid Content. Missing %1 name.",
messageId: "SVC4062"
}
-#---------SVC4063------------------------------
+#---------SVC4063------------------------------
#%1  -  resource/service name
RESOURCE_NOT_FOUND: {
code: 404,
@@ -207,51 +207,51 @@ errors:
messageId: "SVC4063"
}
-#---------SVC4064------------------------------
+#---------SVC4064------------------------------
# %1 - Service/Resource/Property
COMPONENT_INVALID_DESCRIPTION: {
code: 400,
message: "Error: Invalid Content. %1 description contains non-english characters.",
messageId: "SVC4064"
}
-#---------SVC4065------------------------------
+#---------SVC4065------------------------------
# %1 - Service/Resource/Property
-# %2 - max resource/service name length
+# %2 - max resource/service name length
COMPONENT_DESCRIPTION_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 description exceeds limit of %2 characters.",
messageId: "SVC4065"
}
-#---------SVC4066------------------------------
-# %1 - max length
+#---------SVC4066------------------------------
+# %1 - max length
COMPONENT_TAGS_EXCEED_LIMIT: {
code: 400,
message: "Error: Invalid Content. Tags overall length exceeds limit of %1 characters.",
messageId: "SVC4066"
}
#---------SVC4067------------------------------
-# %1 - max length
+# %1 - max length
VENDOR_NAME_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Vendor name exceeds limit of %1 characters.",
messageId: "SVC4067"
}
#---------SVC4068------------------------------
-# %1 - max length
+# %1 - max length
VENDOR_RELEASE_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Vendor release exceeds limit of %1 characters.",
messageId: "SVC4068"
}
-#---------SVC4069------------------------------
+#---------SVC4069------------------------------
# %1 - Service/Resource/Product
COMPONENT_INVALID_CONTACT: {
code: 400,
message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9",
messageId: "SVC4069"
}
-#---------SVC4070------------------------------
+#---------SVC4070------------------------------
# %1 - Service/Resource
INVALID_COMPONENT_NAME: {
code: 400,
@@ -259,27 +259,27 @@ errors:
messageId: "SVC4070"
}
-#---------SVC4071------------------------------
+#---------SVC4071------------------------------
INVALID_VENDOR_NAME: {
code: 400,
message: 'Error: Invalid Content. Vendor name is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
messageId: "SVC4071"
}
-#---------SVC4072------------------------------
+#---------SVC4072------------------------------
INVALID_VENDOR_RELEASE: {
code: 400,
message: 'Error: Invalid Content. Vendor release is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
messageId: "SVC4072"
}
-#---------SVC4073------------------------------
+#---------SVC4073------------------------------
# %1 - Service/Resource
-# %2 - max resource/service name
+# %2 - max resource/service name
COMPONENT_NAME_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 name exceeds limit of %2 characters.",
messageId: "SVC4073"
}
-#---------SVC4080------------------------------
+#---------SVC4080------------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -290,7 +290,7 @@ errors:
message: "Error: Requested '%1' %2 is locked for modification by %3 %4(%5).",
messageId: "SVC4080"
}
-#---------SVC4081-----------------------------
+#---------SVC4081-----------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -302,7 +302,7 @@ errors:
messageId: "SVC4081"
}
-#-----------SVC4082---------------------------
+#-----------SVC4082---------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -392,7 +392,7 @@ errors:
}
#-----------SVC4102---------------------------
-# %1 - capability type name
+# %1 - capability type name
CAPABILITY_TYPE_ALREADY_EXIST: {
code: 409,
message: "Error: Capability Type with name '%1' already exists.",
@@ -405,7 +405,7 @@ errors:
messageId: "SVC4114"
}
#-----------SVC4115---------------------------
-# %1 - capability type name
+# %1 - capability type name
MISSING_CAPABILITY_TYPE: {
code: 400,
message: "Error: Invalid Content. Missing Capability Type '%1'.",
@@ -483,7 +483,7 @@ errors:
message: "Error: Artifact '%1' already exists.",
messageId: "SVC4125"
}
-#---------SVC4126------------------------------
+#---------SVC4126------------------------------
# %1 - resource/service/product/...
# %2 - field (tag, vendor name...)
INVALID_FIELD_FORMAT: {
@@ -518,7 +518,7 @@ errors:
#-----------SVC4131---------------------------
# %1-resource/service
# %2-srtifact/artifacts
-# %3-semicolomn separated list of artifact
+# %3-semicolomn separated list of artifact
COMPONENT_MISSING_MANDATORY_ARTIFACTS: {
code: 403,
message: "Error: Missing mandatory informational %1 %2: [%3].",
@@ -545,60 +545,60 @@ errors:
message: "Error: Invalid Content. Missing interface life-cycle type.",
messageId: "SVC4134"
}
-#---------SVC4135------------------------------
+#---------SVC4135------------------------------
SERVICE_CATEGORY_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Service category cannot be changed once the service is certified.",
messageId: "SVC4135"
}
-#---------SVC4136------------------------------
-# %1 - distribution environment name
+#---------SVC4136------------------------------
+# %1 - distribution environment name
DISTRIBUTION_ENVIRONMENT_NOT_AVAILABLE: {
code: 500,
message: "Error: Requested distribution environment '%1' is not available.",
messageId: "SVC4136"
}
-#---------SVC4137------------------------------
-# %1 - distribution environment name
+#---------SVC4137------------------------------
+# %1 - distribution environment name
DISTRIBUTION_ENVIRONMENT_NOT_FOUND: {
code: 400,
message: "Error: Requested distribution environment '%1' was not found.",
messageId: "SVC4137"
}
-#---------SVC4138------------------------------
+#---------SVC4138------------------------------
DISTRIBUTION_ENVIRONMENT_INVALID: {
code: 400,
message: "Error: Invalid distribution environment.",
messageId: "SVC4138"
}
-#---------SVC4139------------------------------
+#---------SVC4139------------------------------
# %1 - service name
DISTRIBUTION_ARTIFACT_NOT_FOUND: {
code: 409,
message: "Error: Service '%1' cannot be distributed due to missing deployment artifacts.",
messageId: "SVC4139"
}
-#---------SVC4200------------------------------
+#---------SVC4200------------------------------
# %1 - Service/Resource
-# %2 - max icon name length
+# %2 - max icon name length
COMPONENT_ICON_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 icon name exceeds limit of %2 characters.",
messageId: "SVC4200"
}
-#---------SVC4300------------------------------
+#---------SVC4300------------------------------
RESTRICTED_ACCESS: {
code: 403,
message: "Error: Restricted access.",
messageId: "SVC4300"
}
-#---------SVC4301------------------------------
+#---------SVC4301------------------------------
RESTRICTED_OPERATION: {
code: 409,
message: "Error: Restricted operation.",
messageId: "SVC4301"
}
-#---------SVC4500------------------------------
+#---------SVC4500------------------------------
MISSING_BODY: {
code: 400 ,
message: "Error: Missing request body.",
@@ -610,7 +610,7 @@ errors:
message: "Error: Invalid Content. Missing mandatory parameter 'apiPublicKey'." ,
messageId: "SVC4501"
}
-#---------SVC4502------------------------------
+#---------SVC4502------------------------------
DISTRIBUTION_ENV_DOES_NOT_EXIST: {
code: 400 ,
message: "Error: Invalid Body : Missing mandatory parameter 'distrEnvName'." ,
@@ -624,7 +624,7 @@ errors:
messageId: "SVC4503"
}
-#---------SVC4504------------------------------
+#---------SVC4504------------------------------
# %1 - Service/Resource
# %2 - service/resource version
COMPONENT_VERSION_NOT_FOUND: {
@@ -634,103 +634,103 @@ errors:
}
#-----------SVC4505---------------------------
#%1-artifact name
-
+
ARTIFACT_NOT_FOUND: {
code: 404,
message: "Error: Artifact '%1' was not found.",
messageId: "SVC4505"
}
-#---------SVC4506------------------------------
+#---------SVC4506------------------------------
MISSING_ENV_NAME: {
code: 400 ,
message: "Error: Invalid Content. Missing mandatory parameter 'distrEnvName'.",
messageId: "SVC4506"
}
-#---------SVC4507------------------------------
+#---------SVC4507------------------------------
COMPONENT_INVALID_TAGS_NO_COMP_NAME: {
code: 400,
message: "Error: Invalid Content. One of the tags should be the component name.",
messageId: "SVC4507"
}
-
-#---------SVC4508------------------------------
+
+#---------SVC4508------------------------------
SERVICE_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Service name cannot be changed once the service is certified.",
messageId: "SVC4508"
}
-#---------SVC4509------------------------------
+#---------SVC4509------------------------------
SERVICE_ICON_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Icon cannot be changed once the service is certified.",
messageId: "SVC4509"
}
-#---------SVC4510------------------------------
+#---------SVC4510------------------------------
# %1 - icon name max length
SERVICE_ICON_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Icon name exceeds limit of %1 characters.",
messageId: "SVC4510"
}
-#---------SVC4511------------------------------
+#---------SVC4511------------------------------
DISTRIBUTION_REQUESTED_NOT_FOUND: {
code: 404,
message: "Error: Requested distribution was not found.",
messageId: "SVC4511"
}
-#---------SVC4512------------------------------
+#---------SVC4512------------------------------
# %1 - Distribution ID
DISTRIBUTION_REQUESTED_FAILED: {
code: 403,
message: "Error: Requested distribution '%1' failed.",
messageId: "SVC4512"
}
-#---------SVC4513------------------------------
+#---------SVC4513------------------------------
RESOURCE_CATEGORY_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Resource category cannot be changed once the resource is certified.",
messageId: "SVC4513"
}
-#---------SVC4514------------------------------
+#---------SVC4514------------------------------
RESOURCE_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Resource name cannot be changed once the resource is certified.",
messageId: "SVC4514"
}
-#---------SVC4515------------------------------
+#---------SVC4515------------------------------
RESOURCE_ICON_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Icon cannot be changed once the resource is certified.",
messageId: "SVC4515"
}
-#---------SVC4516------------------------------
+#---------SVC4516------------------------------
RESOURCE_VENDOR_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Vendor name cannot be changed once the resource is certified.",
messageId: "SVC4516"
}
-#---------SVC4517------------------------------
+#---------SVC4517------------------------------
RESOURCE_DERIVED_FROM_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Derived from resource template cannot be changed once the resource is certified.",
messageId: "SVC4517"
}
-#---------SVC4518------------------------------
-# %1 - max length
+#---------SVC4518------------------------------
+# %1 - max length
COMPONENT_SINGLE_TAG_EXCEED_LIMIT: {
code: 400,
message: "Error: Invalid Content. Single tag exceeds limit of %1 characters.",
messageId: "SVC4518"
}
-#---------SVC4519------------------------------
+#---------SVC4519------------------------------
INVALID_DEFAULT_VALUE: {
code: 400,
message: "Error: mismatch in data-type occurred for property %1. data type is %2 and default value found is %3.",
messageId: "SVC4519"
}
-#---------SVC4520------------------------------
-# %1 - service or resource
+#---------SVC4520------------------------------
+# %1 - service or resource
ADDITIONAL_INFORMATION_MAX_NUMBER_REACHED: {
code: 409,
message: "Error: Maximal number of additional %1 parameters was reached.",
@@ -742,7 +742,7 @@ errors:
message: "Error: Invalid Content. The Additional information label and value cannot be empty.",
messageId: "SVC4521"
}
-#---------SVC4522------------------------------
+#---------SVC4522------------------------------
# %1 - label/value
# %2 - Maximal length of %1
ADDITIONAL_INFORMATION_EXCEEDS_LIMIT: {
@@ -762,32 +762,32 @@ errors:
message: "Error: Requested additional information was not found.",
messageId: "SVC4524"
}
-#---------SVC4525------------------------------
+#---------SVC4525------------------------------
ADDITIONAL_INFORMATION_VALUE_NOT_ALLOWED_CHARACTERS: {
code: 400,
message: 'Error: Invalid Content. Additional information contains non-english characters.',
messageId: "SVC4525"
}
-#---------SVC4526------------------------------
+#---------SVC4526------------------------------
RESOURCE_INSTANCE_NOT_FOUND: {
code: 404,
message: "Error: Requested '%1' resource instance was not found.",
messageId: "SVC4526"
}
-#---------SVC4527------------------------------
+#---------SVC4527------------------------------
ASDC_VERSION_NOT_FOUND: {
code: 500,
message: 'Error: ASDC version cannot be displayed.',
messageId: "SVC4527"
}
-#---------SVC4528------------------------------
+#---------SVC4528------------------------------
# %1-artifact url/artifact label/artifact description/VNF Service Indicator
MISSING_DATA: {
code: 400,
message: "Error: Invalid content. Missing %1.",
messageId: "SVC4528"
}
-#---------SVC4529------------------------------
+#---------SVC4529------------------------------
# %1-artifact url/artifact label/artifact description/artifact name
# %2 - Maximal length of %1
EXCEEDS_LIMIT: {
@@ -795,51 +795,51 @@ errors:
message: "Error: Invalid Content. %1 exceeds limit of %2 characters.",
messageId: "SVC4529"
}
-#---------SVC4530------------------------------
+#---------SVC4530------------------------------
ARTIFACT_INVALID_TIMEOUT: {
code: 400,
message: "Error: Invalid Content. Artifact Timeout should be set to valid positive non-zero number of minutes.",
messageId: "SVC4530"
}
-#---------SVC4531------------------------------
+#---------SVC4531------------------------------
SERVICE_IS_VNF_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: VNF Indicator cannot be updated for certified service.",
messageId: "SVC4531"
}
- #---------SVC4532------------------------------
+ #---------SVC4532------------------------------
RESOURCE_INSTANCE_NOT_FOUND_ON_SERVICE: {
code: 404,
message: "Error: Requested '%1' resource instance was not found on the service '%2.",
messageId: "SVC4532"
}
- #---------SVC4533------------------------------
- # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
+ #---------SVC4533------------------------------
+ # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
WRONG_ARTIFACT_FILE_EXTENSION: {
code: 400,
message: "Error: Invalid file extension for %1 artifact type.",
messageId: "SVC4533"
}
-#---------SVC4534------------------------------
-# %1 - "HEAT"/"HEAT_ENV"
+#---------SVC4534------------------------------
+# %1 - "HEAT"/"HEAT_ENV"
INVALID_YAML: {
code: 400,
message: "Error: Uploaded YAML file for %1 artifact is invalid.",
messageId: "SVC4534"
}
-#---------SVC4535------------------------------
-# %1 - "HEAT"
+#---------SVC4535------------------------------
+# %1 - "HEAT"
INVALID_DEPLOYMENT_ARTIFACT_HEAT: {
code: 400,
message: "Error: Invalid %1 artifact.",
messageId: "SVC4535"
}
-#---------SVC4536------------------------------
+#---------SVC4536------------------------------
# %1 - "Resource"/"Service"
-# %2 - resource/service name
-# %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"
+# %2 - resource/service name
+# %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"
# %4 - "HEAT"/"HEAT_ENV"/"MURANO_PKG
DEPLOYMENT_ARTIFACT_OF_TYPE_ALREADY_EXISTS: {
code: 400,
@@ -847,80 +847,80 @@ errors:
messageId: "SVC4536"
}
-#---------SVC4537------------------------------
+#---------SVC4537------------------------------
MISSING_HEAT: {
code: 400,
message: "Error: Missing HEAT artifact. HEAT_ENV artifact cannot be uploaded without corresponding HEAT template.",
messageId: "SVC4537"
}
-#---------SVC4538------------------------------
+#---------SVC4538------------------------------
MISMATCH_HEAT_VS_HEAT_ENV: {
code: 400,
message: "Error: Invalid artifact content. Parameter's set in HEAT_ENV '%1' artifact doesn't match the parameters in HEAT '%2' artifact.",
messageId: "SVC4538"
}
-#---------SVC4539------------------------------
+#---------SVC4539------------------------------
INVALID_RESOURCE_PAYLOAD: {
code: 400,
message: "Error: Invalid resource payload.",
messageId: "SVC4539"
}
-#---------SVC4540------------------------------
+#---------SVC4540------------------------------
INVALID_TOSCA_FILE_EXTENSION: {
code: 400,
message: "Error: Invalid file extension for TOSCA template.",
messageId: "SVC4540"
}
-#---------SVC4541------------------------------
+#---------SVC4541------------------------------
INVALID_YAML_FILE: {
code: 400,
message: "Error: Invalid YAML file.",
messageId: "SVC4541"
}
-#---------SVC4542------------------------------
+#---------SVC4542------------------------------
INVALID_TOSCA_TEMPLATE: {
code: 400,
message: "Error: Invalid TOSCA template.",
messageId: "SVC4542"
}
-#---------SVC4543------------------------------
+#---------SVC4543------------------------------
NOT_RESOURCE_TOSCA_TEMPLATE: {
code: 400,
message: "Error: Imported Service TOSCA template.",
messageId: "SVC4543"
}
-#---------SVC4544------------------------------
+#---------SVC4544------------------------------
NOT_SINGLE_RESOURCE: {
code: 400,
message: "Error: Imported TOSCA template should contain one resource definition.",
messageId: "SVC4544"
}
-#---------SVC4545------------------------------
+#---------SVC4545------------------------------
INVALID_RESOURCE_NAMESPACE: {
code: 400,
message: "Error: Invalid resource namespace.",
messageId: "SVC4545"
}
-#---------SVC4546------------------------------
+#---------SVC4546------------------------------
RESOURCE_ALREADY_EXISTS: {
code: 400,
message: "Error: Imported resource already exists in ASDC Catalog.",
messageId: "SVC4546"
}
-#---------SVC4549------------------------------
+#---------SVC4549------------------------------
INVALID_RESOURCE_CHECKSUM: {
code: 400,
message: "Error: Invalid resource checksum.",
messageId: "SVC4549"
}
-#---------SVC4550------------------------------
+#---------SVC4550------------------------------
#%1  -  Consumer salt
INVALID_LENGTH: {
code: 400,
message: "Error: Invalid %1 length.",
messageId: "SVC4550"
}
- #---------SVC4551------------------------------
+ #---------SVC4551------------------------------
#%1  -  ECOMP User name
ECOMP_USER_NOT_FOUND: {
code: 404,
@@ -934,13 +934,13 @@ errors:
messageId: "SVC4552"
}
#---------SVC4553-----------------------------
- #%1  -  Consumer name / Consumer password/ Consumer salt
+ #%1  -  Consumer name / Consumer password/ Consumer salt
INVALID_CONTENT_PARAM: {
code: 400,
message: "Error: %1 is invalid.",
messageId: "SVC4553"
}
- #---------SVC4554------------------------------
+ #---------SVC4554------------------------------
# %1 - "Resource"/"Service"
COMPONENT_ARTIFACT_NOT_FOUND: {
code: 404,
@@ -954,7 +954,7 @@ errors:
message: "Error: Requested '%1' service is not ready for certification. Service has to have at least one deployment artifact.",
messageId: "SVC4554"
}
-#---------SVC4555------------------------------
+#---------SVC4555------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category"
COMPONENT_ELEMENT_INVALID_NAME_LENGTH: {
@@ -962,7 +962,7 @@ errors:
message: "Error: Invalid %1 %2 name length.",
messageId: "SVC4555"
}
-#---------SVC4556------------------------------
+#---------SVC4556------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category"
COMPONENT_ELEMENT_INVALID_NAME_FORMAT: {
@@ -970,7 +970,7 @@ errors:
message: "Error: Invalid %1 %2 name format.",
messageId: "SVC4556"
}
-#---------SVC4557------------------------------
+#---------SVC4557------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category name"
COMPONENT_CATEGORY_ALREADY_EXISTS: {
@@ -1001,7 +1001,7 @@ errors:
code: 403,
message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use one of available validated resource versions.",
messageId: "SVC4560"
- }
+ }
#---------SVC4561------------------------------
# %1 - "resource"/"product"
# %2 - "category"
@@ -1029,108 +1029,108 @@ errors:
message: "Error: %1 grouping '%2' already exists under '%3' sub-category.",
messageId: "SVC4563"
}
-#---------SVC4564------------------------------
+#---------SVC4564------------------------------
# %1 - product name
PRODUCT_NOT_FOUND: {
code: 404,
message: "Error: Requested '%1' product was not found.",
messageId: "SVC4564"
}
-#---------SVC4565------------------------------
-# %1 - "HEAT"
-# %2 - parameter type ("string" , "boolean" , "number")
+#---------SVC4565------------------------------
+# %1 - "HEAT"
+# %2 - parameter type ("string" , "boolean" , "number")
# %3 - parameter name
INVALID_HEAT_PARAMETER_VALUE: {
code: 400,
message: "Error: Invalid %1 artifact. Invalid %2 value set for '%3' parameter.",
messageId: "SVC4565"
}
-#---------SVC4566------------------------------
-# %1 - "HEAT"
-# %2 - parameter type ("string" , "boolean" , "number")
+#---------SVC4566------------------------------
+# %1 - "HEAT"
+# %2 - parameter type ("string" , "boolean" , "number")
INVALID_HEAT_PARAMETER_TYPE: {
code: 400,
message: "Error: Invalid %1 artifact. Unsupported '%2' parameter type.",
messageId: "SVC4566"
}
-#---------SVC4567------------------------------
-# %1 - "YANG_XML"
+#---------SVC4567------------------------------
+# %1 - "YANG_XML"
INVALID_XML: {
code: 400,
message: "Error: Uploaded XML file for %1 artifact is invalid.",
messageId: "SVC4567"
}
-#---------SVC4567------------------------------
-# %1 - "User Name and UserId"
+#---------SVC4567------------------------------
+# %1 - "User Name and UserId"
# %2 -"checked-out"/"in-certification"
CANNOT_DELETE_USER_WITH_ACTIVE_ELEMENTS: {
code: 409,
message: "Error: User cannot be deleted. User '%1' has %2 projects.",
messageId: "SVC4567"
}
-#---------SVC4568------------------------------
-# %1 - "User Name and UserId"
+#---------SVC4568------------------------------
+# %1 - "User Name and UserId"
# %2 -"checked-out"/"in-certification"
CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS: {
code: 409,
message: "Error: Role cannot be changed. User '%1' has %2 projects.",
messageId: "SVC4568"
}
-#---------SVC4570------------------------------
+#---------SVC4570------------------------------
UPDATE_USER_ADMIN_CONFLICT: {
code: 409,
message: "Error: An administrator is not allowed to change his/her role.",
messageId: "SVC4570"
}
-#---------SVC4571------------------------------
+#---------SVC4571------------------------------
SERVICE_CANNOT_CONTAIN_SUBCATEGORY: {
code: 400,
message: "Error: Sub category cannot be defined for service",
messageId: "SVC4571"
}
-#---------SVC4572------------------------------
+#---------SVC4572------------------------------
# %1 - "Resource"/"Service"
COMPONENT_TOO_MUCH_CATEGORIES: {
code: 400,
message: "Error: %1 must have only 1 category",
messageId: "SVC4572"
}
-#---------SVC4574------------------------------
+#---------SVC4574------------------------------
RESOURCE_TOO_MUCH_SUBCATEGORIES: {
code: 400,
message: "Error: Resource must have only 1 sub category",
messageId: "SVC4574"
}
-#---------SVC4575------------------------------
+#---------SVC4575------------------------------
COMPONENT_MISSING_SUBCATEGORY: {
code: 400,
message: "Error: Missing sub category",
messageId: "SVC4575"
}
- #---------SVC4576------------------------------
+ #---------SVC4576------------------------------
# %1 - "component type"
UNSUPPORTED_ERROR: {
code: 400,
message: "Error : Requested component type %1 is unsupported.",
messageId: "SVC4576"
}
- #---------SVC4577------------------------------
+ #---------SVC4577------------------------------
# %1 - "resource type"
RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES: {
code: 409,
message: "Error : Resource of type %1 cannot contain resource instances.",
messageId: "SVC4577"
}
-#---------SVC4578------------------------------
+#---------SVC4578------------------------------
# %1 - "Resource"/"Service"
-# %2 - resource/service name
-# %3 - "artifact name"
+# %2 - resource/service name
+# %3 - "artifact name"
DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS: {
code: 400,
message: "Error: %1 '%2' already has a deployment artifact named '%3'.",
messageId: "SVC4578"
}
-#---------SVC4579------------------------------
+#---------SVC4579------------------------------
# %1 - "Category"/"Sub-Category"/"Group"
# %2 - category/sub-category/grouping name.
INVALID_GROUP_ASSOCIATION: {
@@ -1138,27 +1138,27 @@ errors:
message: "Error: Invalid group association. %1 '%2' was not found.",
messageId: "SVC4579"
}
-#---------SVC4580------------------------------
+#---------SVC4580------------------------------
EMPTY_PRODUCT_CONTACTS_LIST: {
code: 400,
message: "Error: Invalid content. At least one Product Contact has to be specified.",
messageId: "SVC4580"
}
-#---------SVC4581------------------------------
+#---------SVC4581------------------------------
# %1 - UserId
INVALID_PRODUCT_CONTACT: {
code: 400,
message: "Error: Invalid content. User '%1' cannot be set as Product Contact.",
messageId: "SVC4581"
}
-#---------SVC4582------------------------------
+#---------SVC4582------------------------------
# %1 - Product
# %2 - "abbreviated"/"full"
MISSING_ONE_OF_COMPONENT_NAMES: {
code: 400,
message: "Error: Invalid content. Missing %1 %2 name.",
messageId: "SVC4582"
- }
+ }
#---------SVC4583------------------------------
# %1 - "Icon"
# %2 - "resource"/"service"/"product"
@@ -1168,10 +1168,10 @@ errors:
messageId: "SVC4583"
}
#---------SVC4584------------------------------
-# %1 - service/VF name
+# %1 - service/VF name
# %2 - "service" /"VF"
# %3 - resource instance origin type
-# %4 - resource instance name
+# %4 - resource instance name
# %5 - requirement/capability
# %6 - requirement/capability name
# %7 - "fulfilled" (for req)/"consumed (for cap)"
@@ -1180,57 +1180,57 @@ errors:
message: "Error: Requested '%1' %2 is not ready for certification. %3 '%4' has to have %5 '%6' %7.",
messageId: "SVC4584"
}
-#---------SVC4585------------------------------
+#---------SVC4585------------------------------
INVALID_OCCURRENCES: {
code: 400,
message: "Error: Invalid occurrences format.",
messageId: "SVC4585"
}
-#---------SVC4586------------------------------
-#---------SVC4586------------------------------
+#---------SVC4586------------------------------
+#---------SVC4586------------------------------
INVALID_SERVICE_API_URL: {
code: 400,
message: 'Error: Invalid Service API URL. Please check whether your URL has a valid domain extension and does not contain the following characters - #?&@%+;,=$<>~^`\[]{}|"*!',
messageId: "SVC4586"
}
-#---------SVC4587------------------------------
-# %1 - Data type name
+#---------SVC4587------------------------------
+# %1 - Data type name
DATA_TYPE_ALREADY_EXIST: {
code: 409,
message: 'Error: Data type %1 already exists.',
messageId: "SVC4587"
}
-#---------SVC4588------------------------------
-# %1 - Data type name
+#---------SVC4588------------------------------
+# %1 - Data type name
DATA_TYPE_NOR_PROPERTIES_NEITHER_DERIVED_FROM: {
code: 400,
message: 'Error: Invalid Data type %1. Data type must have either a valid derived from declaration or at least one valid property',
messageId: "SVC4588"
}
-#---------SVC4589------------------------------
-# %1 - Data type name
+#---------SVC4589------------------------------
+# %1 - Data type name
DATA_TYPE_PROPERTIES_CANNOT_BE_EMPTY: {
code: 400,
message: "Error: Invalid Data type %1. 'properties' parameter cannot be empty if provided.",
messageId: "SVC4589"
}
-#---------SVC4590------------------------------
-# %1 - Property type name
+#---------SVC4590------------------------------
+# %1 - Property type name
# %2 - Property name
INVALID_PROPERTY_TYPE: {
code: 400,
message: "Error: Invalid Property type %1 in property %2.",
messageId: "SVC4590"
}
-#---------SVC4591------------------------------
+#---------SVC4591------------------------------
# %1 - Property inner type
-# %2 - Property name
+# %2 - Property name
INVALID_PROPERTY_INNER_TYPE: {
code: 400,
message: "Error: Invalid property inner type %1, in property %2",
messageId: "SVC4591"
}
-#---------SVC4592------------------------------
+#---------SVC4592------------------------------
# %1 - component instance name
# %2 - "resource instance"/"service instance"
COMPONENT_INSTANCE_NOT_FOUND: {
@@ -1238,11 +1238,11 @@ errors:
message: "Error: Requested '%1' %2 was not found.",
messageId: "SVC4592"
}
-#---------SVC4593------------------------------
+#---------SVC4593------------------------------
# %1 - component instance name
# %2 - "resource instance"/"service instance"
# %3 - "resource/"service"/"product"
-# %4 - container name
+# %4 - container name
COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER: {
code: 404,
message: "Error: Requested '%1' %2 was not found on the %3 '%4'.",
@@ -1259,20 +1259,20 @@ errors:
#---------SVC4595------------------------------
#%1 - requirement / capability
#%2 - requirement name
-#%3 - parent containing the requirement
+#%3 - parent containing the requirement
IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED: {
code: 400,
message: "Error: Imported TOSCA template contains %1 '%2' that is already defined by derived template %3.",
messageId: "SVC4595"
}
-#---------SVC4596------------------------------
+#---------SVC4596------------------------------
# %1 - Data type name
DATA_TYPE_DERIVED_IS_MISSING: {
code: 400,
message: "Error: Invalid Content. The ancestor data type %1 cannot be found in the system.",
messageId: "SVC4596"
}
-#---------SVC4597------------------------------
+#---------SVC4597------------------------------
# %1 - Data type name
# %2 - Property names
DATA_TYPE_PROPERTY_ALREADY_DEFINED_IN_ANCESTOR: {
@@ -1280,14 +1280,14 @@ errors:
message: "Error: Invalid Content. The data type %1 contains properties named %2 which are already defined in one of its ancestors.",
messageId: "SVC4597"
}
-#---------SVC4598------------------------------
+#---------SVC4598------------------------------
# %1 - Data type name
DATA_TYPE_DUPLICATE_PROPERTY: {
code: 400,
message: "Error: Invalid Content. The data type %1 contains duplicate property.",
messageId: "SVC4598"
}
-#---------SVC4599------------------------------
+#---------SVC4599------------------------------
# %1 - Data type name
# %2 - Property names
DATA_TYPE_PROEPRTY_CANNOT_HAVE_SAME_TYPE_OF_DATA_TYPE: {
@@ -1295,14 +1295,14 @@ errors:
message: "Error: Invalid Content. The data type %1 contains properties %2 which their type is this data type.",
messageId: "SVC4599"
}
-#---------SVC4600------------------------------
+#---------SVC4600------------------------------
# %1 - Data type name
DATA_TYPE_CANNOT_HAVE_PROPERTIES: {
code: 400,
message: "Error: Invalid Content. The data type %1 cannot have properties since it is of type scalar",
messageId: "SVC4600"
}
-#---------SVC4601------------------------------
+#---------SVC4601------------------------------
NOT_TOPOLOGY_TOSCA_TEMPLATE: {
code: 400,
message: "Error: TOSCA yaml file %1 cannot be modeled to VF as it does not contain 'topology_template.",
@@ -1317,7 +1317,7 @@ errors:
message: "Error: TOSCA yaml file '%1' contains node_template '%2' of type '%3' that does not represent existing VFC/CP/VL",
messageId: "SVC4602"
}
-#---------SVC4603------------------------------
+#---------SVC4603------------------------------
# %1 - component type
# %2 - component name
# %3 - state
@@ -1326,21 +1326,21 @@ errors:
message: "Error: Component instance of %1 can not be created because the component '%2' is in an illegal state %3.",
messageId: "SVC4603"
}
-#---------SVC4604------------------------------
+#---------SVC4604------------------------------
# %1 - csar file name
CSAR_INVALID: {
code: 400,
message: "Error: TOSCA CSAR '%1' is invalid. 'TOSCA-Metadata/Tosca.meta' file must be provided.",
messageId: "SVC4604"
}
-#---------SVC4605------------------------------
+#---------SVC4605------------------------------
# %1 - csar file name
CSAR_INVALID_FORMAT: {
code: 400,
message: "Error: TOSCA CSAR '%1' is invalid. Invalid 'TOSCA-Metadata/Tosca.meta' file format.",
messageId: "SVC4605"
}
-#---------SVC4606------------------------------
+#---------SVC4606------------------------------
# %1 - property name
# %2 - property type
# %3 - property innerType
@@ -1350,14 +1350,14 @@ errors:
message: "Error: Invalid default value of property %1. Data type is %2 with inner type %3 and default value found is %4.",
messageId: "SVC4606"
}
-#---------SVC4607------------------------------
+#---------SVC4607------------------------------
# %1 - csar file name
CSAR_NOT_FOUND: {
code: 400,
message: "Error: TOSCA CSAR '%1' is not found.",
messageId: "SVC4607"
}
-#---------SVC4608------------------------------
+#---------SVC4608------------------------------
# %1 - artifact name
# %2 - component type
# %3 - actual component type
@@ -1367,14 +1367,14 @@ errors:
messageId: "SVC4608"
}
-#---------SVC4609------------------------------
-# %1 - "INVALID_JSON"
+#---------SVC4609------------------------------
+# %1 - "INVALID_JSON"
INVALID_JSON: {
code: 400,
message: "Error: Uploaded JSON file for %1 artifact is invalid.",
messageId: "SVC4609"
}
-#---------SVC4610------------------------------
+#---------SVC4610------------------------------
# %1 - csar file name
# %2 - missing file name
YAML_NOT_FOUND_IN_CSAR: {
@@ -1382,21 +1382,21 @@ errors:
message: "Error - TOSCA CSAR %1 is invalid. TOSCA-Metadata/Tosca.meta refers to file %2 that is not provided.",
messageId: "SVC4610"
}
-#---------SVC4611------------------------------
+#---------SVC4611------------------------------
# %1 - group name
GROUP_MEMBER_EMPTY: {
code: 400,
message: "Error: Invalid Content. Group %1 member list was provided but does not have values",
messageId: "SVC4611"
}
-#---------SVC4612------------------------------
-# %1 - group name
+#---------SVC4612------------------------------
+# %1 - group name
GROUP_TYPE_ALREADY_EXIST: {
code: 409,
message: 'Error: Group type %1 already exists.',
messageId: "SVC4612"
}
-#---------SVC4613------------------------------
+#---------SVC4613------------------------------
# %1 - group name
# %2 - VF name(component name)
# %3 - actual component type [VF]
@@ -1404,15 +1404,15 @@ errors:
code: 409,
message: "Error: Group with name '%1' already exists in %2 %3.",
messageId: "SVC4613"
- }
-#---------SVC4614------------------------------
+ }
+#---------SVC4614------------------------------
# %1 - group type
GROUP_TYPE_IS_INVALID: {
code: 400,
message: "Error: Invalid content. Group type %1 does not exist",
messageId: "SVC4614"
}
-#---------SVC4615------------------------------
+#---------SVC4615------------------------------
# %1 - group name
GROUP_MISSING_GROUP_TYPE: {
code: 400,
@@ -1428,7 +1428,7 @@ errors:
code: 400,
message: "Error: Member '%1' listed in group '%2' is not part of '%3' %4.",
messageId: "SVC4616"
- }
+ }
#---------SVC4617------------------------------
# %1 - member name
# %2 - group name
@@ -1438,7 +1438,7 @@ errors:
message: "Error: member %1 listed in group %2 is not part of allowed members of group type %3.",
messageId: "SVC4617"
}
-#---------SVC4618------------------------------
+#---------SVC4618------------------------------
# %1 - missing file name
# %2 - csar file name
ARTIFACT_NOT_FOUND_IN_CSAR: {
@@ -1446,7 +1446,7 @@ errors:
message: "Error: artifact %1 is defined in CSAR %2 manifest but is not provided",
messageId: "SVC4618"
}
-#---------SVC4619------------------------------
+#---------SVC4619------------------------------
# %1 - artifact name
# %2 - artifact type
# %3 - existing artifact type
@@ -1455,23 +1455,23 @@ errors:
message: "Error: artifact %1 in type %2 already exists in type %3.",
messageId: "SVC4619"
}
-#---------SVC4620------------------------------
+#---------SVC4620------------------------------
FAILED_RETRIVE_ARTIFACTS_TYPES: {
code: 400,
message: "Error: Failed to retrieve list of suported artifact types.",
messageId: "SVC4620"
}
-#---------SVC4621------------------------------
+#---------SVC4621------------------------------
# %1 - artifact name
-# %2 - master
+# %2 - master
ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR: {
code: 400,
message: "Error: artifact %1 already exists in master %2 .",
messageId: "SVC4621"
}
-#---------SVC4622------------------------------
+#---------SVC4622------------------------------
# %1 - artifact name
-# %2 - artifact type
+# %2 - artifact type
# %3 - master name
# %4 - master type
ARTIFACT_NOT_VALID_IN_MASTER: {
@@ -1479,9 +1479,9 @@ errors:
message: "Error: artifact %1 in type %2 can not be exists under master %3 in type %4.",
messageId: "SVC4622"
}
-#---------SVC4623------------------------------
+#---------SVC4623------------------------------
# %1 - artifact name
-# %2 - artifact type
+# %2 - artifact type
# %3 - env name
# %4 - existing env
ARTIFACT_NOT_VALID_ENV: {
@@ -1489,7 +1489,7 @@ errors:
message: "Error: Artifact %1 in type %2 with env %3 already exists with another env %4",
messageId: "SVC4623"
}
-#---------SVC4624------------------------------
+#---------SVC4624------------------------------
# %1 - groups names
# %2 - VF name
# %3 - component type [VF ]
@@ -1498,14 +1498,14 @@ errors:
message: "Error: Invalid Content. The groups '%1' cannot be found under %2 %3.",
messageId: "SVC4624"
}
-#---------SVC4625------------------------------
+#---------SVC4625------------------------------
# %1 - groups name
GROUP_ARTIFACT_ALREADY_ASSOCIATED: {
code: 400,
message: "Error: Invalid Content. Artifact already associated to group '%1'.",
messageId: "SVC4625"
}
-#---------SVC4626------------------------------
+#---------SVC4626------------------------------
# %1 - groups name
GROUP_ARTIFACT_ALREADY_DISSOCIATED: {
code: 400,
@@ -1521,7 +1521,7 @@ errors:
message: "Error: property %1 listed in group %2 is not exist in group type %3.",
messageId: "SVC4627"
}
-#---------SVC4628------------------------------
+#---------SVC4628------------------------------
# %1 - csarUUID
# %2 - VF name
VSP_ALREADY_EXISTS: {
@@ -1529,14 +1529,14 @@ errors:
message: "Error: The VSP with UUID %1 was already imported for VF %2. Please select another or update the existing VF.",
messageId: "SVC4628"
}
-#---------SVC4629------------------------------
+#---------SVC4629------------------------------
# %1 - VF name
MISSING_CSAR_UUID: {
code: 400,
message: "Error: The Csar UUID or payload name is missing for VF %1.",
messageId: "SVC4629"
}
-#---------SVC4630------------------------------
+#---------SVC4630------------------------------
# %1 - VF name
# %2 - new csarUUID
# %3 - old csarUUID
@@ -1545,8 +1545,8 @@ errors:
message: "Error: Resource %1 cannot be updated using CsarUUID %2 since the resource is linked to a different VSP with csarUUID %3.",
messageId: "SVC4630"
}
-#---------SVC4631------------------------------
-# %1 - policy name
+#---------SVC4631------------------------------
+# %1 - policy name
POLICY_TYPE_ALREADY_EXIST: {
code: 409,
message: "Error: Policy type %1 already exists.",
@@ -1593,7 +1593,7 @@ errors:
code: 404,
message: "Error: Requested '%1' attribute was not found.",
messageId: "SVC4637"
- }
+ }
#-----------SVC4638---------------------------
#%1 - attribute name
ATTRIBUTE_ALREADY_EXIST: {
@@ -1661,7 +1661,7 @@ errors:
message: "Error: Invalid Content. VF Module name '%1' contains invalid characters",
messageId: "SVC4646"
}
-
+
#---------SVC4647------------------------------
# %1 - "modifiedName"
INVALID_VF_MODULE_NAME_MODIFICATION: {
@@ -1699,23 +1699,23 @@ errors:
message: "Error: Once resource is certified, derived_from can be changed only to a sibling",
messageId: "SVC4651"
}
-#---------SVC4652------------------------------
+#---------SVC4652------------------------------
# %1 - resource/service
COMPONENT_INVALID_SUBCATEGORY: {
code: 400,
message: "Error: Invalid Content. Invalid %1 sub category.",
messageId: "SVC4652"
}
-#---------SVC4653------------------------------
-# %1 - group instance uniqueId
+#---------SVC4653------------------------------
+# %1 - group instance uniqueId
# %2 - service uniqueId
GROUP_INSTANCE_NOT_FOUND_ON_COMPONENT_INSTANCE: {
code: 404,
message: "Error: Requested group instance %1 was not found on component %2.",
messageId: "SVC4653"
}
-#---------SVC4654------------------------------
-# %1 - group property name
+#---------SVC4654------------------------------
+# %1 - group property name
# %2 - valid min limit value
# %3 - valid max limit value
INVALID_GROUP_MIN_MAX_INSTANCES_PROPERTY_VALUE: {
@@ -1723,8 +1723,8 @@ errors:
message: "Error: Value of %1 must be not higher than %2, and not lower than %3.",
messageId: "SVC4654"
}
-#---------SVC4655------------------------------
-# %1 - group property name
+#---------SVC4655------------------------------
+# %1 - group property name
# %2 - valid min limit value
# %3 - valid max limit value
INVALID_GROUP_INITIAL_COUNT_PROPERTY_VALUE: {
@@ -1732,15 +1732,15 @@ errors:
message: "Error: Value of %1 must be between %2 and %3.",
messageId: "SVC4655"
}
-#---------SVC4656------------------------------
-# %1 - group property name
+#---------SVC4656------------------------------
+# %1 - group property name
# %2 - lower/higher
# %3 - valid max/min value
INVALID_GROUP_PROPERTY_VALUE_LOWER_HIGHER: {
code: 400,
message: "Error: Value of %1 must be %2 or equals to %3.",
messageId: "SVC4656"
- }
+ }
#---------SVC4657------------------------------
# %1 - certificationRequest / startTesting
RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID: {
@@ -1752,7 +1752,7 @@ errors:
# %1 – asset type [service / resource ]
# %2 – main asset uuid
# %3 – not found asset type [service / resource]
-# %4 – not found asset name
+# %4 – not found asset name
ASSET_NOT_FOUND_DURING_CSAR_CREATION: {
code: 400,
message: "Error: CSAR packaging failed for %1 %2. %3 %4 was not found",
@@ -1761,7 +1761,7 @@ errors:
#---------SVC4659------------------------------
# %1 – asset type [service / resource ]
# %2 – main asset uuid
-# %3 – Artifact name
+# %3 – Artifact name
# %4 – Artifact uuid
ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION: {
code: 400,
@@ -1777,18 +1777,78 @@ errors:
messageId: "SVC4660"
}
#---------SVC4661------------------------------
-# %1 - version
-# %2 - conformance level
+# %1 - assetType
+# %2 - matching generic node type name
TOSCA_SCHEMA_FILES_NOT_FOUND: {
code: 400,
message: "Error: CSAR packaging failed. TOSCA schema files for SDC-Version: %1 and Conformance-Level %2 were not found",
messageId: "SVC4661"
}
-#---------SVC4662------------------------------
+#---------SVC4662------------------------------
# %1 - file name
# %2 - parser error
TOSCA_PARSE_ERROR: {
code: 400,
message: "Error: Invalid TOSCA template in file %1. %2",
messageId: "SVC4662"
+ }
+#---------SVC4663------------------------------
+# %1 - max length
+ RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Resource vendor model number exceeds limit of %1 characters.",
+ messageId: "SVC4663"
+ }
+#---------SVC4664------------------------------
+ INVALID_RESOURCE_VENDOR_MODEL_NUMBER: {
+ code: 400,
+ message: 'Error: Invalid Content. Resource vendor model number is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4664"
+ }
+#---------SVC4665------------------------------
+# %1 - max length
+ SERVICE_TYPE_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Service type exceeds limit of %1 characters.",
+ messageId: "SVC4665"
+ }
+#---------SVC4666------------------------------
+ INVALID_SERVICE_TYPE: {
+ code: 400,
+ message: 'Error: Invalid Content. Serivce type is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4666"
+ }
+#---------SVC4667------------------------------
+# %1 - max length
+ SERVICE_ROLE_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Service role exceeds limit of %1 characters.",
+ messageId: "SVC4667"
+ }
+#---------SVC4668------------------------------
+ INVALID_SERVICE_ROLE: {
+ code: 400,
+ message: 'Error: Invalid Content. Service role is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4668"
+ }
+
+#---------SVC4669-----------------------------
+ INVALID_RESOURCE_TYPE: {
+ code: 400,
+ message: "Error: Invalid resource type.",
+ messageId: "SVC4669"
+ }
+#---------SVC4670------------------------------
+ ARTIFACT_NAME_INVALID: {
+ code: 400,
+ message: "Error: Artifact name is invalid.",
+ messageId: "SVC4670"
+ }
+#---------SVC4671------------------------------
+# %1 - VSP name
+# %2 - VFC name
+ CFVC_LOOP_DETECTED: {
+ code: 400,
+ message: 'Error: VSP %1 cannot be imported. The VSP contains internal loop in VFC %2',
+ messageId: "SVC4671"
} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml
index 63d70c699e..da15414d9d 100644
--- a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml
+++ b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml
@@ -1196,4 +1196,57 @@ org.openecomp.datatypes.Naming:
type: string
required: false
+# NFoD
+org.openecomp.datatypes.flavors.ComputeFlavor:
+ derived_from: tosca.datatypes.Root
+ properties:
+ num_cpus:
+ type: integer
+ disk_size:
+ type: scalar-unit.size
+ mem_size:
+ type: scalar-unit.size
+
+org.openecomp.datatypes.flavors.LicenseFlavor:
+ derived_from: tosca.datatypes.Root
+ properties:
+ feature_group_uuid:
+ type: string
+
+org.openecomp.datatypes.flavors.VendorInfo:
+ derived_from: tosca.datatypes.Root
+ properties:
+ manufacturer_reference_number:
+ type: string
+ vendor_model:
+ type: string
+
+org.openecomp.datatypes.flavors.DeploymentFlavor:
+ derived_from: tosca.datatypes.Root
+ properties:
+ sp_part_number:
+ type: string
+ vendor_info:
+ type: org.openecomp.datatypes.flavors.VendorInfo
+ compute_flavor:
+ type: org.openecomp.datatypes.flavors.ComputeFlavor
+ license_flavor:
+ type: org.openecomp.datatypes.flavors.LicenseFlavor
+ required: false
+
+
+org.openecomp.datatypes.ImageInfo:
+ derived_from: tosca.datatypes.Root
+ properties:
+ software_version:
+ type: string
+ file_name:
+ type: string
+ file_hash:
+ type: string
+ description: checksum/signature
+ file_hash_type:
+ type: string
+ required: false
+ default: md5
diff --git a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.zip b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.zip
index 9c5964df1d..08d4bfc3a5 100644
--- a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.zip
+++ b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types.zip b/catalog-be/src/main/resources/import/tosca/heat-types.zip
deleted file mode 100644
index ebb5afd09d..0000000000
--- a/catalog-be/src/main/resources/import/tosca/heat-types.zip
+++ /dev/null
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.json b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.json
new file mode 100644
index 0000000000..cfa11dc3c7
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.json
@@ -0,0 +1,21 @@
+{
+ "payloadName": "Generic_PNF.yml",
+ "contactId": "jh0003",
+ "name": "Generic_PNF",
+ "description": "Represents a generic PNF.",
+ "resourceIconPath": "defaulticon",
+ "resourceType": "ABSTRACT",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Abstract"
+ }
+ ]
+ }
+],
+ "tags": [
+ "Generic_PNF"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.yml b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.yml
new file mode 100644
index 0000000000..db3fc7cd3e
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.yml
@@ -0,0 +1,11 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.abstract.nodes.PNF:
+ derived_from: tosca.nodes.Root
+ properties:
+ nf_function:
+ type: string
+ nf_role:
+ type: string
+ nf_type:
+ type: string \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.zip b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.zip
new file mode 100644
index 0000000000..fc5d706514
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/Generic_PNF/Generic_PNF.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.yml b/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.yml
index e73cafe100..9160a9ba22 100644
--- a/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.yml
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.yml
@@ -37,16 +37,16 @@ node_types:
subnetpoolid:
type: string
requirements:
- virtualLink:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- virtualBinding:
- capability: tosca.capabilities.network.Bindable
- relationship: tosca.relationships.network.BindsTo
- external_virtualLink:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- node: org.openecomp.resource.vl.VL
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ - virtualBinding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ - external_virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ node: org.openecomp.resource.vl.VL
capabilities:
internal_connectionPoint:
type: tosca.capabilities.Node
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.zip b/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.zip
index a26c323819..5e18a2474a 100644
--- a/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.zip
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/extCp/extCp.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.json b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.json
new file mode 100644
index 0000000000..1d27562aae
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.json
@@ -0,0 +1,21 @@
+{
+ "payloadName": "multiFlavorVFC.yml",
+ "contactId": "jh0003",
+ "name": "multiFlavorVFC",
+ "description": "Represents a generic multi flavor VFC.",
+ "resourceIconPath": "defaulticon",
+ "resourceType": "VFC",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Abstract"
+ }
+ ]
+ }
+],
+ "tags": [
+ "multiFlavorVFC"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.yml b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.yml
new file mode 100644
index 0000000000..2df111d1c5
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.yml
@@ -0,0 +1,10 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.abstract.nodes.MultiFlavorVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ images:
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.ImageInfo
+ required: false
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.zip b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.zip
new file mode 100644
index 0000000000..d73488d0c0
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/multiFlavorVFC/multiFlavorVFC.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.json b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.json
new file mode 100644
index 0000000000..2a955ab955
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.json
@@ -0,0 +1,21 @@
+{
+ "payloadName": "vnfConfiguration.yml",
+ "contactId": "jh0003",
+ "name": "vnfConfiguration",
+ "description": "Configuration parameters for VNF",
+ "resourceIconPath": "vnfconfiguration",
+ "resourceType": "VFC",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Abstract"
+ }
+ ]
+ }
+],
+ "tags": [
+ "vnfConfiguration"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.yml b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.yml
new file mode 100644
index 0000000000..4ee624615a
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.yml
@@ -0,0 +1,10 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.abstract.nodes.VnfConfiguration:
+ derived_from: tosca.nodes.Root
+ properties:
+ allowed_flavors:
+ description: a collection of all flavor valuesets available for a given VFC
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.flavors.DeploymentFlavor
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.zip b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.zip
new file mode 100644
index 0000000000..03a7d535f2
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/vnfConfiguration/vnfConfiguration.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
index f65aefacf1..e7eaa8610b 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
@@ -37,7 +37,8 @@ def importHeatTypes(beHost, bePort, adminUser, fileDir, updateversion):
"eline",
"abstractSubstitute",
"Generic_VFC",
- "Generic_VF",
+ "Generic_VF",
+ "Generic_PNF",
"Generic_Service",
"contrailNetworkRules",
"contrailPort",
@@ -48,7 +49,9 @@ def importHeatTypes(beHost, bePort, adminUser, fileDir, updateversion):
"contrailCompute",
"contrailV2VirtualMachineInterface",
"subInterface",
- "contrailV2VLANSubInterface"
+ "contrailV2VLANSubInterface",
+ "multiFlavorVFC",
+ "vnfConfiguration"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
new file mode 100644
index 0000000000..1ef72856a4
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
@@ -0,0 +1,7 @@
+{
+ "heat": [
+ "Generic_PNF"
+ ],
+ "normative": [
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py
new file mode 100644
index 0000000000..75afe33eba
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py
@@ -0,0 +1,110 @@
+import pycurl
+import sys, getopt
+from StringIO import StringIO
+import json
+import copy
+from importCommon import *
+from importNormativeTypes import *
+import importCommon
+import json
+
+
+################################################################################################################################################
+# #
+# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file #
+# #
+# activation : #
+# python upgradeHeatAndNormativeTypes.py [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
+# #
+# shortest activation (be host = localhost, be port = 8080): #
+# python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ] #
+# #
+################################################################################################################################################
+def upgradeTypesPerConfigFile(beHost, bePort, adminUser, baseDir, updateversion):
+ responseCodes = [200, 201]
+ if (updateversion == 'false'):
+ responseCodes = [200, 201, 409]
+ with open("typesToUpgrade.json", 'r') as stream:
+ try:
+ types = json.load(stream)
+ heatTypes = types["heat"]
+ debug(heatTypes)
+ normativeTypes = types["normative"]
+ debug(normativeTypes)
+ heatFileDir = baseDir + "heat-types/"
+ debug(heatFileDir)
+ normativeFileDir = baseDir + "normative-types/"
+ debug(normativeFileDir)
+ results = []
+ for heatType in heatTypes:
+ result = createNormativeType(beHost, bePort, adminUser, heatFileDir, heatType.encode('ascii', 'ignore'), updateversion)
+ results.append(result)
+ if (result[1] == None or result[1] not in responseCodes):
+ print "Failed creating heat type " + heatType + ". " + str(result[1])
+ for normativeType in normativeTypes:
+ result = createNormativeType(beHost, bePort, adminUser, normativeFileDir, normativeType.encode('ascii', 'ignore'), updateversion)
+ results.append(result)
+ if (result[1] == None or result[1] not in responseCodes):
+ print "Failed creating normative type " + normativeType + ". " + str(result[1])
+ return results
+ except yaml.YAMLError as exc:
+ print(exc)
+
+
+
+def main(argv):
+ print 'Number of arguments:', len(sys.argv), 'arguments.'
+
+ beHost = 'localhost'
+ bePort = '8080'
+ adminUser = 'jh0003'
+ updateversion = 'true'
+
+ try:
+ opts, args = getopt.getopt(argv, "i:p:u:v:h:", ["ip=", "port=", "user=", "updateversion="])
+ except getopt.GetoptError:
+ usage()
+ errorAndExit(2, 'Invalid input')
+
+ for opt, arg in opts:
+ # print opt, arg
+ if opt == '-h':
+ usage()
+ sys.exit(3)
+ elif opt in ("-i", "--ip"):
+ beHost = arg
+ elif opt in ("-p", "--port"):
+ bePort = arg
+ elif opt in ("-u", "--user"):
+ adminUser = arg
+ elif opt in ("-v", "--updateversion"):
+ if (arg.lower() == "false" or arg.lower() == "no"):
+ updateversion = 'false'
+
+ print 'be host =', beHost, ', be port =', bePort, ', user =', adminUser
+
+ if (beHost == None):
+ usage()
+ sys.exit(3)
+
+ results = upgradeTypesPerConfigFile(beHost, bePort, adminUser, "../../../import/tosca/", updateversion)
+
+ print "-----------------------------"
+ for result in results:
+ print "{0:20} | {1:6}".format(result[0], result[1])
+ print "-----------------------------"
+
+ responseCodes = [200, 201]
+
+ if (updateversion == 'false'):
+ responseCodes = [200, 201, 409]
+
+ failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
+ if (len(failedNormatives) > 0):
+ errorAndExit(1, None)
+ else:
+ errorAndExit(0, None)
+
+
+if __name__ == "__main__":
+ main(sys.argv[1:]) \ No newline at end of file
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py
index 7c0746fb55..7315ec0635 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py
@@ -26,7 +26,8 @@ def upgradeHeatTypes1707(beHost, bePort, adminUser, fileDir, updateversion):
"extVl",
"extCp",
"Generic_VFC",
- "Generic_VF",
+ "Generic_VF",
+ "Generic_PNF",
"Generic_Service",
"globalPort",
"globalNetwork",
@@ -37,6 +38,8 @@ def upgradeHeatTypes1707(beHost, bePort, adminUser, fileDir, updateversion):
"contrailVirtualNetwork",
"neutronNet",
"neutronPort",
+ "multiFlavorVFC",
+ "vnfConfiguration"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py
index 488d4d739d..085467e09a 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py
@@ -5,23 +5,28 @@ import json
import copy
import time
from importCategoryTypes import importCategories
-from upgradeHeatTypes1707 import upgradeHeatTypes1707
+from upgradeHeatAndNormativeTypes import upgradeTypesPerConfigFile
from importDataTypes import importDataTypes
+from importPolicyTypes import importPolicyTypes
+from importGroupTypes import importGroupTypes
+from importNormativeCapabilities import importNormativeCapabilities
+from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
+
from importCommon import *
import importCommon
#################################################################################################################################################################################################
-# #
+# #
# Upgrades the normative types #
-# #
+# #
# activation : #
# python upgradeNormative.py [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] #
# #
-# #
+# #
# shortest activation (be host = localhost, be port = 8080, user = jh0003): # # #
# python upgradeNormative.py #
-# #
+# #
#################################################################################################################################################################################################
def usage():
@@ -32,7 +37,7 @@ def handleResults(results, updateversion):
for result in results:
printNameAndReturnCode(result[0], result[1])
printFrameLine()
-
+
failedResults = filter(lambda x: x[1] == None or x[1] not in [200, 201, 409], results)
if (len(failedResults) > 0):
errorAndExit(1, None)
@@ -40,23 +45,23 @@ def handleResults(results, updateversion):
def main(argv):
print 'Number of arguments:', len(sys.argv), 'arguments.'
- beHost = 'localhost'
+ beHost = 'localhost'
bePort = '8080'
adminUser = 'jh0003'
debugf = None
updateversion = 'true'
- importCommon.debugFlag = False
+ importCommon.debugFlag = False
try:
opts, args = getopt.getopt(argv,"i:p:u:d:h",["ip=","port=","user=","debug="])
except getopt.GetoptError:
usage()
errorAndExit(2, 'Invalid input')
-
+
for opt, arg in opts:
#print opt, arg
if opt == '-h':
- usage()
+ usage()
sys.exit(3)
elif opt in ("-i", "--ip"):
beHost = arg
@@ -73,13 +78,13 @@ def main(argv):
if (debugf != None):
print 'set debug mode to ' + str(debugf)
importCommon.debugFlag = debugf
-
+
if ( beHost == None ):
usage()
sys.exit(3)
print sys.argv[0]
- pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
+ pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
debug("path dir =" + pathdir)
baseFileLocation = pathdir + "/../../../import/tosca/"
@@ -90,15 +95,25 @@ def main(argv):
fileLocation = baseFileLocation + "data-types/"
importDataTypes(beHost, bePort, adminUser, False, fileLocation)
+ fileLocation = baseFileLocation + "policy-types/"
+ importPolicyTypes(beHost, bePort, adminUser, False, fileLocation)
+
+ fileLocation = baseFileLocation + "group-types/"
+ importGroupTypes(beHost, bePort, adminUser, False, fileLocation)
+
+ fileLocation = baseFileLocation + "capability-types/"
+ importNormativeCapabilities(beHost, bePort, adminUser, False, fileLocation)
+
+ fileLocation = baseFileLocation + "interface-lifecycle-types/"
+ importNormativeInterfaceLifecycleType(beHost, bePort, adminUser, False, fileLocation)
+
print 'sleep until data type cache is updated'
time.sleep( 70 )
- fileLocation = baseFileLocation + "heat-types/"
- resultsHeat = upgradeHeatTypes1707(beHost, bePort, adminUser, fileLocation, updateversion)
+ resultsHeat = upgradeTypesPerConfigFile(beHost, bePort, adminUser, baseFileLocation, updateversion)
handleResults(resultsHeat, 'false')
- errorAndExit(0, None)
+ errorAndExit(0, None)
if __name__ == "__main__":
main(sys.argv[1:])
-
diff --git a/catalog-be/src/main/webapp/WEB-INF/web.xml b/catalog-be/src/main/webapp/WEB-INF/web.xml
index 9b7a55a4dd..889b1fac60 100644
--- a/catalog-be/src/main/webapp/WEB-INF/web.xml
+++ b/catalog-be/src/main/webapp/WEB-INF/web.xml
@@ -77,7 +77,6 @@
<servlet-mapping>
<servlet-name>jerseyDistribution</servlet-name>
<url-pattern>/sdc/*</url-pattern>
- <url-pattern>/asdc/*</url-pattern>
</servlet-mapping>
<servlet>
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java
index 6af338ebcf..68d47590f0 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java
@@ -23,19 +23,30 @@ package org.openecomp.sdc.be.components;
import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Resource;
+
import org.junit.Test;
import org.openecomp.sdc.be.components.impl.HealthCheckBusinessLogic;
+import org.openecomp.sdc.be.dao.cassandra.schema.SdcSchemaUtils;
+import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.dao.utils.UserStatusEnum;
+import org.openecomp.sdc.be.resources.data.UserData;
import org.openecomp.sdc.common.api.HealthCheckInfo;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckComponent;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus;
+import com.datastax.driver.core.Cluster;
+
+import fj.data.Either;
+
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
public class HealthCheckBusinessLogicTest {
HealthCheckBusinessLogic healthCheckBusinessLogic = new HealthCheckBusinessLogic();
-
+
@Test
public void checkStausUpdated() {
@@ -51,18 +62,13 @@ public class HealthCheckBusinessLogicTest {
HealthCheckInfo checkInfoTitanUp = new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.UP, null, null);
HealthCheckInfo checkInfoTitanDown = new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.DOWN, null, null);
- HealthCheckInfo checkInfoEsUp = new HealthCheckInfo(HealthCheckComponent.ES, HealthCheckStatus.UP, null, null);
- HealthCheckInfo checkInfoEsDown = new HealthCheckInfo(HealthCheckComponent.ES, HealthCheckStatus.DOWN, null, null);
-
/*
* HealthCheckInfo checkInfoUebUp = new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.UP, null, null); HealthCheckInfo checkInfoUebDown = new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.DOWN, null, null);
*/
checkInfosLeft.add(checkInfoTitanUp);
- checkInfosLeft.add(checkInfoEsUp);
checkInfosRight.add(checkInfoTitanUp);
- checkInfosRight.add(checkInfoEsUp);
statusChanged = healthCheckBusinessLogic.anyStatusChanged(checkInfosLeft, checkInfosRight);
assertFalse("check false", statusChanged);
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
index 09f2570a35..a453df2563 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
@@ -130,7 +130,7 @@ public class ResourceImportManagerTest {
testSetDerivedFrom(resource);
testSetProperties(resource);
- Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true));
+ Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false));
}
@Test
@@ -157,9 +157,9 @@ public class ResourceImportManagerTest {
// Mockito.verify(log).error(Mockito.anyString(), Mockito.anyString(),
// Mockito.anyString());
- Mockito.verify(resourceBusinessLogic, Mockito.times(0)).createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.eq(user), Mockito.eq(true), Mockito.eq(false), Mockito.eq(true));
+ Mockito.verify(resourceBusinessLogic, Mockito.times(0)).createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.eq(user), Mockito.eq(true), Mockito.eq(false), Mockito.eq(true), Mockito.eq(null));
- Mockito.verify(resourceBusinessLogic, Mockito.times(0)).propagateStateToCertified(Mockito.eq(user), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true));
+ Mockito.verify(resourceBusinessLogic, Mockito.times(0)).propagateStateToCertified(Mockito.eq(user), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false));
}
@@ -181,8 +181,8 @@ public class ResourceImportManagerTest {
Resource resource = createResource.left().value().left;
testSetCapabilities(resource);
- Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true));
- Mockito.verify(resourceBusinessLogic, Mockito.times(1)).createOrUpdateResourceByImport(resource, user, true, false, true);
+ Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false));
+ Mockito.verify(resourceBusinessLogic, Mockito.times(1)).createOrUpdateResourceByImport(resource, user, true, false, true, null);
}
@@ -207,7 +207,7 @@ public class ResourceImportManagerTest {
private void setResourceBusinessLogicMock() {
when(resourceBusinessLogic.getUserAdmin()).thenReturn(userAdmin);
- when(resourceBusinessLogic.createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.anyBoolean()))
+ when(resourceBusinessLogic.createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.eq(null)))
.thenAnswer(new Answer<Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat>>() {
public Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
@@ -215,7 +215,7 @@ public class ResourceImportManagerTest {
}
});
- when(resourceBusinessLogic.propagateStateToCertified(Mockito.any(User.class), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true)))
+ when(resourceBusinessLogic.propagateStateToCertified(Mockito.any(User.class), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false)))
.thenAnswer(new Answer<Either<Resource, ResponseFormat>>() {
public Either<Resource, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
@@ -230,7 +230,7 @@ public class ResourceImportManagerTest {
}
});
- when(resourceBusinessLogic.validateResourceBeforeCreate(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.eq(false))).thenAnswer(new Answer<Either<Resource, ResponseFormat>>() {
+ when(resourceBusinessLogic.validateResourceBeforeCreate(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.eq(false), Mockito.eq(null))).thenAnswer(new Answer<Either<Resource, ResponseFormat>>() {
public Either<Resource, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
return Either.left((Resource) args[0]);
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java
index f6d2b6bf84..f3c7a7d24c 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java
@@ -49,9 +49,7 @@ import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
-import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
@@ -67,6 +65,7 @@ import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
+import org.openecomp.sdc.be.model.jsontitan.operations.NodeTemplateOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.TopologyTemplateOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
@@ -110,6 +109,7 @@ public class ResourceBusinessLogicTest {
public static final String RESOURCE_NAME = "My-Resource_Name with space";
private static final String GENERIC_VF_NAME = "org.openecomp.resource.abstract.nodes.VF";
private static final String GENERIC_VFC_NAME = "org.openecomp.resource.abstract.nodes.VFC";
+ private static final String GENERIC_PNF_NAME = "org.openecomp.resource.abstract.nodes.PNF";
final ServletContext servletContext = Mockito.mock(ServletContext.class);
IAuditingManager iAuditingManager = null;
@@ -118,6 +118,7 @@ public class ResourceBusinessLogicTest {
UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class);
ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class);
NodeTypeOperation nodeTypeOperation = Mockito.mock(NodeTypeOperation.class);
+ NodeTemplateOperation nodeTemplateOperation = Mockito.mock(NodeTemplateOperation.class);
TopologyTemplateOperation topologyTemplateOperation = Mockito.mock(TopologyTemplateOperation.class);
final LifecycleBusinessLogic lifecycleBl = Mockito.mock(LifecycleBusinessLogic.class);
final ICapabilityTypeOperation capabilityTypeOperation = Mockito.mock(ICapabilityTypeOperation.class);
@@ -135,8 +136,9 @@ public class ResourceBusinessLogicTest {
Resource resourceResponse = null;
Resource genericVF = null;
Resource genericVFC = null;
+ Resource genericPNF = null;
ComponentsUtils componentsUtils = new ComponentsUtils();
- ArtifactsBusinessLogic artifactManager = Mockito.mock(ArtifactsBusinessLogic.class);
+ ArtifactsBusinessLogic artifactManager = new ArtifactsBusinessLogic();
CsarOperation csarOperation = Mockito.mock(CsarOperation.class);
Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<String, DataTypeDefinition>();
@@ -187,6 +189,7 @@ public class ResourceBusinessLogicTest {
Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false);
when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.VFC, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount);
when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.VF, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount);
+ when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.PNF, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount);
Either<Boolean, StorageOperationStatus> validateDerivedExists = Either.left(true);
when(toscaOperationFacade.validateToscaResourceNameExists("Root")).thenReturn(validateDerivedExists);
@@ -195,14 +198,7 @@ public class ResourceBusinessLogicTest {
when(toscaOperationFacade.validateToscaResourceNameExists("kuku")).thenReturn(validateDerivedNotExists);
when(graphLockOperation.lockComponent(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Resource))).thenReturn(StorageOperationStatus.OK);
when(graphLockOperation.lockComponentByName(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Resource))).thenReturn(StorageOperationStatus.OK);
-
- ArtifactDefinition artifactDef = new ArtifactDefinition();
- artifactDef.setUniqueId("123.123");
- Either<ArtifactDefinition, StorageOperationStatus> returnEither = Either.left(artifactDef);
- when(artifactManager.createArtifactPlaceHolderInfo(Mockito.anyString(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class), Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
-
- when(artifactManager.addHeatEnvArtifact(Mockito.any(ArtifactDefinition.class), Mockito.any(ArtifactDefinition.class), Mockito.anyString(), Mockito.any(NodeTypeEnum.class), Mockito.anyString())).thenReturn(returnEither);
-
+
// createResource
resourceResponse = createResourceObject(true);
Either<Resource, StorageOperationStatus> eitherCreate = Either.left(resourceResponse);
@@ -213,6 +209,7 @@ public class ResourceBusinessLogicTest {
when(applicationDataTypeCache.getAll()).thenReturn(Either.left(emptyDataTypes));
// BL object
+ artifactManager.nodeTemplateOperation = nodeTemplateOperation;
bl = new ResourceBusinessLogic();
bl.setElementDao(mockElementDao);
bl.setUserAdmin(mockUserAdmin);
@@ -281,6 +278,7 @@ public class ResourceBusinessLogicTest {
resource.setDerivedFrom(template);
resource.setVendorName("Motorola");
resource.setVendorRelease("1.0.0");
+ resource.setResourceVendorModelNumber("");
resource.setContactId("ya5467");
resource.setIcon("MyIcon");
resource.setCsarUUID("valid_vf.csar");
@@ -364,6 +362,7 @@ public class ResourceBusinessLogicTest {
testVendorNameWrongFormatCreate();
testVendorReleaseWrongFormat();
testVendorReleaseExceedsLimitCreate();
+ testResourceVendorModelNumberExceedsLimit();
testResourceVendorNameMissing();
testResourceVendorReleaseMissing();
testResourceCategoryExist();
@@ -667,13 +666,23 @@ public class ResourceBusinessLogicTest {
private void testVendorNameExceedsLimit() {
Resource resourceExccedsVendorNameLimit = createResourceObject(false);
- String tooLongVendorName = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E";
+ String tooLongVendorName = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E";
resourceExccedsVendorNameLimit.setVendorName(tooLongVendorName);
Either<Resource, ResponseFormat> createResponse = bl.createResource(resourceExccedsVendorNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null);
assertTrue(createResponse.isRight());
assertResponse(createResponse, ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH);
}
+
+ private void testResourceVendorModelNumberExceedsLimit() {
+ Resource resourceExccedsVendorModelNumberLimit = createResourceObject(false);
+ String tooLongVendorModelNumber = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E";
+ resourceExccedsVendorModelNumberLimit.setResourceVendorModelNumber(tooLongVendorModelNumber);
+
+ Either<Resource, ResponseFormat> createResponse = bl.createResource(resourceExccedsVendorModelNumberLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null);
+ assertTrue(createResponse.isRight());
+ assertResponse(createResponse, ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT, "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
+ }
private void testVendorNameWrongFormatCreate() {
Resource resource = createResourceObject(false);
@@ -1319,7 +1328,7 @@ public class ResourceBusinessLogicTest {
Resource resourceToUpdtae = createResourceObject(false);
- Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false);
+ Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null);
assertTrue(createOrUpdateResource.isLeft());
Mockito.verify(toscaOperationFacade, Mockito.times(1)).overrideComponent(Mockito.any(Resource.class), Mockito.any(Resource.class));
@@ -1347,7 +1356,7 @@ public class ResourceBusinessLogicTest {
Resource resourceToUpdtae = createResourceObject(false);
- Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false);
+ Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null);
assertTrue(createOrUpdateResource.isLeft());
Mockito.verify(toscaOperationFacade, Mockito.times(1)).overrideComponent(Mockito.any(Component.class), Mockito.any(Component.class));
@@ -1365,7 +1374,7 @@ public class ResourceBusinessLogicTest {
Either<Component, StorageOperationStatus> getLatestToscaNameResult = Either.right(StorageOperationStatus.NOT_FOUND);
when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdtae.getToscaResourceName())).thenReturn(getLatestToscaNameResult);
- Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false);
+ Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null);
assertTrue(createOrUpdateResource.isLeft());
Mockito.verify(toscaOperationFacade, Mockito.times(0)).overrideComponent(Mockito.any(Component.class), Mockito.any(Component.class));
@@ -1641,7 +1650,7 @@ public class ResourceBusinessLogicTest {
@Test
- public void testGeneratedInputs() {
+ public void testVFGeneratedInputs() {
Resource resource = createVF();
List<InputDefinition> inputs = resource.getInputs();
@@ -1654,7 +1663,7 @@ public class ResourceBusinessLogicTest {
}
@Test
- public void testUpdateGenericInputsToLatestOnCheckout() {
+ public void testVFUpdateGenericInputsToLatestOnCheckout() {
//create a VF that is derived from generic version 1.0
Resource resource = createVF();
@@ -1680,7 +1689,7 @@ public class ResourceBusinessLogicTest {
@Test
- public void testUpdateGenericInputsToLatestOnCheckoutNotPerformed() {
+ public void testVFUpdateGenericInputsToLatestOnCheckoutNotPerformed() {
//create a VF that is derived from generic version 1.0
Resource resource = createVF();
@@ -1713,6 +1722,21 @@ public class ResourceBusinessLogicTest {
assertTrue(resource.getInputs().stream().filter(p -> null == p.getOwnerId()).findAny().get().getType().equals("integer"));
}
+ @Test
+ public void testPNFGeneratedInputsNoGeneratedInformationalArtifacts() {
+
+ Resource resource = createPNF();
+ List<InputDefinition> inputs = resource.getInputs();
+ assertTrue(8 == inputs.size());
+ for(InputDefinition input : inputs){
+ assertNotNull(input.getOwnerId());
+ }
+ assertTrue(resource.getDerivedFromGenericType().equals(genericPNF.getToscaResourceName()));
+ assertTrue(resource.getDerivedFromGenericVersion().equals(genericPNF.getVersion()));
+ assertTrue(0 == resource.getArtifacts().size());
+ }
+
+
private Resource createVF() {
genericVF = setupGenericTypeMock(GENERIC_VF_NAME);
@@ -1726,6 +1750,19 @@ public class ResourceBusinessLogicTest {
return createResponse.left().value();
}
+ private Resource createPNF() {
+
+ genericPNF = setupGenericTypeMock(GENERIC_PNF_NAME);
+ when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_PNF_NAME)).thenReturn(Either.left(genericPNF));
+ Resource resource = createResourceObject(true);
+ resource.setDerivedFrom(null);
+ resource.setResourceType(ResourceTypeEnum.PNF);
+ when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource));
+ Either<Resource, ResponseFormat> createResponse = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null);
+ assertTrue(createResponse.isLeft());
+ return createResponse.left().value();
+ }
+
private Resource setupGenericTypeMock(String toscaName) {
@@ -1746,4 +1783,6 @@ public class ResourceBusinessLogicTest {
return genericType;
}
+
+
}
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java
index 69b08bd1c1..1488f13015 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java
@@ -50,6 +50,7 @@ import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter;
@@ -168,7 +169,8 @@ public class LifecycleTestBase {
resource.setVendorRelease("1.0.0");
resource.setContactId("yavivi");
resource.setIcon("MyIcon.jpg");
-
+ resource.setToscaType(ToscaElementTypeEnum.NodeType.getValue());
+
return resource;
}
@@ -191,6 +193,7 @@ public class LifecycleTestBase {
resource.setVendorRelease("1.0.0");
resource.setContactId("yavivi");
resource.setIcon("MyIcon.jpg");
+ resource.setToscaType(ToscaElementTypeEnum.NodeType.getValue());
return resource;
}
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java
index d41e95da9d..2b33fbd704 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java
@@ -20,6 +20,17 @@
package org.openecomp.sdc.be.servlets;
+import fj.data.Either;
+import org.apache.commons.codec.binary.Base64;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.be.model.UploadResourceInfo;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.common.datastructure.Wrapper;
+import org.openecomp.sdc.exception.ResponseFormat;
+import org.slf4j.Logger;
+
+import javax.ws.rs.core.Response;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -27,19 +38,20 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
-import org.apache.commons.codec.binary.Base64;
-import org.junit.Assert;
-import org.junit.Test;
-import org.openecomp.sdc.be.model.UploadResourceInfo;
-import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
-import org.openecomp.sdc.exception.ResponseFormat;
-
-import fj.data.Either;
+import java.util.stream.Stream;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
public class AbstractValidationsServletTest {
- private static AbstractValidationsServlet servlet = mock(AbstractValidationsServlet.class);
+ private static AbstractValidationsServlet servlet = new AbstractValidationsServlet() {};
+
+ private static final String BASIC_TOSCA_TEMPLATE = "tosca_definitions_version: tosca_simple_yaml_%s";
+
+ @Before
+ public void setUp() throws Exception {
+ servlet.initLog(mock(Logger.class));
+ }
@SuppressWarnings("unchecked")
@Test
@@ -65,8 +77,23 @@ public class AbstractValidationsServletTest {
} catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
- Assert.assertTrue(returnValue.isLeft());
+ assertTrue(returnValue.isLeft());
Map<String, byte[]> csar = returnValue.left().value();
- Assert.assertTrue(csar != null);
+ assertTrue(csar != null);
+ }
+
+ @Test
+ public void testValidToscaVersion() throws Exception {
+ Stream.of("1_0", "1_0_0", "1_1", "1_1_0").forEach(this::testValidToscaVersion);
}
+
+
+ private void testValidToscaVersion(String version) {
+ Wrapper<Response> responseWrapper = new Wrapper<>();
+ servlet.validatePayloadIsTosca(responseWrapper, new UploadResourceInfo(), new User(), String.format(BASIC_TOSCA_TEMPLATE, version));
+ assertTrue(responseWrapper.isEmpty());
+ }
+
+
+
}
diff --git a/catalog-be/src/test/resources/config/catalog-be/configuration.yaml b/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
index cd5c58957d..8be1322c2c 100644
--- a/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
+++ b/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
@@ -5,8 +5,6 @@ identificationHeaderFields:
- HTTP_IV_REMOTE_ADDRESS
- HTTP_CSP_WSTYPE
-
-
# catalog backend hostname
beFqdn: sdccatalog.att.com
@@ -24,33 +22,71 @@ beSslPort: 8443
version: 1.0
released: 2012-11-30
-toscaConformanceLevel: 3.0
+toscaConformanceLevel: 4.0
+minToscaConformanceLevel: 3.0
titanCfgFile: /home/vagrant/catalog-be/config/catalog-be/titan.properties
titanInMemoryGraph: true
titanLockTimeout: 600
+
+# The interval to try and reconnect to titan DB when it is down during ASDC startup:
titanReconnectIntervalInSeconds: 3
+
+# The read timeout towards Titan DB when health check is invoked:
titanHealthCheckReadTimeout: 1
+
+# The interval to try and reconnect to Elasticsearch when it is down during ASDC startup:
esReconnectIntervalInSeconds: 3
uebHealthCheckReconnectIntervalInSeconds: 15
uebHealthCheckReadTimeout: 4
+
# Protocols
protocols:
- http
- https
+# Default imports
+defaultImports:
+ - nodes:
+ file: nodes.yml
+ - datatypes:
+ file: data.yml
+ - capabilities:
+ file: capabilities.yml
+ - relationships:
+ file: relationships.yml
+ - groups:
+ file: groups.yml
+ - policies:
+ file: policies.yml
+
# Users
users:
tom: passwd
bob: passwd
-
+
neo4j:
host: neo4jhost
port: 7474
user: neo4j
password: "12345"
-
+
+cassandraConfig:
+ cassandraHosts: ['localhost']
+ localDataCenter:
+ reconnectTimeout : 30000
+ authenticate: false
+ username: koko
+ password: bobo
+ ssl: false
+ truststorePath : /path/path
+ truststorePassword : 123123
+ keySpaces:
+ - { name: sdcaudit, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
+ - { name: sdcartifact, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
+ - { name: sdccomponent, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
+ - { name: sdcrepository, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
#Application-specific settings of ES
elasticSearch:
@@ -68,7 +104,7 @@ elasticSearch:
# Legal values for creationPeriod - year, month, day, hour, minute, none (meaning no time-based behaviour).
#
# If no creationPeriod is configured for indexPrefix, default behavour is creationPeriod: month.
-
+
indicesTimeFrequency:
- indexPrefix: auditingevents
creationPeriod: month
@@ -110,7 +146,8 @@ resourceTypes: &allResourceTypes
- VL
- VF
- VFCMT
-
+ - Abstract
+
# validForResourceTypes usage
# validForResourceTypes:
# - VF
@@ -128,14 +165,19 @@ deploymentResourceArtifacts:
# displayName: "Network HEAT Template"
# type: HEAT_NET
# validForResourceTypes: *allResourceTypes
-
+
deploymentResourceInstanceArtifacts:
heatEnv:
displayName: "HEAT ENV"
type: HEAT_ENV
description: "Auto-generated HEAT Environment deployment artifact"
fileExtension: "env"
-
+ VfHeatEnv:
+ displayName: "VF HEAT ENV"
+ type: HEAT_ENV
+ description: "VF Auto-generated HEAT Environment deployment artifact"
+ fileExtension: "env"
+
#tosca artifacts placeholders
toscaArtifacts:
assetToscaTemplate:
@@ -149,9 +191,12 @@ toscaArtifacts:
type: TOSCA_CSAR
description: TOSCA definition package of the asset
+
#Informational artifacts placeHolder
excludeResourceCategory:
- Generic
+excludeResourceType:
+ - PNF
informationalResourceArtifacts:
features:
displayName: Features
@@ -174,7 +219,7 @@ informationalResourceArtifacts:
resourceSecurityTemplate:
displayName: Resource Security Template
type: OTHER
-
+
excludeServiceCategory:
informationalServiceArtifacts:
@@ -217,7 +262,7 @@ informationalServiceArtifacts:
serviceSecurityTemplate:
displayName: Service Security Template
type: OTHER
-
+
serviceApiArtifacts:
configuration:
displayName: Configuration
@@ -238,7 +283,6 @@ serviceApiArtifacts:
displayName: Testing
type: OTHER
-
additionalInformationMaxNumberOfKeys: 50
systemMonitoring:
@@ -252,6 +296,9 @@ serviceDeploymentArtifacts:
YANG_XML:
acceptedTypes:
- xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
VNF_CATALOG:
acceptedTypes:
- xml
@@ -261,6 +308,7 @@ serviceDeploymentArtifacts:
MODEL_QUERY_SPEC:
acceptedTypes:
- xml
+#AAI Artifacts
AAI_SERVICE_MODEL:
acceptedTypes:
- xml
@@ -284,19 +332,19 @@ resourceDeploymentArtifacts:
- yaml
- yml
validForResourceTypes: *allResourceTypes
- HEAT_NESTED:
+ HEAT_NET:
acceptedTypes:
- yaml
- yml
validForResourceTypes: *allResourceTypes
- HEAT_ARTIFACT:
- acceptedTypes:
- validForResourceTypes: *allResourceTypes
- HEAT_NET:
+ HEAT_NESTED:
acceptedTypes:
- yaml
- yml
validForResourceTypes: *allResourceTypes
+ HEAT_ARTIFACT:
+ acceptedTypes:
+ validForResourceTypes: *allResourceTypes
YANG_XML:
acceptedTypes:
- xml
@@ -321,10 +369,55 @@ resourceDeploymentArtifacts:
acceptedTypes:
- xml
validForResourceTypes: *allResourceTypes
+ LIFECYCLE_OPERATIONS:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes:
+ - VF
+ - VFC
+ VES_EVENTS:
+ acceptedTypes:
+ - yaml
+ - yml
+ validForResourceTypes: *allResourceTypes
+ PERFORMANCE_COUNTER:
+ acceptedTypes:
+ - csv
+ validForResourceTypes: *allResourceTypes
APPC_CONFIG:
acceptedTypes:
validForResourceTypes:
- VF
+ DCAE_TOSCA:
+ acceptedTypes:
+ - yml
+ - yaml
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_JSON:
+ acceptedTypes:
+ - json
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_POLICY:
+ acceptedTypes:
+ - emf
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_DOC:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ - VFCMT
+ DCAE_EVENT:
+ acceptedTypes:
+ validForResourceTypes:
+ - VF
+ - VFCMT
AAI_VF_MODEL:
acceptedTypes:
- xml
@@ -344,7 +437,7 @@ resourceDeploymentArtifacts:
SNMP_TRAP:
acceptedTypes:
validForResourceTypes: *allResourceTypes
-
+
resourceInstanceDeploymentArtifacts:
HEAT_ENV:
acceptedTypes:
@@ -352,6 +445,29 @@ resourceInstanceDeploymentArtifacts:
VF_MODULES_METADATA:
acceptedTypes:
- json
+ VES_EVENTS:
+ acceptedTypes:
+ - yaml
+ - yml
+ PERFORMANCE_COUNTER:
+ acceptedTypes:
+ - csv
+ DCAE_INVENTORY_TOSCA:
+ acceptedTypes:
+ - yml
+ - yaml
+ DCAE_INVENTORY_JSON:
+ acceptedTypes:
+ - json
+ DCAE_INVENTORY_POLICY:
+ acceptedTypes:
+ - emf
+ DCAE_INVENTORY_DOC:
+ acceptedTypes:
+ DCAE_INVENTORY_BLUEPRINT:
+ acceptedTypes:
+ DCAE_INVENTORY_EVENT:
+ acceptedTypes:
SNMP_POLL:
acceptedTypes:
validForResourceTypes: *allResourceTypes
@@ -389,7 +505,14 @@ resourceInformationalArtifacts:
validForResourceTypes: *allResourceTypes
OTHER:
acceptedTypes:
- validForResourceTypes: *allResourceTypes
+ validForResourceTypes:
+ - VFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - PNF
SNMP_POLL:
acceptedTypes:
validForResourceTypes: *allResourceTypes
@@ -404,13 +527,10 @@ resourceInformationalArtifacts:
resourceInformationalDeployedArtifacts:
-
requirementsToFulfillBeforeCert:
- CP:
- - tosca.capabilities.network.Bindable
capabilitiesToConsumeBeforeCert:
-
+
unLoggedUrls:
- /sdc2/rest/healthCheck
@@ -422,23 +542,20 @@ cleanComponentsConfiguration:
artifactsIndex: resources
-cassandraConfig:
- cassandraHosts: ['localhost']
- localDataCenter:
- reconnectTimeout : 30000
- authenticate: false
- username: koko
- password: bobo
- ssl: false
- truststorePath : /path/path
- truststorePassword : 123123
- keySpaces:
- - { name: sdcaudit, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
- - { name: sdcartifact, replicationStrategy: SimpleStrategy, replicationInfo: ['1']}
-
+heatEnvArtifactHeader: ""
+heatEnvArtifactFooter: ""
+
+onboarding:
+ protocol: http
+ host: localhost
+ port: 8080
+ downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
+
+
switchoverDetector:
- gBeFqdn: AIO-BE.ecomp.idns.com
- gFeFqdn: AIO-FE.ecomp.idns.com
+ gBeFqdn: AIO-BE.ecomp.idns.cip.com
+ gFeFqdn: AIO-FE.ecomp.idns.cip.com
beVip: 0.0.0.0
feVip: 0.0.0.0
beResolveAttempts: 3
@@ -454,25 +571,15 @@ switchoverDetector:
changePriorityBody: '{"name":"AIO-BE.ecomp.idns.com","uri":"/crt/CipDomain.ECOMP-ASDC-DEVST/config/sites/AIO-BE.ecomp.idns.com","no_ad_redirection":false,"v4groups":{"failover_groups":["/crt/CipDomain.ECOMP-ASDC-DEVST/config/groups/group_mg_be","/crt/CipDomain.ECOMP-ASDC-DEVST/config/groups/group_bs_be"],"failover_policy":["FAILALL"]},"comment":"AIO BE G-fqdn","intended_app_proto":"DNS"}'}
feSet: { changePriorityUrl: "http://xxx.com/crt/CipDomain.ECOMP-ASDC-DEVST/config/sites/AIO-FE.ecomp.idns.com?user=root",
changePriorityBody: '{"comment":"AIO G-fqdn","name":"AIO-FE.ecomp.idns.com","v4groups":{"failover_groups":["/crt/CipDomain.ECOMP-ASDC-DEVST/config/groups/group_mg_fe","/crt/CipDomain.ECOMP-ASDC-DEVST/config/groups/group_bs_fe"],"failover_policy":["FAILALL"]},"no_ad_redirection":false,"intended_app_proto":"DNS","uri":"/crt/CipDomain.ECOMP-ASDC-DEVST/config/sites/AIO-FE.ecomp.idns.com"}'}
-
-
-heatEnvArtifactHeader: ""
-heatEnvArtifactFooter: ""
-
-onboarding:
- protocol: http
- host: localhost
- port: 8080
- downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
applicationL1Cache:
datatypes:
- enabled: true
+ enabled: false
firstRunDelay: 10
pollIntervalInSec: 60
applicationL2Cache:
- enabled: false
+ enabled: true
catalogL1Cache:
enabled: true
resourcesSizeInCache: 300
@@ -482,8 +589,28 @@ applicationL2Cache:
syncIntervalInSecondes: 60
waitOnShutDownInMinutes: 30
numberOfCacheWorkers: 4
+
+toscaValidators:
+ stringMaxLength: 2500
+
+disableAudit: false
+
+vfModuleProperties:
+ min_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ max_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule:
+ initial_count:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ vf_module_type:
+ forBaseModule: Base
+ forNonBaseModule: Expansion
+
genericAssetNodeTypes:
VFC: org.openecomp.resource.abstract.nodes.VFC
VF : org.openecomp.resource.abstract.nodes.VF
+ PNF: org.openecomp.resource.abstract.nodes.PNF
Service: org.openecomp.resource.abstract.nodes.service
-
diff --git a/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml b/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
index e131929aa7..591a961150 100644
--- a/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
+++ b/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
@@ -12,103 +12,103 @@ errors:
code: 204,
message: "No Content"
}
-#--------POL4050-----------------------------
+#--------POL4050-----------------------------
NOT_ALLOWED: {
code: 405,
message: "Error: Method not allowed.",
messageId: "POL4050"
}
-#--------POL5000-----------------------------
+#--------POL5000-----------------------------
GENERAL_ERROR: {
code: 500,
message: "Error: Internal Server Error. Please try again later.",
messageId: "POL5000"
}
-#---------POL5001------------------------------
+#---------POL5001------------------------------
MISSING_X_ECOMP_INSTANCE_ID: {
code: 400 ,
message: "Error: Missing 'X-ECOMP-InstanceID' HTTP header.",
messageId: "POL5001"
}
-#---------POL5002------------------------------
+#---------POL5002------------------------------
AUTH_REQUIRED: {
code: 401 ,
message: "Error: Authentication is required to use the API.",
messageId: "POL5002"
}
-#---------POL5003------------------------------
+#---------POL5003------------------------------
AUTH_FAILED: {
code: 403 ,
message: "Error: Not authorized to use the API.",
messageId: "POL5003"
}
-#---------POL5004------------------------------
+#---------POL5004------------------------------
MISSING_USER_ID: {
code: 400 ,
message: "Error: Missing 'USER_ID' HTTP header.",
messageId: "POL5004"
}
-#---------SVC4000-----------------------------
+#---------SVC4000-----------------------------
INVALID_CONTENT: {
code: 400,
message: "Error: Invalid content.",
messageId: "SVC4000"
}
-#---------SVC4002-----------------------------
+#---------SVC4002-----------------------------
MISSING_INFORMATION: {
code: 403,
message: "Error: Missing information.",
messageId: "SVC4002"
}
-#---------SVC4003------------------------------
-# %1 - Users's ID
+#---------SVC4003------------------------------
+# %1 - Users's ID
USER_NOT_FOUND: {
code: 404,
message: "Error: User '%1' was not found.",
messageId: "SVC4003"
}
-#---------SVC4004-----------------------------
-# %1 - Users's email address
+#---------SVC4004-----------------------------
+# %1 - Users's email address
INVALID_EMAIL_ADDRESS: {
code: 400,
message: "Error: Invalid email address '%1'.",
messageId: "SVC4004"
}
-#---------SVC4005------------------------------
+#---------SVC4005------------------------------
# %1 - role
INVALID_ROLE: {
code: 400,
message: "Error: Invalid role '%1'.",
messageId: "SVC4005"
}
-#---------SVC4006------------------------------
-# %1 - Users's USER_ID
+#---------SVC4006------------------------------
+# %1 - Users's USER_ID
USER_ALREADY_EXIST: {
code: 409,
message: "Error: User with '%1' ID already exists.",
messageId: "SVC4006"
}
-#---------SVC4007------------------------------
+#---------SVC4007------------------------------
DELETE_USER_ADMIN_CONFLICT: {
code: 409,
message: "Error: An administrator can only be deleted by another administrator.",
messageId: "SVC4007"
}
-#---------SVC4008-----------------------------
-# %1 - Users's userId
+#---------SVC4008-----------------------------
+# %1 - Users's userId
INVALID_USER_ID: {
code: 400,
message: "Error: Invalid userId '%1'.",
messageId: "SVC4008"
}
-#---------SVC4049------------------------------
+#---------SVC4049------------------------------
# %1 - service/resource
COMPONENT_MISSING_CONTACT: {
code: 400,
message: "Error: Invalid Content. Missing %1 contact.",
messageId: "SVC4049"
- }
-#---------SVC4050-----------------------------
+ }
+#---------SVC4050-----------------------------
# %1 - Service/Resource/Additional parameter
# %2 - service/resource/label name
COMPONENT_NAME_ALREADY_EXIST: {
@@ -116,90 +116,90 @@ errors:
message: "Error: %1 with name '%2' already exists.",
messageId: "SVC4050"
}
-#---------SVC4051------------------------------
-# %1 - resource/service
+#---------SVC4051------------------------------
+# %1 - resource/service
COMPONENT_MISSING_CATEGORY: {
code: 400,
message: "Error: Invalid Content. Missing %1 category.",
messageId: "SVC4051"
}
-#---------SVC4052------------------------------
+#---------SVC4052------------------------------
COMPONENT_MISSING_TAGS: {
code: 400,
message: "Error: Invalid Content. At least one tag has to be specified.",
messageId: "SVC4052"
}
-#---------SVC4053------------------------------
+#---------SVC4053------------------------------
# %1 - service/resource
COMPONENT_MISSING_DESCRIPTION: {
code: 400,
message: "Error: Invalid Content. Missing %1 description.",
messageId: "SVC4053"
}
-#---------SVC4054------------------------------
+#---------SVC4054------------------------------
# %1 - resource/service
COMPONENT_INVALID_CATEGORY: {
code: 400,
message: "Error: Invalid Content. Invalid %1 category.",
messageId: "SVC4054"
}
-#---------SVC4055------------------------------
+#---------SVC4055------------------------------
MISSING_VENDOR_NAME: {
code: 400,
message: "Error: Invalid Content. Missing vendor name.",
messageId: "SVC4055"
}
-#---------SVC4056------------------------------
+#---------SVC4056------------------------------
MISSING_VENDOR_RELEASE: {
code: 400,
message: "Error: Invalid Content. Missing vendor release.",
messageId: "SVC4056"
}
-#---------SVC4057------------------------------
+#---------SVC4057------------------------------
MISSING_DERIVED_FROM_TEMPLATE: {
code: 400,
message: "Error: Invalid Content. Missing derived from template specification.",
messageId: "SVC4057"
}
-#---------SVC4058------------------------------
+#---------SVC4058------------------------------
# %1 - service/resource
COMPONENT_MISSING_ICON: {
code: 400,
message: "Error: Invalid Content. Missing %1 icon.",
messageId: "SVC4058"
}
-#---------SVC4059------------------------------
+#---------SVC4059------------------------------
# %1 - service/resource
COMPONENT_INVALID_ICON: {
code: 400,
message: "Error: Invalid Content. Invalid %1 icon.",
messageId: "SVC4059"
}
-#---------SVC4060------------------------------
+#---------SVC4060------------------------------
PARENT_RESOURCE_NOT_FOUND: {
code: 400,
message: "Error: Invalid Content. Derived from resource template was not found.",
messageId: "SVC4060"
}
-#---------SVC4061------------------------------
+#---------SVC4061------------------------------
MULTIPLE_PARENT_RESOURCE_FOUND: {
code: 400,
message: "Error: Invalid Content. Multiple derived from resource template is not allowed.",
messageId: "SVC4061"
}
-#---------SVC4062------------------------------
+#---------SVC4062------------------------------
# %1 - service/resource
MISSING_COMPONENT_NAME: {
code: 400,
message: "Error: Invalid Content. Missing %1 name.",
messageId: "SVC4062"
}
-#---------SVC4063------------------------------
+#---------SVC4063------------------------------
#%1  -  resource/service name
RESOURCE_NOT_FOUND: {
code: 404,
@@ -207,51 +207,51 @@ errors:
messageId: "SVC4063"
}
-#---------SVC4064------------------------------
+#---------SVC4064------------------------------
# %1 - Service/Resource/Property
COMPONENT_INVALID_DESCRIPTION: {
code: 400,
message: "Error: Invalid Content. %1 description contains non-english characters.",
messageId: "SVC4064"
}
-#---------SVC4065------------------------------
+#---------SVC4065------------------------------
# %1 - Service/Resource/Property
-# %2 - max resource/service name length
+# %2 - max resource/service name length
COMPONENT_DESCRIPTION_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 description exceeds limit of %2 characters.",
messageId: "SVC4065"
}
-#---------SVC4066------------------------------
-# %1 - max length
+#---------SVC4066------------------------------
+# %1 - max length
COMPONENT_TAGS_EXCEED_LIMIT: {
code: 400,
message: "Error: Invalid Content. Tags overall length exceeds limit of %1 characters.",
messageId: "SVC4066"
}
#---------SVC4067------------------------------
-# %1 - max length
+# %1 - max length
VENDOR_NAME_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Vendor name exceeds limit of %1 characters.",
messageId: "SVC4067"
}
#---------SVC4068------------------------------
-# %1 - max length
+# %1 - max length
VENDOR_RELEASE_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Vendor release exceeds limit of %1 characters.",
messageId: "SVC4068"
}
-#---------SVC4069------------------------------
+#---------SVC4069------------------------------
# %1 - Service/Resource/Product
COMPONENT_INVALID_CONTACT: {
code: 400,
- message: "Error: Invalid Content. %1 Contact id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9",
+ message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9",
messageId: "SVC4069"
}
-#---------SVC4070------------------------------
+#---------SVC4070------------------------------
# %1 - Service/Resource
INVALID_COMPONENT_NAME: {
code: 400,
@@ -259,27 +259,27 @@ errors:
messageId: "SVC4070"
}
-#---------SVC4071------------------------------
+#---------SVC4071------------------------------
INVALID_VENDOR_NAME: {
code: 400,
message: 'Error: Invalid Content. Vendor name is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
messageId: "SVC4071"
}
-#---------SVC4072------------------------------
+#---------SVC4072------------------------------
INVALID_VENDOR_RELEASE: {
code: 400,
message: 'Error: Invalid Content. Vendor release is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
messageId: "SVC4072"
}
-#---------SVC4073------------------------------
+#---------SVC4073------------------------------
# %1 - Service/Resource
-# %2 - max resource/service name
+# %2 - max resource/service name
COMPONENT_NAME_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 name exceeds limit of %2 characters.",
messageId: "SVC4073"
}
-#---------SVC4080------------------------------
+#---------SVC4080------------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -290,7 +290,7 @@ errors:
message: "Error: Requested '%1' %2 is locked for modification by %3 %4(%5).",
messageId: "SVC4080"
}
-#---------SVC4081-----------------------------
+#---------SVC4081-----------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -302,7 +302,7 @@ errors:
messageId: "SVC4081"
}
-#-----------SVC4082---------------------------
+#-----------SVC4082---------------------------
# %1 - resource/service name
# %2 - resource/service
# %3 - First name of last modifier
@@ -392,7 +392,7 @@ errors:
}
#-----------SVC4102---------------------------
-# %1 - capability type name
+# %1 - capability type name
CAPABILITY_TYPE_ALREADY_EXIST: {
code: 409,
message: "Error: Capability Type with name '%1' already exists.",
@@ -405,7 +405,7 @@ errors:
messageId: "SVC4114"
}
#-----------SVC4115---------------------------
-# %1 - capability type name
+# %1 - capability type name
MISSING_CAPABILITY_TYPE: {
code: 400,
message: "Error: Invalid Content. Missing Capability Type '%1'.",
@@ -483,7 +483,7 @@ errors:
message: "Error: Artifact '%1' already exists.",
messageId: "SVC4125"
}
-#---------SVC4126------------------------------
+#---------SVC4126------------------------------
# %1 - resource/service/product/...
# %2 - field (tag, vendor name...)
INVALID_FIELD_FORMAT: {
@@ -518,7 +518,7 @@ errors:
#-----------SVC4131---------------------------
# %1-resource/service
# %2-srtifact/artifacts
-# %3-semicolomn separated list of artifact
+# %3-semicolomn separated list of artifact
COMPONENT_MISSING_MANDATORY_ARTIFACTS: {
code: 403,
message: "Error: Missing mandatory informational %1 %2: [%3].",
@@ -545,60 +545,60 @@ errors:
message: "Error: Invalid Content. Missing interface life-cycle type.",
messageId: "SVC4134"
}
-#---------SVC4135------------------------------
+#---------SVC4135------------------------------
SERVICE_CATEGORY_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Service category cannot be changed once the service is certified.",
messageId: "SVC4135"
}
-#---------SVC4136------------------------------
-# %1 - distribution environment name
+#---------SVC4136------------------------------
+# %1 - distribution environment name
DISTRIBUTION_ENVIRONMENT_NOT_AVAILABLE: {
code: 500,
message: "Error: Requested distribution environment '%1' is not available.",
messageId: "SVC4136"
}
-#---------SVC4137------------------------------
-# %1 - distribution environment name
+#---------SVC4137------------------------------
+# %1 - distribution environment name
DISTRIBUTION_ENVIRONMENT_NOT_FOUND: {
code: 400,
message: "Error: Requested distribution environment '%1' was not found.",
messageId: "SVC4137"
}
-#---------SVC4138------------------------------
+#---------SVC4138------------------------------
DISTRIBUTION_ENVIRONMENT_INVALID: {
code: 400,
message: "Error: Invalid distribution environment.",
messageId: "SVC4138"
}
-#---------SVC4139------------------------------
+#---------SVC4139------------------------------
# %1 - service name
DISTRIBUTION_ARTIFACT_NOT_FOUND: {
code: 409,
message: "Error: Service '%1' cannot be distributed due to missing deployment artifacts.",
messageId: "SVC4139"
}
-#---------SVC4200------------------------------
+#---------SVC4200------------------------------
# %1 - Service/Resource
-# %2 - max icon name length
+# %2 - max icon name length
COMPONENT_ICON_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. %1 icon name exceeds limit of %2 characters.",
messageId: "SVC4200"
}
-#---------SVC4300------------------------------
+#---------SVC4300------------------------------
RESTRICTED_ACCESS: {
code: 403,
message: "Error: Restricted access.",
messageId: "SVC4300"
}
-#---------SVC4301------------------------------
+#---------SVC4301------------------------------
RESTRICTED_OPERATION: {
code: 409,
message: "Error: Restricted operation.",
messageId: "SVC4301"
}
-#---------SVC4500------------------------------
+#---------SVC4500------------------------------
MISSING_BODY: {
code: 400 ,
message: "Error: Missing request body.",
@@ -610,7 +610,7 @@ errors:
message: "Error: Invalid Content. Missing mandatory parameter 'apiPublicKey'." ,
messageId: "SVC4501"
}
-#---------SVC4502------------------------------
+#---------SVC4502------------------------------
DISTRIBUTION_ENV_DOES_NOT_EXIST: {
code: 400 ,
message: "Error: Invalid Body : Missing mandatory parameter 'distrEnvName'." ,
@@ -624,7 +624,7 @@ errors:
messageId: "SVC4503"
}
-#---------SVC4504------------------------------
+#---------SVC4504------------------------------
# %1 - Service/Resource
# %2 - service/resource version
COMPONENT_VERSION_NOT_FOUND: {
@@ -634,103 +634,103 @@ errors:
}
#-----------SVC4505---------------------------
#%1-artifact name
-
+
ARTIFACT_NOT_FOUND: {
code: 404,
message: "Error: Artifact '%1' was not found.",
messageId: "SVC4505"
}
-#---------SVC4506------------------------------
+#---------SVC4506------------------------------
MISSING_ENV_NAME: {
code: 400 ,
message: "Error: Invalid Content. Missing mandatory parameter 'distrEnvName'.",
messageId: "SVC4506"
}
-#---------SVC4507------------------------------
+#---------SVC4507------------------------------
COMPONENT_INVALID_TAGS_NO_COMP_NAME: {
code: 400,
message: "Error: Invalid Content. One of the tags should be the component name.",
messageId: "SVC4507"
}
-
-#---------SVC4508------------------------------
+
+#---------SVC4508------------------------------
SERVICE_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Service name cannot be changed once the service is certified.",
messageId: "SVC4508"
}
-#---------SVC4509------------------------------
+#---------SVC4509------------------------------
SERVICE_ICON_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Icon cannot be changed once the service is certified.",
messageId: "SVC4509"
}
-#---------SVC4510------------------------------
+#---------SVC4510------------------------------
# %1 - icon name max length
SERVICE_ICON_EXCEEDS_LIMIT: {
code: 400,
message: "Error: Invalid Content. Icon name exceeds limit of %1 characters.",
messageId: "SVC4510"
}
-#---------SVC4511------------------------------
+#---------SVC4511------------------------------
DISTRIBUTION_REQUESTED_NOT_FOUND: {
code: 404,
message: "Error: Requested distribution was not found.",
messageId: "SVC4511"
}
-#---------SVC4512------------------------------
+#---------SVC4512------------------------------
# %1 - Distribution ID
DISTRIBUTION_REQUESTED_FAILED: {
code: 403,
message: "Error: Requested distribution '%1' failed.",
messageId: "SVC4512"
}
-#---------SVC4513------------------------------
+#---------SVC4513------------------------------
RESOURCE_CATEGORY_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Resource category cannot be changed once the resource is certified.",
messageId: "SVC4513"
}
-#---------SVC4514------------------------------
+#---------SVC4514------------------------------
RESOURCE_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Resource name cannot be changed once the resource is certified.",
messageId: "SVC4514"
}
-#---------SVC4515------------------------------
+#---------SVC4515------------------------------
RESOURCE_ICON_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Icon cannot be changed once the resource is certified.",
messageId: "SVC4515"
}
-#---------SVC4516------------------------------
+#---------SVC4516------------------------------
RESOURCE_VENDOR_NAME_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Vendor name cannot be changed once the resource is certified.",
messageId: "SVC4516"
}
-#---------SVC4517------------------------------
+#---------SVC4517------------------------------
RESOURCE_DERIVED_FROM_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: Derived from resource template cannot be changed once the resource is certified.",
messageId: "SVC4517"
}
-#---------SVC4518------------------------------
-# %1 - max length
+#---------SVC4518------------------------------
+# %1 - max length
COMPONENT_SINGLE_TAG_EXCEED_LIMIT: {
code: 400,
message: "Error: Invalid Content. Single tag exceeds limit of %1 characters.",
messageId: "SVC4518"
}
-#---------SVC4519------------------------------
+#---------SVC4519------------------------------
INVALID_DEFAULT_VALUE: {
code: 400,
message: "Error: mismatch in data-type occurred for property %1. data type is %2 and default value found is %3.",
messageId: "SVC4519"
}
-#---------SVC4520------------------------------
-# %1 - service or resource
+#---------SVC4520------------------------------
+# %1 - service or resource
ADDITIONAL_INFORMATION_MAX_NUMBER_REACHED: {
code: 409,
message: "Error: Maximal number of additional %1 parameters was reached.",
@@ -742,7 +742,7 @@ errors:
message: "Error: Invalid Content. The Additional information label and value cannot be empty.",
messageId: "SVC4521"
}
-#---------SVC4522------------------------------
+#---------SVC4522------------------------------
# %1 - label/value
# %2 - Maximal length of %1
ADDITIONAL_INFORMATION_EXCEEDS_LIMIT: {
@@ -762,32 +762,32 @@ errors:
message: "Error: Requested additional information was not found.",
messageId: "SVC4524"
}
-#---------SVC4525------------------------------
+#---------SVC4525------------------------------
ADDITIONAL_INFORMATION_VALUE_NOT_ALLOWED_CHARACTERS: {
code: 400,
message: 'Error: Invalid Content. Additional information contains non-english characters.',
messageId: "SVC4525"
}
-#---------SVC4526------------------------------
+#---------SVC4526------------------------------
RESOURCE_INSTANCE_NOT_FOUND: {
code: 404,
message: "Error: Requested '%1' resource instance was not found.",
messageId: "SVC4526"
}
-#---------SVC4527------------------------------
+#---------SVC4527------------------------------
ASDC_VERSION_NOT_FOUND: {
code: 500,
message: 'Error: ASDC version cannot be displayed.',
messageId: "SVC4527"
}
-#---------SVC4528------------------------------
+#---------SVC4528------------------------------
# %1-artifact url/artifact label/artifact description/VNF Service Indicator
MISSING_DATA: {
code: 400,
message: "Error: Invalid content. Missing %1.",
messageId: "SVC4528"
}
-#---------SVC4529------------------------------
+#---------SVC4529------------------------------
# %1-artifact url/artifact label/artifact description/artifact name
# %2 - Maximal length of %1
EXCEEDS_LIMIT: {
@@ -795,51 +795,51 @@ errors:
message: "Error: Invalid Content. %1 exceeds limit of %2 characters.",
messageId: "SVC4529"
}
-#---------SVC4530------------------------------
+#---------SVC4530------------------------------
ARTIFACT_INVALID_TIMEOUT: {
code: 400,
message: "Error: Invalid Content. Artifact Timeout should be set to valid positive non-zero number of minutes.",
messageId: "SVC4530"
}
-#---------SVC4531------------------------------
+#---------SVC4531------------------------------
SERVICE_IS_VNF_CANNOT_BE_CHANGED: {
code: 400,
message: "Error: VNF Indicator cannot be updated for certified service.",
messageId: "SVC4531"
}
- #---------SVC4532------------------------------
+ #---------SVC4532------------------------------
RESOURCE_INSTANCE_NOT_FOUND_ON_SERVICE: {
code: 404,
message: "Error: Requested '%1' resource instance was not found on the service '%2.",
messageId: "SVC4532"
}
- #---------SVC4533------------------------------
- # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
+ #---------SVC4533------------------------------
+ # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML"
WRONG_ARTIFACT_FILE_EXTENSION: {
code: 400,
message: "Error: Invalid file extension for %1 artifact type.",
messageId: "SVC4533"
}
-#---------SVC4534------------------------------
-# %1 - "HEAT"/"HEAT_ENV"
+#---------SVC4534------------------------------
+# %1 - "HEAT"/"HEAT_ENV"
INVALID_YAML: {
code: 400,
message: "Error: Uploaded YAML file for %1 artifact is invalid.",
messageId: "SVC4534"
}
-#---------SVC4535------------------------------
-# %1 - "HEAT"
+#---------SVC4535------------------------------
+# %1 - "HEAT"
INVALID_DEPLOYMENT_ARTIFACT_HEAT: {
code: 400,
message: "Error: Invalid %1 artifact.",
messageId: "SVC4535"
}
-#---------SVC4536------------------------------
+#---------SVC4536------------------------------
# %1 - "Resource"/"Service"
-# %2 - resource/service name
-# %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"
+# %2 - resource/service name
+# %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"
# %4 - "HEAT"/"HEAT_ENV"/"MURANO_PKG
DEPLOYMENT_ARTIFACT_OF_TYPE_ALREADY_EXISTS: {
code: 400,
@@ -847,80 +847,80 @@ errors:
messageId: "SVC4536"
}
-#---------SVC4537------------------------------
+#---------SVC4537------------------------------
MISSING_HEAT: {
code: 400,
message: "Error: Missing HEAT artifact. HEAT_ENV artifact cannot be uploaded without corresponding HEAT template.",
messageId: "SVC4537"
}
-#---------SVC4538------------------------------
+#---------SVC4538------------------------------
MISMATCH_HEAT_VS_HEAT_ENV: {
code: 400,
message: "Error: Invalid artifact content. Parameter's set in HEAT_ENV '%1' artifact doesn't match the parameters in HEAT '%2' artifact.",
messageId: "SVC4538"
}
-#---------SVC4539------------------------------
+#---------SVC4539------------------------------
INVALID_RESOURCE_PAYLOAD: {
code: 400,
message: "Error: Invalid resource payload.",
messageId: "SVC4539"
}
-#---------SVC4540------------------------------
+#---------SVC4540------------------------------
INVALID_TOSCA_FILE_EXTENSION: {
code: 400,
message: "Error: Invalid file extension for TOSCA template.",
messageId: "SVC4540"
}
-#---------SVC4541------------------------------
+#---------SVC4541------------------------------
INVALID_YAML_FILE: {
code: 400,
message: "Error: Invalid YAML file.",
messageId: "SVC4541"
}
-#---------SVC4542------------------------------
+#---------SVC4542------------------------------
INVALID_TOSCA_TEMPLATE: {
code: 400,
message: "Error: Invalid TOSCA template.",
messageId: "SVC4542"
}
-#---------SVC4543------------------------------
+#---------SVC4543------------------------------
NOT_RESOURCE_TOSCA_TEMPLATE: {
code: 400,
message: "Error: Imported Service TOSCA template.",
messageId: "SVC4543"
}
-#---------SVC4544------------------------------
+#---------SVC4544------------------------------
NOT_SINGLE_RESOURCE: {
code: 400,
message: "Error: Imported TOSCA template should contain one resource definition.",
messageId: "SVC4544"
}
-#---------SVC4545------------------------------
+#---------SVC4545------------------------------
INVALID_RESOURCE_NAMESPACE: {
code: 400,
message: "Error: Invalid resource namespace.",
messageId: "SVC4545"
}
-#---------SVC4546------------------------------
+#---------SVC4546------------------------------
RESOURCE_ALREADY_EXISTS: {
code: 400,
message: "Error: Imported resource already exists in ASDC Catalog.",
messageId: "SVC4546"
}
-#---------SVC4549------------------------------
+#---------SVC4549------------------------------
INVALID_RESOURCE_CHECKSUM: {
code: 400,
message: "Error: Invalid resource checksum.",
messageId: "SVC4549"
}
-#---------SVC4550------------------------------
+#---------SVC4550------------------------------
#%1  -  Consumer salt
INVALID_LENGTH: {
code: 400,
message: "Error: Invalid %1 length.",
messageId: "SVC4550"
}
- #---------SVC4551------------------------------
+ #---------SVC4551------------------------------
#%1  -  ECOMP User name
ECOMP_USER_NOT_FOUND: {
code: 404,
@@ -934,13 +934,13 @@ errors:
messageId: "SVC4552"
}
#---------SVC4553-----------------------------
- #%1  -  Consumer name / Consumer password/ Consumer salt
+ #%1  -  Consumer name / Consumer password/ Consumer salt
INVALID_CONTENT_PARAM: {
code: 400,
message: "Error: %1 is invalid.",
messageId: "SVC4553"
}
- #---------SVC4554------------------------------
+ #---------SVC4554------------------------------
# %1 - "Resource"/"Service"
COMPONENT_ARTIFACT_NOT_FOUND: {
code: 404,
@@ -954,7 +954,7 @@ errors:
message: "Error: Requested '%1' service is not ready for certification. Service has to have at least one deployment artifact.",
messageId: "SVC4554"
}
-#---------SVC4555------------------------------
+#---------SVC4555------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category"
COMPONENT_ELEMENT_INVALID_NAME_LENGTH: {
@@ -962,7 +962,7 @@ errors:
message: "Error: Invalid %1 %2 name length.",
messageId: "SVC4555"
}
-#---------SVC4556------------------------------
+#---------SVC4556------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category"
COMPONENT_ELEMENT_INVALID_NAME_FORMAT: {
@@ -970,7 +970,7 @@ errors:
message: "Error: Invalid %1 %2 name format.",
messageId: "SVC4556"
}
-#---------SVC4557------------------------------
+#---------SVC4557------------------------------
#%1 - "Resource"/"Service"/"Product"
#%2 - "category name"
COMPONENT_CATEGORY_ALREADY_EXISTS: {
@@ -1001,7 +1001,7 @@ errors:
code: 403,
message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use one of available validated resource versions.",
messageId: "SVC4560"
- }
+ }
#---------SVC4561------------------------------
# %1 - "resource"/"product"
# %2 - "category"
@@ -1029,108 +1029,108 @@ errors:
message: "Error: %1 grouping '%2' already exists under '%3' sub-category.",
messageId: "SVC4563"
}
-#---------SVC4564------------------------------
+#---------SVC4564------------------------------
# %1 - product name
PRODUCT_NOT_FOUND: {
code: 404,
message: "Error: Requested '%1' product was not found.",
messageId: "SVC4564"
}
-#---------SVC4565------------------------------
-# %1 - "HEAT"
-# %2 - parameter type ("string" , "boolean" , "number")
+#---------SVC4565------------------------------
+# %1 - "HEAT"
+# %2 - parameter type ("string" , "boolean" , "number")
# %3 - parameter name
INVALID_HEAT_PARAMETER_VALUE: {
code: 400,
message: "Error: Invalid %1 artifact. Invalid %2 value set for '%3' parameter.",
messageId: "SVC4565"
}
-#---------SVC4566------------------------------
-# %1 - "HEAT"
-# %2 - parameter type ("string" , "boolean" , "number")
+#---------SVC4566------------------------------
+# %1 - "HEAT"
+# %2 - parameter type ("string" , "boolean" , "number")
INVALID_HEAT_PARAMETER_TYPE: {
code: 400,
message: "Error: Invalid %1 artifact. Unsupported '%2' parameter type.",
messageId: "SVC4566"
}
-#---------SVC4567------------------------------
-# %1 - "YANG_XML"
+#---------SVC4567------------------------------
+# %1 - "YANG_XML"
INVALID_XML: {
code: 400,
message: "Error: Uploaded XML file for %1 artifact is invalid.",
messageId: "SVC4567"
}
-#---------SVC4567------------------------------
-# %1 - "User Name and UserId"
+#---------SVC4567------------------------------
+# %1 - "User Name and UserId"
# %2 -"checked-out"/"in-certification"
CANNOT_DELETE_USER_WITH_ACTIVE_ELEMENTS: {
code: 409,
message: "Error: User cannot be deleted. User '%1' has %2 projects.",
messageId: "SVC4567"
}
-#---------SVC4568------------------------------
-# %1 - "User Name and UserId"
+#---------SVC4568------------------------------
+# %1 - "User Name and UserId"
# %2 -"checked-out"/"in-certification"
CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS: {
code: 409,
message: "Error: Role cannot be changed. User '%1' has %2 projects.",
messageId: "SVC4568"
}
-#---------SVC4570------------------------------
+#---------SVC4570------------------------------
UPDATE_USER_ADMIN_CONFLICT: {
code: 409,
message: "Error: An administrator is not allowed to change his/her role.",
messageId: "SVC4570"
}
-#---------SVC4571------------------------------
+#---------SVC4571------------------------------
SERVICE_CANNOT_CONTAIN_SUBCATEGORY: {
code: 400,
message: "Error: Sub category cannot be defined for service",
messageId: "SVC4571"
}
-#---------SVC4572------------------------------
+#---------SVC4572------------------------------
# %1 - "Resource"/"Service"
COMPONENT_TOO_MUCH_CATEGORIES: {
code: 400,
message: "Error: %1 must have only 1 category",
messageId: "SVC4572"
}
-#---------SVC4574------------------------------
+#---------SVC4574------------------------------
RESOURCE_TOO_MUCH_SUBCATEGORIES: {
code: 400,
message: "Error: Resource must have only 1 sub category",
messageId: "SVC4574"
}
-#---------SVC4575------------------------------
+#---------SVC4575------------------------------
COMPONENT_MISSING_SUBCATEGORY: {
code: 400,
message: "Error: Missing sub category",
messageId: "SVC4575"
}
- #---------SVC4576------------------------------
+ #---------SVC4576------------------------------
# %1 - "component type"
UNSUPPORTED_ERROR: {
code: 400,
message: "Error : Requested component type %1 is unsupported.",
messageId: "SVC4576"
}
- #---------SVC4577------------------------------
+ #---------SVC4577------------------------------
# %1 - "resource type"
RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES: {
code: 409,
message: "Error : Resource of type %1 cannot contain resource instances.",
messageId: "SVC4577"
}
-#---------SVC4578------------------------------
+#---------SVC4578------------------------------
# %1 - "Resource"/"Service"
-# %2 - resource/service name
-# %3 - "artifact name"
+# %2 - resource/service name
+# %3 - "artifact name"
DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS: {
code: 400,
message: "Error: %1 '%2' already has a deployment artifact named '%3'.",
messageId: "SVC4578"
}
-#---------SVC4579------------------------------
+#---------SVC4579------------------------------
# %1 - "Category"/"Sub-Category"/"Group"
# %2 - category/sub-category/grouping name.
INVALID_GROUP_ASSOCIATION: {
@@ -1138,27 +1138,27 @@ errors:
message: "Error: Invalid group association. %1 '%2' was not found.",
messageId: "SVC4579"
}
-#---------SVC4580------------------------------
+#---------SVC4580------------------------------
EMPTY_PRODUCT_CONTACTS_LIST: {
code: 400,
message: "Error: Invalid content. At least one Product Contact has to be specified.",
messageId: "SVC4580"
}
-#---------SVC4581------------------------------
-# %1 - userId
+#---------SVC4581------------------------------
+# %1 - UserId
INVALID_PRODUCT_CONTACT: {
code: 400,
message: "Error: Invalid content. User '%1' cannot be set as Product Contact.",
messageId: "SVC4581"
}
-#---------SVC4582------------------------------
+#---------SVC4582------------------------------
# %1 - Product
# %2 - "abbreviated"/"full"
MISSING_ONE_OF_COMPONENT_NAMES: {
code: 400,
message: "Error: Invalid content. Missing %1 %2 name.",
messageId: "SVC4582"
- }
+ }
#---------SVC4583------------------------------
# %1 - "Icon"
# %2 - "resource"/"service"/"product"
@@ -1168,10 +1168,10 @@ errors:
messageId: "SVC4583"
}
#---------SVC4584------------------------------
-# %1 - service/VF name
+# %1 - service/VF name
# %2 - "service" /"VF"
# %3 - resource instance origin type
-# %4 - resource instance name
+# %4 - resource instance name
# %5 - requirement/capability
# %6 - requirement/capability name
# %7 - "fulfilled" (for req)/"consumed (for cap)"
@@ -1180,57 +1180,57 @@ errors:
message: "Error: Requested '%1' %2 is not ready for certification. %3 '%4' has to have %5 '%6' %7.",
messageId: "SVC4584"
}
-#---------SVC4585------------------------------
+#---------SVC4585------------------------------
INVALID_OCCURRENCES: {
code: 400,
message: "Error: Invalid occurrences format.",
messageId: "SVC4585"
}
-#---------SVC4586------------------------------
-#---------SVC4586------------------------------
+#---------SVC4586------------------------------
+#---------SVC4586------------------------------
INVALID_SERVICE_API_URL: {
code: 400,
message: 'Error: Invalid Service API URL. Please check whether your URL has a valid domain extension and does not contain the following characters - #?&@%+;,=$<>~^`\[]{}|"*!',
messageId: "SVC4586"
}
-#---------SVC4587------------------------------
-# %1 - Data type name
+#---------SVC4587------------------------------
+# %1 - Data type name
DATA_TYPE_ALREADY_EXIST: {
code: 409,
message: 'Error: Data type %1 already exists.',
messageId: "SVC4587"
}
-#---------SVC4588------------------------------
-# %1 - Data type name
+#---------SVC4588------------------------------
+# %1 - Data type name
DATA_TYPE_NOR_PROPERTIES_NEITHER_DERIVED_FROM: {
code: 400,
message: 'Error: Invalid Data type %1. Data type must have either a valid derived from declaration or at least one valid property',
messageId: "SVC4588"
}
-#---------SVC4589------------------------------
-# %1 - Data type name
+#---------SVC4589------------------------------
+# %1 - Data type name
DATA_TYPE_PROPERTIES_CANNOT_BE_EMPTY: {
code: 400,
message: "Error: Invalid Data type %1. 'properties' parameter cannot be empty if provided.",
messageId: "SVC4589"
}
-#---------SVC4590------------------------------
-# %1 - Property type name
+#---------SVC4590------------------------------
+# %1 - Property type name
# %2 - Property name
INVALID_PROPERTY_TYPE: {
code: 400,
message: "Error: Invalid Property type %1 in property %2.",
messageId: "SVC4590"
}
-#---------SVC4591------------------------------
+#---------SVC4591------------------------------
# %1 - Property inner type
-# %2 - Property name
+# %2 - Property name
INVALID_PROPERTY_INNER_TYPE: {
code: 400,
message: "Error: Invalid property inner type %1, in property %2",
messageId: "SVC4591"
}
-#---------SVC4592------------------------------
+#---------SVC4592------------------------------
# %1 - component instance name
# %2 - "resource instance"/"service instance"
COMPONENT_INSTANCE_NOT_FOUND: {
@@ -1238,11 +1238,11 @@ errors:
message: "Error: Requested '%1' %2 was not found.",
messageId: "SVC4592"
}
-#---------SVC4593------------------------------
+#---------SVC4593------------------------------
# %1 - component instance name
# %2 - "resource instance"/"service instance"
# %3 - "resource/"service"/"product"
-# %4 - container name
+# %4 - container name
COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER: {
code: 404,
message: "Error: Requested '%1' %2 was not found on the %3 '%4'.",
@@ -1259,20 +1259,20 @@ errors:
#---------SVC4595------------------------------
#%1 - requirement / capability
#%2 - requirement name
-#%3 - parent containing the requirement
+#%3 - parent containing the requirement
IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED: {
code: 400,
message: "Error: Imported TOSCA template contains %1 '%2' that is already defined by derived template %3.",
messageId: "SVC4595"
}
-#---------SVC4596------------------------------
+#---------SVC4596------------------------------
# %1 - Data type name
DATA_TYPE_DERIVED_IS_MISSING: {
code: 400,
message: "Error: Invalid Content. The ancestor data type %1 cannot be found in the system.",
messageId: "SVC4596"
}
-#---------SVC4597------------------------------
+#---------SVC4597------------------------------
# %1 - Data type name
# %2 - Property names
DATA_TYPE_PROPERTY_ALREADY_DEFINED_IN_ANCESTOR: {
@@ -1280,14 +1280,14 @@ errors:
message: "Error: Invalid Content. The data type %1 contains properties named %2 which are already defined in one of its ancestors.",
messageId: "SVC4597"
}
-#---------SVC4598------------------------------
+#---------SVC4598------------------------------
# %1 - Data type name
DATA_TYPE_DUPLICATE_PROPERTY: {
code: 400,
message: "Error: Invalid Content. The data type %1 contains duplicate property.",
messageId: "SVC4598"
}
-#---------SVC4599------------------------------
+#---------SVC4599------------------------------
# %1 - Data type name
# %2 - Property names
DATA_TYPE_PROEPRTY_CANNOT_HAVE_SAME_TYPE_OF_DATA_TYPE: {
@@ -1295,14 +1295,14 @@ errors:
message: "Error: Invalid Content. The data type %1 contains properties %2 which their type is this data type.",
messageId: "SVC4599"
}
-#---------SVC4600------------------------------
+#---------SVC4600------------------------------
# %1 - Data type name
DATA_TYPE_CANNOT_HAVE_PROPERTIES: {
code: 400,
message: "Error: Invalid Content. The data type %1 cannot have properties since it is of type scalar",
messageId: "SVC4600"
}
-#---------SVC4601------------------------------
+#---------SVC4601------------------------------
NOT_TOPOLOGY_TOSCA_TEMPLATE: {
code: 400,
message: "Error: TOSCA yaml file %1 cannot be modeled to VF as it does not contain 'topology_template.",
@@ -1317,7 +1317,7 @@ errors:
message: "Error: TOSCA yaml file '%1' contains node_template '%2' of type '%3' that does not represent existing VFC/CP/VL",
messageId: "SVC4602"
}
-#---------SVC4603------------------------------
+#---------SVC4603------------------------------
# %1 - component type
# %2 - component name
# %3 - state
@@ -1326,21 +1326,21 @@ errors:
message: "Error: Component instance of %1 can not be created because the component '%2' is in an illegal state %3.",
messageId: "SVC4603"
}
-#---------SVC4604------------------------------
+#---------SVC4604------------------------------
# %1 - csar file name
CSAR_INVALID: {
code: 400,
message: "Error: TOSCA CSAR '%1' is invalid. 'TOSCA-Metadata/Tosca.meta' file must be provided.",
messageId: "SVC4604"
}
-#---------SVC4605------------------------------
+#---------SVC4605------------------------------
# %1 - csar file name
CSAR_INVALID_FORMAT: {
code: 400,
message: "Error: TOSCA CSAR '%1' is invalid. Invalid 'TOSCA-Metadata/Tosca.meta' file format.",
messageId: "SVC4605"
}
-#---------SVC4606------------------------------
+#---------SVC4606------------------------------
# %1 - property name
# %2 - property type
# %3 - property innerType
@@ -1350,14 +1350,14 @@ errors:
message: "Error: Invalid default value of property %1. Data type is %2 with inner type %3 and default value found is %4.",
messageId: "SVC4606"
}
-#---------SVC4607------------------------------
+#---------SVC4607------------------------------
# %1 - csar file name
CSAR_NOT_FOUND: {
code: 400,
message: "Error: TOSCA CSAR '%1' is not found.",
messageId: "SVC4607"
}
-#---------SVC4608------------------------------
+#---------SVC4608------------------------------
# %1 - artifact name
# %2 - component type
# %3 - actual component type
@@ -1367,14 +1367,14 @@ errors:
messageId: "SVC4608"
}
-#---------SVC4609------------------------------
-# %1 - "INVALID_JSON"
+#---------SVC4609------------------------------
+# %1 - "INVALID_JSON"
INVALID_JSON: {
code: 400,
message: "Error: Uploaded JSON file for %1 artifact is invalid.",
messageId: "SVC4609"
}
-#---------SVC4610------------------------------
+#---------SVC4610------------------------------
# %1 - csar file name
# %2 - missing file name
YAML_NOT_FOUND_IN_CSAR: {
@@ -1382,21 +1382,21 @@ errors:
message: "Error - TOSCA CSAR %1 is invalid. TOSCA-Metadata/Tosca.meta refers to file %2 that is not provided.",
messageId: "SVC4610"
}
-#---------SVC4611------------------------------
+#---------SVC4611------------------------------
# %1 - group name
GROUP_MEMBER_EMPTY: {
code: 400,
message: "Error: Invalid Content. Group %1 member list was provided but does not have values",
messageId: "SVC4611"
}
-#---------SVC4612------------------------------
-# %1 - group name
+#---------SVC4612------------------------------
+# %1 - group name
GROUP_TYPE_ALREADY_EXIST: {
code: 409,
message: 'Error: Group type %1 already exists.',
messageId: "SVC4612"
}
-#---------SVC4613------------------------------
+#---------SVC4613------------------------------
# %1 - group name
# %2 - VF name(component name)
# %3 - actual component type [VF]
@@ -1404,15 +1404,15 @@ errors:
code: 409,
message: "Error: Group with name '%1' already exists in %2 %3.",
messageId: "SVC4613"
- }
-#---------SVC4614------------------------------
+ }
+#---------SVC4614------------------------------
# %1 - group type
GROUP_TYPE_IS_INVALID: {
code: 400,
message: "Error: Invalid content. Group type %1 does not exist",
messageId: "SVC4614"
}
-#---------SVC4615------------------------------
+#---------SVC4615------------------------------
# %1 - group name
GROUP_MISSING_GROUP_TYPE: {
code: 400,
@@ -1428,7 +1428,7 @@ errors:
code: 400,
message: "Error: Member '%1' listed in group '%2' is not part of '%3' %4.",
messageId: "SVC4616"
- }
+ }
#---------SVC4617------------------------------
# %1 - member name
# %2 - group name
@@ -1438,7 +1438,7 @@ errors:
message: "Error: member %1 listed in group %2 is not part of allowed members of group type %3.",
messageId: "SVC4617"
}
-#---------SVC4618------------------------------
+#---------SVC4618------------------------------
# %1 - missing file name
# %2 - csar file name
ARTIFACT_NOT_FOUND_IN_CSAR: {
@@ -1446,7 +1446,7 @@ errors:
message: "Error: artifact %1 is defined in CSAR %2 manifest but is not provided",
messageId: "SVC4618"
}
-#---------SVC4619------------------------------
+#---------SVC4619------------------------------
# %1 - artifact name
# %2 - artifact type
# %3 - existing artifact type
@@ -1455,23 +1455,23 @@ errors:
message: "Error: artifact %1 in type %2 already exists in type %3.",
messageId: "SVC4619"
}
-#---------SVC4620------------------------------
+#---------SVC4620------------------------------
FAILED_RETRIVE_ARTIFACTS_TYPES: {
code: 400,
message: "Error: Failed to retrieve list of suported artifact types.",
messageId: "SVC4620"
}
-#---------SVC4621------------------------------
+#---------SVC4621------------------------------
# %1 - artifact name
-# %2 - master
+# %2 - master
ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR: {
code: 400,
message: "Error: artifact %1 already exists in master %2 .",
messageId: "SVC4621"
}
-#---------SVC4622------------------------------
+#---------SVC4622------------------------------
# %1 - artifact name
-# %2 - artifact type
+# %2 - artifact type
# %3 - master name
# %4 - master type
ARTIFACT_NOT_VALID_IN_MASTER: {
@@ -1479,9 +1479,9 @@ errors:
message: "Error: artifact %1 in type %2 can not be exists under master %3 in type %4.",
messageId: "SVC4622"
}
-#---------SVC4623------------------------------
+#---------SVC4623------------------------------
# %1 - artifact name
-# %2 - artifact type
+# %2 - artifact type
# %3 - env name
# %4 - existing env
ARTIFACT_NOT_VALID_ENV: {
@@ -1489,7 +1489,7 @@ errors:
message: "Error: Artifact %1 in type %2 with env %3 already exists with another env %4",
messageId: "SVC4623"
}
-#---------SVC4624------------------------------
+#---------SVC4624------------------------------
# %1 - groups names
# %2 - VF name
# %3 - component type [VF ]
@@ -1498,14 +1498,14 @@ errors:
message: "Error: Invalid Content. The groups '%1' cannot be found under %2 %3.",
messageId: "SVC4624"
}
-#---------SVC4625------------------------------
+#---------SVC4625------------------------------
# %1 - groups name
GROUP_ARTIFACT_ALREADY_ASSOCIATED: {
code: 400,
message: "Error: Invalid Content. Artifact already associated to group '%1'.",
messageId: "SVC4625"
}
-#---------SVC4626------------------------------
+#---------SVC4626------------------------------
# %1 - groups name
GROUP_ARTIFACT_ALREADY_DISSOCIATED: {
code: 400,
@@ -1521,7 +1521,7 @@ errors:
message: "Error: property %1 listed in group %2 is not exist in group type %3.",
messageId: "SVC4627"
}
-#---------SVC4628------------------------------
+#---------SVC4628------------------------------
# %1 - csarUUID
# %2 - VF name
VSP_ALREADY_EXISTS: {
@@ -1529,14 +1529,14 @@ errors:
message: "Error: The VSP with UUID %1 was already imported for VF %2. Please select another or update the existing VF.",
messageId: "SVC4628"
}
-#---------SVC4629------------------------------
+#---------SVC4629------------------------------
# %1 - VF name
MISSING_CSAR_UUID: {
code: 400,
message: "Error: The Csar UUID or payload name is missing for VF %1.",
messageId: "SVC4629"
}
-#---------SVC4630------------------------------
+#---------SVC4630------------------------------
# %1 - VF name
# %2 - new csarUUID
# %3 - old csarUUID
@@ -1545,8 +1545,8 @@ errors:
message: "Error: Resource %1 cannot be updated using CsarUUID %2 since the resource is linked to a different VSP with csarUUID %3.",
messageId: "SVC4630"
}
-#---------SVC4631------------------------------
-# %1 - policy name
+#---------SVC4631------------------------------
+# %1 - policy name
POLICY_TYPE_ALREADY_EXIST: {
code: 409,
message: "Error: Policy type %1 already exists.",
@@ -1593,7 +1593,7 @@ errors:
code: 404,
message: "Error: Requested '%1' attribute was not found.",
messageId: "SVC4637"
- }
+ }
#-----------SVC4638---------------------------
#%1 - attribute name
ATTRIBUTE_ALREADY_EXIST: {
@@ -1661,7 +1661,7 @@ errors:
message: "Error: Invalid Content. VF Module name '%1' contains invalid characters",
messageId: "SVC4646"
}
-
+
#---------SVC4647------------------------------
# %1 - "modifiedName"
INVALID_VF_MODULE_NAME_MODIFICATION: {
@@ -1699,23 +1699,23 @@ errors:
message: "Error: Once resource is certified, derived_from can be changed only to a sibling",
messageId: "SVC4651"
}
-#---------SVC4652------------------------------
+#---------SVC4652------------------------------
# %1 - resource/service
COMPONENT_INVALID_SUBCATEGORY: {
code: 400,
message: "Error: Invalid Content. Invalid %1 sub category.",
messageId: "SVC4652"
}
-#---------SVC4653------------------------------
-# %1 - group instance uniqueId
+#---------SVC4653------------------------------
+# %1 - group instance uniqueId
# %2 - service uniqueId
GROUP_INSTANCE_NOT_FOUND_ON_COMPONENT_INSTANCE: {
code: 404,
message: "Error: Requested group instance %1 was not found on component %2.",
messageId: "SVC4653"
}
-#---------SVC4654------------------------------
-# %1 - group property name
+#---------SVC4654------------------------------
+# %1 - group property name
# %2 - valid min limit value
# %3 - valid max limit value
INVALID_GROUP_MIN_MAX_INSTANCES_PROPERTY_VALUE: {
@@ -1723,8 +1723,8 @@ errors:
message: "Error: Value of %1 must be not higher than %2, and not lower than %3.",
messageId: "SVC4654"
}
-#---------SVC4655------------------------------
-# %1 - group property name
+#---------SVC4655------------------------------
+# %1 - group property name
# %2 - valid min limit value
# %3 - valid max limit value
INVALID_GROUP_INITIAL_COUNT_PROPERTY_VALUE: {
@@ -1732,15 +1732,15 @@ errors:
message: "Error: Value of %1 must be between %2 and %3.",
messageId: "SVC4655"
}
-#---------SVC4656------------------------------
-# %1 - group property name
+#---------SVC4656------------------------------
+# %1 - group property name
# %2 - lower/higher
# %3 - valid max/min value
INVALID_GROUP_PROPERTY_VALUE_LOWER_HIGHER: {
code: 400,
message: "Error: Value of %1 must be %2 or equals to %3.",
messageId: "SVC4656"
- }
+ }
#---------SVC4657------------------------------
# %1 - certificationRequest / startTesting
RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID: {
@@ -1752,7 +1752,7 @@ errors:
# %1 – asset type [service / resource ]
# %2 – main asset uuid
# %3 – not found asset type [service / resource]
-# %4 – not found asset name
+# %4 – not found asset name
ASSET_NOT_FOUND_DURING_CSAR_CREATION: {
code: 400,
message: "Error: CSAR packaging failed for %1 %2. %3 %4 was not found",
@@ -1761,10 +1761,87 @@ errors:
#---------SVC4659------------------------------
# %1 – asset type [service / resource ]
# %2 – main asset uuid
-# %3 – Artifact name
+# %3 – Artifact name
# %4 – Artifact uuid
ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION: {
code: 400,
- message: " Error: CSAR packaging failed for %1 %2. Artifact %3 [%4] was not found",
+ message: "Error: CSAR packaging failed for %1 %2. Artifact %3 [%4] was not found",
messageId: "SVC4659"
+ }
+#---------SVC4660------------------------------
+# %1 - assetType
+# %2 - matching generic node type name
+ GENERIC_TYPE_NOT_FOUND: {
+ code: 404,
+ message: "Creation of %1 failed. Generic type %2 was not found",
+ messageId: "SVC4660"
+ }
+#---------SVC4661------------------------------
+# %1 - assetType
+# %2 - matching generic node type name
+ TOSCA_SCHEMA_FILES_NOT_FOUND: {
+ code: 400,
+ message: "Error: CSAR packaging failed. TOSCA schema files for SDC-Version: %1 and Conformance-Level %2 were not found",
+ messageId: "SVC4661"
+ }
+#---------SVC4662------------------------------
+# %1 - file name
+# %2 - parser error
+ TOSCA_PARSE_ERROR: {
+ code: 400,
+ message: "Error: Invalid TOSCA template in file %1. %2",
+ messageId: "SVC4662"
+ }
+#---------SVC4663------------------------------
+# %1 - max length
+ RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Resource vendor model number exceeds limit of %1 characters.",
+ messageId: "SVC4663"
+ }
+#---------SVC4664------------------------------
+ INVALID_RESOURCE_VENDOR_MODEL_NUMBER: {
+ code: 400,
+ message: 'Error: Invalid Content. Resource vendor model number is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4664"
+ }
+#---------SVC4665------------------------------
+# %1 - max length
+ SERVICE_TYPE_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Service type exceeds limit of %1 characters.",
+ messageId: "SVC4665"
+ }
+#---------SVC4666------------------------------
+ INVALID_SERVICE_TYPE: {
+ code: 400,
+ message: 'Error: Invalid Content. Serivce type is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4666"
+ }
+#---------SVC4667------------------------------
+# %1 - max length
+ SERVICE_ROLE_EXCEEDS_LIMIT: {
+ code: 400,
+ message: "Error: Invalid Content. Service role exceeds limit of %1 characters.",
+ messageId: "SVC4667"
+ }
+#---------SVC4668------------------------------
+ INVALID_SERVICE_ROLE: {
+ code: 400,
+ message: 'Error: Invalid Content. Service role is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.',
+ messageId: "SVC4668"
+ }
+
+ #---------SVC4669-----------------------------
+ INVALID_RESOURCE_TYPE: {
+ code: 400,
+ message: "Error: Invalid resource type.",
+ messageId: "SVC4669"
+ }
+
+ #---------SVC4670------------------------------
+ ARTIFACT_NAME_INVALID: {
+ code: 400,
+ message: "Error: Artifact name is invalid.",
+ messageId: "SVC4670"
} \ No newline at end of file
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java
index 0a7a009ad4..4ae3e61841 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/api/ActionStatus.java
@@ -27,7 +27,9 @@ public enum ActionStatus {
// CapabilityType related
CAPABILITY_TYPE_ALREADY_EXIST, MISSING_CAPABILITY_TYPE, REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION, IMPORT_DUPLICATE_REQ_CAP_NAME, IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED,
// Resource related
- RESOURCE_NOT_FOUND, MISSING_DERIVED_FROM_TEMPLATE, PARENT_RESOURCE_NOT_FOUND, PARENT_RESOURCE_DOES_NOT_EXTEND, INVALID_DEFAULT_VALUE, INVALID_COMPLEX_DEFAULT_VALUE, MULTIPLE_PARENT_RESOURCE_FOUND, INVALID_RESOURCE_PAYLOAD, INVALID_TOSCA_FILE_EXTENSION, INVALID_YAML_FILE, INVALID_TOSCA_TEMPLATE, NOT_RESOURCE_TOSCA_TEMPLATE, NOT_SINGLE_RESOURCE, INVALID_RESOURCE_NAMESPACE, RESOURCE_ALREADY_EXISTS, INVALID_RESOURCE_CHECKSUM, RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES, NO_ASSETS_FOUND, GENERIC_TYPE_NOT_FOUND, TOSCA_PARSE_ERROR,
+ RESOURCE_NOT_FOUND, MISSING_DERIVED_FROM_TEMPLATE, PARENT_RESOURCE_NOT_FOUND, PARENT_RESOURCE_DOES_NOT_EXTEND, INVALID_DEFAULT_VALUE, INVALID_COMPLEX_DEFAULT_VALUE, MULTIPLE_PARENT_RESOURCE_FOUND, INVALID_RESOURCE_PAYLOAD, INVALID_TOSCA_FILE_EXTENSION, INVALID_YAML_FILE, INVALID_TOSCA_TEMPLATE, NOT_RESOURCE_TOSCA_TEMPLATE, NOT_SINGLE_RESOURCE, INVALID_RESOURCE_NAMESPACE, RESOURCE_ALREADY_EXISTS, INVALID_RESOURCE_CHECKSUM, RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES, NO_ASSETS_FOUND, GENERIC_TYPE_NOT_FOUND,INVALID_RESOURCE_TYPE, TOSCA_PARSE_ERROR,
+ // Service related
+ SERVICE_TYPE_EXCEEDS_LIMIT, INVALID_SERVICE_TYPE, SERVICE_ROLE_EXCEEDS_LIMIT, INVALID_SERVICE_ROLE,
// Component name related
COMPONENT_NAME_ALREADY_EXIST, COMPONENT_NAME_EXCEEDS_LIMIT, MISSING_COMPONENT_NAME, INVALID_COMPONENT_NAME,
// Component description related
@@ -39,7 +41,7 @@ public enum ActionStatus {
// contactId related
COMPONENT_MISSING_CONTACT, COMPONENT_INVALID_CONTACT,
// Vendor related
- VENDOR_NAME_EXCEEDS_LIMIT, VENDOR_RELEASE_EXCEEDS_LIMIT, INVALID_VENDOR_NAME, INVALID_VENDOR_RELEASE, MISSING_VENDOR_NAME, MISSING_VENDOR_RELEASE,
+ VENDOR_NAME_EXCEEDS_LIMIT, VENDOR_RELEASE_EXCEEDS_LIMIT, INVALID_VENDOR_NAME, INVALID_VENDOR_RELEASE, MISSING_VENDOR_NAME, MISSING_VENDOR_RELEASE, RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT, INVALID_RESOURCE_VENDOR_MODEL_NUMBER,
// Category related
COMPONENT_MISSING_CATEGORY, COMPONENT_INVALID_CATEGORY, COMPONENT_ELEMENT_INVALID_NAME_FORMAT, COMPONENT_ELEMENT_INVALID_NAME_LENGTH, COMPONENT_CATEGORY_ALREADY_EXISTS, COMPONENT_CATEGORY_NOT_FOUND, COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY, COMPONENT_SUB_CATEGORY_EXISTS_FOR_CATEGORY, COMPONENT_GROUPING_EXISTS_FOR_SUB_CATEGORY,
// Service API URL
@@ -71,7 +73,7 @@ public enum ActionStatus {
GROUP_MEMBER_EMPTY, GROUP_TYPE_ALREADY_EXIST,
// CSAR
- MISSING_CSAR_UUID, CSAR_INVALID, CSAR_INVALID_FORMAT, CSAR_NOT_FOUND, YAML_NOT_FOUND_IN_CSAR, VSP_ALREADY_EXISTS, RESOURCE_LINKED_TO_DIFFERENT_VSP, RESOURCE_FROM_CSAR_NOT_FOUND, AAI_ARTIFACT_GENERATION_FAILED, ASSET_NOT_FOUND_DURING_CSAR_CREATION, ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION, TOSCA_SCHEMA_FILES_NOT_FOUND,
+ MISSING_CSAR_UUID, CSAR_INVALID, CSAR_INVALID_FORMAT, CSAR_NOT_FOUND, YAML_NOT_FOUND_IN_CSAR, VSP_ALREADY_EXISTS, RESOURCE_LINKED_TO_DIFFERENT_VSP, RESOURCE_FROM_CSAR_NOT_FOUND, AAI_ARTIFACT_GENERATION_FAILED, ASSET_NOT_FOUND_DURING_CSAR_CREATION, ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION, TOSCA_SCHEMA_FILES_NOT_FOUND, ARTIFACT_NAME_INVALID,
// Group
GROUP_HAS_CYCLIC_DEPENDENCY, GROUP_ALREADY_EXIST, GROUP_TYPE_IS_INVALID, GROUP_MISSING_GROUP_TYPE, GROUP_INVALID_COMPONENT_INSTANCE, GROUP_INVALID_TOSCA_NAME_OF_COMPONENT_INSTANCE, GROUP_IS_MISSING, GROUP_ARTIFACT_ALREADY_ASSOCIATED, GROUP_ARTIFACT_ALREADY_DISSOCIATED, GROUP_PROPERTY_NOT_FOUND, INVALID_VF_MODULE_NAME, INVALID_VF_MODULE_NAME_MODIFICATION, INVALID_VF_MODULE_TYPE,
@@ -86,6 +88,7 @@ public enum ActionStatus {
// Inputs
INPUT_IS_NOT_CHILD_OF_COMPONENT,
+ CFVC_LOOP_DETECTED,
;
}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactAccessor.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactAccessor.java
new file mode 100644
index 0000000000..61e23b8de2
--- /dev/null
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactAccessor.java
@@ -0,0 +1,19 @@
+package org.openecomp.sdc.be.dao.cassandra;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.mapping.Result;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Param;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.sdc.be.resources.data.auditing.DistributionStatusEvent;
+
+
+/**
+ * Created by chaya on 7/5/2017.
+ */
+@Accessor
+public interface ArtifactAccessor {
+ // ***** get the number of artifacts with a specific id
+ @Query("SELECT COUNT(*) FROM sdcartifact.resources WHERE ID = :uniqueId")
+ ResultSet getNumOfArtifactsById(@Param("uniqueId") String uniqueId);
+}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java
index a9a4a99de1..5b37d3df2c 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/ArtifactCassandraDao.java
@@ -22,6 +22,7 @@ package org.openecomp.sdc.be.dao.cassandra;
import javax.annotation.PostConstruct;
+import com.datastax.driver.core.ResultSet;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.resources.data.ESArtifactData;
import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
@@ -38,6 +39,7 @@ import fj.data.Either;
public class ArtifactCassandraDao extends CassandraDao {
private static Logger logger = LoggerFactory.getLogger(ArtifactCassandraDao.class.getName());
+ private ArtifactAccessor artifactAccessor;
public ArtifactCassandraDao() {
super();
@@ -52,6 +54,7 @@ public class ArtifactCassandraDao extends CassandraDao {
if (result.isLeft()) {
session = result.left().value().left;
manager = result.left().value().right;
+ artifactAccessor = manager.createAccessor(ArtifactAccessor.class);
logger.info("** ArtifactCassandraDao created");
} else {
logger.info("** ArtifactCassandraDao failed");
@@ -107,4 +110,12 @@ public class ArtifactCassandraDao extends CassandraDao {
return super.isTableEmpty(tableName);
}
+ public Either<Long, CassandraOperationStatus> getCountOfArtifactById(String uniqeId) {
+ ResultSet artifactCount = artifactAccessor.getNumOfArtifactsById(uniqeId);
+ if (artifactCount == null) {
+ return Either.right(CassandraOperationStatus.NOT_FOUND);
+ }
+ return Either.left(artifactCount.one().getLong(0));
+ }
+
}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksAccessor.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksAccessor.java
new file mode 100644
index 0000000000..e548a594d9
--- /dev/null
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksAccessor.java
@@ -0,0 +1,17 @@
+package org.openecomp.sdc.be.dao.cassandra;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Param;
+import com.datastax.driver.mapping.annotations.Query;
+
+@Accessor
+public interface MigrationTasksAccessor {
+
+ @Query("SELECT minor_version FROM sdcrepository.migrationTasks WHERE major_version = :majorVersion order by minor_version desc limit 1")
+ ResultSet getLatestMinorVersion(@Param("majorVersion") Long majorVersion);
+
+ @Query("DELETE FROM sdcrepository.migrationTasks WHERE major_version = :majorVersion")
+ void deleteTasksForMajorVersion(@Param("majorVersion") Long majorVersion);
+
+}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksDao.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksDao.java
new file mode 100644
index 0000000000..89ad9662fa
--- /dev/null
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/MigrationTasksDao.java
@@ -0,0 +1,73 @@
+package org.openecomp.sdc.be.dao.cassandra;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+import com.datastax.driver.core.Session;
+import com.datastax.driver.mapping.Mapper;
+import com.datastax.driver.mapping.MappingManager;
+import fj.data.Either;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.resources.data.MigrationTaskEntry;
+import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.math.BigInteger;
+
+@Component("sdc-migration-tasks-cassandra-dao")
+public class MigrationTasksDao extends CassandraDao {
+
+ private static Logger logger = LoggerFactory.getLogger(MigrationTasksDao.class.getName());
+ private MigrationTasksAccessor migrationTasksAccessor;
+ private Mapper<MigrationTaskEntry> migrationTaskMapper;
+
+ @PostConstruct
+ public void init() {
+ String keyspace = AuditingTypesConstants.REPO_KEYSPACE;
+ if (client.isConnected()) {
+ Either<ImmutablePair<Session, MappingManager>, CassandraOperationStatus> result = client.connect(keyspace);
+ if (result.isLeft()) {
+ session = result.left().value().left;
+ manager = result.left().value().right;
+ migrationTasksAccessor = manager.createAccessor(MigrationTasksAccessor.class);
+ migrationTaskMapper = manager.mapper(MigrationTaskEntry.class);
+ logger.info("** migrationTasksAccessor created");
+ } else {
+ logger.info("** migrationTasksAccessor failed");
+ throw new RuntimeException("Artifact keyspace [" + keyspace + "] failed to connect with error : "
+ + result.right().value());
+ }
+ } else {
+ logger.info("** Cassandra client isn't connected");
+ logger.info("** migrationTasksAccessor created, but not connected");
+ }
+ }
+
+ public BigInteger getLatestMinorVersion(BigInteger majorVersion) {
+ try {
+ ResultSet latestMinorVersion = migrationTasksAccessor.getLatestMinorVersion(majorVersion.longValue());
+ Row minorVersionRow = latestMinorVersion.one();
+ return minorVersionRow == null ? BigInteger.valueOf(Long.MIN_VALUE) : BigInteger.valueOf(minorVersionRow.getLong(0));
+ } catch (RuntimeException e) {
+ logger.error("failed to get latest minor version for major version {}", majorVersion, e);
+ throw e;
+ }
+ }
+
+ public void deleteAllTasksForVersion(BigInteger majorVersion) {
+ try {
+ migrationTasksAccessor.deleteTasksForMajorVersion(majorVersion.longValue());
+ } catch (RuntimeException e) {
+ logger.error("failed to delete tasks for major version {}", majorVersion, e);
+ throw e;
+ }
+ }
+
+ public void createMigrationTask(MigrationTaskEntry migrationTask) {
+ migrationTaskMapper.save(migrationTask);
+ }
+
+
+}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/Table.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/Table.java
index 8fb594f2ff..f6fd29bd1f 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/Table.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/Table.java
@@ -20,24 +20,7 @@
package org.openecomp.sdc.be.dao.cassandra.schema;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.ArtifactTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.AuthEventTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.CategoryEventTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.ComponentCacheTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.ConsumerEventTableDefinition;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.DistribDeployEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.DistribDownloadEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.DistribEngineEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.DistribNotifEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.DistribStatusEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.ExternalApiEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.GetCatHierEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.GetUebClusterEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.GetUsersListEventTableDesc;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.ResAdminEventTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.SdcSchemaFilesTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.UserAccessEventTableDescription;
-import org.openecomp.sdc.be.dao.cassandra.schema.tables.UserAdminEventTableDescription;
+import org.openecomp.sdc.be.dao.cassandra.schema.tables.*;
public enum Table {
@@ -58,8 +41,8 @@ public enum Table {
GET_CATEGORY_HIERARCHY_EVENT(new GetCatHierEventTableDesc()),
EXTERNAL_API_EVENT(new ExternalApiEventTableDesc()),
COMPONENT_CACHE(new ComponentCacheTableDescription()),
- SDC_SCHEMA_FILES(new SdcSchemaFilesTableDescription());
-
+ SDC_SCHEMA_FILES(new SdcSchemaFilesTableDescription()),
+ SDC_REPO(new MigrationTasksTableDescription());
ITableDescription tableDescription;
Table(ITableDescription tableDescription) {
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/tables/MigrationTasksTableDescription.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/tables/MigrationTasksTableDescription.java
new file mode 100644
index 0000000000..f7506f77e1
--- /dev/null
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/cassandra/schema/tables/MigrationTasksTableDescription.java
@@ -0,0 +1,81 @@
+package org.openecomp.sdc.be.dao.cassandra.schema.tables;
+
+import com.datastax.driver.core.DataType;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.dao.cassandra.schema.ITableDescription;
+import org.openecomp.sdc.be.resources.data.auditing.AuditingTypesConstants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.openecomp.sdc.be.dao.cassandra.schema.tables.MigrationTasksTableDescription.SdcRepoFieldsDescription.MAJOR_VERSION;
+import static org.openecomp.sdc.be.dao.cassandra.schema.tables.MigrationTasksTableDescription.SdcRepoFieldsDescription.MINOR_VERSION;
+
+public class MigrationTasksTableDescription implements ITableDescription {
+
+ private static final String MIGRATION_TASKS_TABLE = "migrationTasks";
+
+ @Override
+ public List<ImmutablePair<String, DataType>> primaryKeys() {
+ return Collections.singletonList(ImmutablePair.of(MAJOR_VERSION.getFieldName(), MAJOR_VERSION.getFieldType()));
+ }
+
+ @Override
+ public List<ImmutablePair<String, DataType>> clusteringKeys() {
+ return Collections.singletonList(ImmutablePair.of(MINOR_VERSION.getFieldName(), MINOR_VERSION.getFieldType()));
+ }
+
+ @Override
+ public Map<String, ImmutablePair<DataType, Boolean>> getColumnDescription() {
+ Map<String, ImmutablePair<DataType, Boolean>> columns = new HashMap<>();
+ Arrays.stream(SdcRepoFieldsDescription.values())
+ .filter(column -> !column.equals(MAJOR_VERSION) && !column.equals(MINOR_VERSION))
+ .forEach(column -> columns.put(column.getFieldName(), ImmutablePair.of(column.getFieldType(), column.isIndexed())));
+ return columns;
+ }
+
+ @Override
+ public String getKeyspace() {
+ return AuditingTypesConstants.REPO_KEYSPACE;
+ }
+
+ @Override
+ public String getTableName() {
+ return MIGRATION_TASKS_TABLE;
+ }
+
+ enum SdcRepoFieldsDescription {
+ MAJOR_VERSION("major_version", DataType.bigint(), true),
+ MINOR_VERSION("minor_version", DataType.bigint(), false),
+ TIMESTAMP("timestamp", DataType.timestamp(), false),
+ NAME("task_name", DataType.varchar(), false),
+ STATUS("task_status", DataType.varchar(), false),
+ MESSAGE("msg", DataType.varchar(), false),
+ EXECUTION_TIME("execution_time", DataType.cdouble(), false);
+
+ private String fieldName;
+ private boolean isIndexed;
+ private DataType fieldType;
+
+ SdcRepoFieldsDescription(String fieldName, DataType dataType, boolean indexed ) {
+ this.fieldName = fieldName;
+ this.fieldType = dataType;
+ this.isIndexed = indexed;
+ }
+
+ public String getFieldName() {
+ return fieldName;
+ }
+
+ public boolean isIndexed() {
+ return isIndexed;
+ }
+
+ public DataType getFieldType() {
+ return fieldType;
+ }
+ }
+}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/TitanDao.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/TitanDao.java
index 2d9c029ea9..387b413dd5 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/TitanDao.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/TitanDao.java
@@ -456,7 +456,11 @@ public class TitanDao {
}
if (hasNotProps != null && !hasNotProps.isEmpty()) {
for (Map.Entry<GraphPropertyEnum, Object> entry : hasNotProps.entrySet()) {
- query = query.hasNot(entry.getKey().getProperty(), entry.getValue());
+ if(entry.getValue() instanceof List){
+ buildMultipleNegateQueryFromList(entry, query);
+ }else{
+ query = query.hasNot(entry.getKey().getProperty(), entry.getValue());
+ }
}
}
Iterable<TitanVertex> vertices = query.vertices();
@@ -499,6 +503,15 @@ public class TitanDao {
}
+
+ private void buildMultipleNegateQueryFromList(Map.Entry<GraphPropertyEnum, Object> entry, TitanGraphQuery query){
+ List<Object> negateList = (List<Object>) entry.getValue();
+ for (Object listItem : negateList) {
+ query.hasNot(entry.getKey().getProperty(), listItem);
+ }
+ }
+
+
/**
*
* @param parentVertex
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/types/EdgeLabelEnum.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/types/EdgeLabelEnum.java
index 001544c4a4..3018915066 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/types/EdgeLabelEnum.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/types/EdgeLabelEnum.java
@@ -67,4 +67,8 @@ public enum EdgeLabelEnum {
}
return null;
}
+
+ public boolean isInstanceArtifactsLabel() {
+ return this.equals(INSTANCE_ARTIFACTS) || this.equals(INST_DEPLOYMENT_ARTIFACTS);
+ }
}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/MigrationTaskEntry.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/MigrationTaskEntry.java
new file mode 100644
index 0000000000..08376b616f
--- /dev/null
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/MigrationTaskEntry.java
@@ -0,0 +1,92 @@
+package org.openecomp.sdc.be.resources.data;
+
+import com.datastax.driver.mapping.annotations.ClusteringColumn;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+
+import java.math.BigInteger;
+import java.util.Date;
+
+@Table(keyspace = "sdcrepository", name = "migrationTasks")
+public class MigrationTaskEntry {
+
+ @PartitionKey(0)
+ @Column(name = "major_version")
+ private Long majorVersion;
+
+ @ClusteringColumn
+ @Column(name = "minor_version")
+ private Long minorVersion;
+
+ @Column(name = "timestamp")
+ private Date timestamp;
+
+ @Column(name = "task_name")
+ private String taskName;
+
+ @Column(name = "execution_time")
+ private double executionTime;
+
+ @Column(name = "task_status")
+ private String taskStatus;
+
+ @Column(name = "msg")
+ private String message;
+
+ public void setMajorVersion(Long majorVersion) {
+ this.majorVersion = majorVersion;
+ }
+
+ public void setMinorVersion(Long minorVersion) {
+ this.minorVersion = minorVersion;
+ }
+
+ public void setTimestamp(Date timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public void setTaskStatus(String taskStatus) {
+ this.taskStatus = taskStatus;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public void setExecutionTime(double executionTime) {
+ this.executionTime = executionTime;
+ }
+
+ public Long getMajorVersion() {
+ return majorVersion;
+ }
+
+ public Long getMinorVersion() {
+ return minorVersion;
+ }
+
+ public Date getTimestamp() {
+ return timestamp;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public String getTaskStatus() {
+ return taskStatus;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public double getExecutionTime() {
+ return executionTime;
+ }
+}
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/auditing/AuditingTypesConstants.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/auditing/AuditingTypesConstants.java
index 01774ca63f..9f25932b37 100644
--- a/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/auditing/AuditingTypesConstants.java
+++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/auditing/AuditingTypesConstants.java
@@ -22,28 +22,29 @@ package org.openecomp.sdc.be.resources.data.auditing;
public interface AuditingTypesConstants {
- public static final String ARTIFACT_KEYSPACE = "sdcartifact";
- public static final String AUDIT_KEYSPACE = "sdcaudit";
- public static final String COMPONENT_KEYSPACE = "sdccomponent";
- public static final String TITAN_KEYSPACE = "titan";
+ String ARTIFACT_KEYSPACE = "sdcartifact";
+ String REPO_KEYSPACE = "sdcrepository";
+ String AUDIT_KEYSPACE = "sdcaudit";
+ String COMPONENT_KEYSPACE = "sdccomponent";
+ String TITAN_KEYSPACE = "titan";
- public static final String USER_ADMIN_EVENT_TYPE = "useradminevent";
- public static final String USER_ACCESS_EVENT_TYPE = "useraccessevent";
- public static final String RESOURCE_ADMIN_EVENT_TYPE = "resourceadminevent";
- public static final String DISTRIBUTION_DOWNLOAD_EVENT_TYPE = "distributiondownloadevent";
+ String USER_ADMIN_EVENT_TYPE = "useradminevent";
+ String USER_ACCESS_EVENT_TYPE = "useraccessevent";
+ String RESOURCE_ADMIN_EVENT_TYPE = "resourceadminevent";
+ String DISTRIBUTION_DOWNLOAD_EVENT_TYPE = "distributiondownloadevent";
- public static final String DISTRIBUTION_ENGINE_EVENT_TYPE = "distributionengineevent";
- public static final String DISTRIBUTION_NOTIFICATION_EVENT_TYPE = "distributionnotificationevent";
- public static final String DISTRIBUTION_STATUS_EVENT_TYPE = "distributionstatusevent";
- public static final String DISTRIBUTION_DEPLOY_EVENT_TYPE = "distributiondeployevent";
- public static final String DISTRIBUTION_GET_UEB_CLUSTER_EVENT_TYPE = "auditinggetuebclusterevent";
- public static final String DISTRIBUTION_GET_VALID_ARTIFACT_TYPES_EVENT_TYPE = "auditinggetvalidartifacttypesevent";
+ String DISTRIBUTION_ENGINE_EVENT_TYPE = "distributionengineevent";
+ String DISTRIBUTION_NOTIFICATION_EVENT_TYPE = "distributionnotificationevent";
+ String DISTRIBUTION_STATUS_EVENT_TYPE = "distributionstatusevent";
+ String DISTRIBUTION_DEPLOY_EVENT_TYPE = "distributiondeployevent";
+ String DISTRIBUTION_GET_UEB_CLUSTER_EVENT_TYPE = "auditinggetuebclusterevent";
+ String DISTRIBUTION_GET_VALID_ARTIFACT_TYPES_EVENT_TYPE = "auditinggetvalidartifacttypesevent";
- public static final String AUTH_EVENT_TYPE = "authevent";
- public static final String CONSUMER_EVENT_TYPE = "consumerevent";
- public static final String CATEGORY_EVENT_TYPE = "categoryevent";
- public static final String GET_USERS_LIST_EVENT_TYPE = "getuserslistevent";
- public static final String GET_CATEGORY_HIERARCHY_EVENT_TYPE = "getcategoryhierarchyevent";
- public static final String EXTERNAL_API_EVENT_TYPE = "externalapievent";
+ String AUTH_EVENT_TYPE = "authevent";
+ String CONSUMER_EVENT_TYPE = "consumerevent";
+ String CATEGORY_EVENT_TYPE = "categoryevent";
+ String GET_USERS_LIST_EVENT_TYPE = "getuserslistevent";
+ String GET_CATEGORY_HIERARCHY_EVENT_TYPE = "getcategoryhierarchyevent";
+ String EXTERNAL_API_EVENT_TYPE = "externalapievent";
}
diff --git a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java
index b7fce8d912..4ef7c4974e 100644
--- a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java
+++ b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java
@@ -199,9 +199,10 @@ public class HealthCheckService {
healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.FE, HealthCheckStatus.UP,
ExternalConfiguration.getAppVersion(), "OK"));
healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.BE, HealthCheckStatus.DOWN, null, null));
- healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ES, HealthCheckStatus.UNKNOWN, null, null));
healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.TITAN, HealthCheckStatus.UNKNOWN, null, null));
+ healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.CASSANDRA, HealthCheckStatus.UNKNOWN, null, null));
healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.UNKNOWN, null, null));
+ healthCheckInfos.add(new HealthCheckInfo(HealthCheckComponent.ON_BOARDING, HealthCheckStatus.UNKNOWN, null, null));
HealthCheckWrapper hcWrapper = new HealthCheckWrapper(healthCheckInfos, "UNKNOWN", "UNKNOWN");
return hcWrapper;
}
diff --git a/catalog-model/pom.xml b/catalog-model/pom.xml
index a4538fd3db..ef485ae870 100644
--- a/catalog-model/pom.xml
+++ b/catalog-model/pom.xml
@@ -224,7 +224,19 @@
<version>${commons-jci-core.version}</version>
<scope>test</scope>
</dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ <version>1.7.0RC4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito-common</artifactId>
+ <version>1.6.5</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
<build>
<plugins>
<plugin>
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
index 036108e81f..9ffefa6384 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java
@@ -22,9 +22,12 @@ package org.openecomp.sdc.be.model;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.openecomp.sdc.be.config.ConfigurationManager;
@@ -288,6 +291,13 @@ public abstract class Component implements Serializable {
this.deploymentArtifacts = deploymentArtifacts;
}
+ public Map<String, ArtifactDefinition> getAllArtifacts() {
+ HashMap<String, ArtifactDefinition> allArtifacts = new HashMap<>();
+ allArtifacts.putAll(Optional.ofNullable(this.deploymentArtifacts).orElse(Collections.emptyMap()));
+ allArtifacts.putAll(Optional.ofNullable(this.artifacts).orElse(Collections.emptyMap()));
+ return allArtifacts;
+ }
+
public List<CategoryDefinition> getCategories() {
return categories;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstInputsMap.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstInputsMap.java
index 9d016c0799..e436548f60 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstInputsMap.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstInputsMap.java
@@ -31,14 +31,14 @@ public class ComponentInstInputsMap implements Serializable{
*/
private static final long serialVersionUID = 1136631343963488131L;
- Map<String, List<InputDefinition>> componentInstanceInputsMap;
+ Map<String, List<ComponentInstancePropInput>> componentInstanceInputsMap;
Map<String, List<ComponentInstancePropInput>> componentInstanceProperties;
- public Map<String, List<InputDefinition>> getComponentInstanceInputsMap() {
+ public Map<String, List<ComponentInstancePropInput>> getComponentInstanceInputsMap() {
return componentInstanceInputsMap;
}
- public void setComponentInstanceInputsMap(Map<String, List<InputDefinition>> componentInstanceInputsMap) {
+ public void setComponentInstanceInputsMap(Map<String, List<ComponentInstancePropInput>> componentInstanceInputsMap) {
this.componentInstanceInputsMap = componentInstanceInputsMap;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceInput.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceInput.java
index abcac352cc..1ffbede599 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceInput.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceInput.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
-public class ComponentInstanceInput extends InputDefinition implements IComponentInstanceConnectedElement {
+public class ComponentInstanceInput extends InputDefinition implements IComponentInstanceConnectedElement, IPropertyInputCommon {
/**
*
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceProperty.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceProperty.java
index 8bd3a9c809..26c5c02ed5 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceProperty.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/ComponentInstanceProperty.java
@@ -23,11 +23,10 @@ package org.openecomp.sdc.be.model;
import java.io.Serializable;
import java.util.List;
-
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
-public class ComponentInstanceProperty extends PropertyDefinition implements IComponentInstanceConnectedElement, Serializable {
+public class ComponentInstanceProperty extends PropertyDefinition implements IComponentInstanceConnectedElement, IPropertyInputCommon, Serializable {
/**
*
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/CsarInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/CsarInfo.java
new file mode 100644
index 0000000000..575cc68f7f
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/CsarInfo.java
@@ -0,0 +1,89 @@
+package org.openecomp.sdc.be.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.PriorityQueue;
+import java.util.Queue;
+
+public class CsarInfo {
+ String vfResourceName;
+ User modifier;
+ String csarUUID;
+ Map<String, byte[]> csar;
+ Map<String, String> createdNodesToscaResourceNames;
+ Queue<String> cvfcToCreateQueue;
+ boolean isUpdate;
+ Map<String, Resource> createdNodes;
+
+ public CsarInfo(String vfResourceName, User modifier, String csarUUID, Map<String, byte[]> csar, boolean isUpdate){
+ this.vfResourceName = vfResourceName;
+ this.modifier = modifier;
+ this.csarUUID = csarUUID;
+ this.csar = csar;
+ this.createdNodesToscaResourceNames = new HashMap<>();
+ this.cvfcToCreateQueue = new PriorityQueue<>();
+ this.isUpdate = isUpdate;
+ this.createdNodes = new HashMap<>();
+ }
+
+ public String getVfResourceName() {
+ return vfResourceName;
+ }
+
+ public void setVfResourceName(String vfResourceName) {
+ this.vfResourceName = vfResourceName;
+ }
+
+ public User getModifier() {
+ return modifier;
+ }
+
+ public void setModifier(User modifier) {
+ this.modifier = modifier;
+ }
+
+ public String getCsarUUID() {
+ return csarUUID;
+ }
+
+ public void setCsarUUID(String csarUUID) {
+ this.csarUUID = csarUUID;
+ }
+
+ public Map<String, byte[]> getCsar() {
+ return csar;
+ }
+
+ public void setCsar(Map<String, byte[]> csar) {
+ this.csar = csar;
+ }
+
+ public Map<String, String> getCreatedNodesToscaResourceNames() {
+ return createdNodesToscaResourceNames;
+ }
+
+ public void setCreatedNodesToscaResourceNames(Map<String, String> createdNodesToscaResourceNames) {
+ this.createdNodesToscaResourceNames = createdNodesToscaResourceNames;
+ }
+
+ public Queue<String> getCvfcToCreateQueue() {
+ return cvfcToCreateQueue;
+ }
+
+ public void setCvfcToCreateQueue(Queue<String> cvfcToCreateQueue) {
+ this.cvfcToCreateQueue = cvfcToCreateQueue;
+ }
+
+ public boolean isUpdate() {
+ return isUpdate;
+ }
+
+ public void setUpdate(boolean isUpdate) {
+ this.isUpdate = isUpdate;
+ }
+
+ public Map<String, Resource> getCreatedNodes() {
+ return createdNodes;
+ }
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/GroupDefinition.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/GroupDefinition.java
index 167fa2f0a1..625afe4f96 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/GroupDefinition.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/GroupDefinition.java
@@ -80,4 +80,12 @@ public class GroupDefinition extends GroupDataDefinition implements Serializable
}
+ //returns true iff groupName has the same prefix has the resource
+ public boolean isSamePrefix(String resourceName){
+ String name = this.getName();
+ if ( name != null && name.toLowerCase().trim().startsWith(resourceName.toLowerCase()))
+ return true;
+ return false;
+ }
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/IComponentInstanceConnectedElement.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/IComponentInstanceConnectedElement.java
index 86de3a1584..80e898626e 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/IComponentInstanceConnectedElement.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/IComponentInstanceConnectedElement.java
@@ -26,4 +26,9 @@ public interface IComponentInstanceConnectedElement {
String getValueUniqueUid();
void setValueUniqueUid(String value);
+
+ String getComponentInstanceName();
+ void setComponentInstanceName(String componentInstanceName);
+ String getComponentInstanceId();
+ void setComponentInstanceId(String componentInstanceId);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/IPropertyInputCommon.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/IPropertyInputCommon.java
new file mode 100644
index 0000000000..2f7a580bb6
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/IPropertyInputCommon.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdc.be.model;
+
+import java.util.List;
+
+import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
+import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
+
+public interface IPropertyInputCommon {
+
+ String getType();
+ SchemaDefinition getSchema();
+ List<PropertyRule> getRules();
+ String getName();
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/NodeTypeInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/NodeTypeInfo.java
new file mode 100644
index 0000000000..1da3b8de1c
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/NodeTypeInfo.java
@@ -0,0 +1,55 @@
+package org.openecomp.sdc.be.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class NodeTypeInfo {
+ String type;
+ String templateFileName;
+ List<String> derivedFrom;
+ boolean isNested;
+ Map<String, Object> mappedToscaTemplate;
+
+ public NodeTypeInfo getUnmarkedCopy(){
+ NodeTypeInfo unmarked = new NodeTypeInfo();
+ unmarked.type = this.type;
+ unmarked.templateFileName = this.templateFileName;
+ unmarked.derivedFrom = this.derivedFrom;
+ unmarked.isNested = false;
+ unmarked.mappedToscaTemplate = this.mappedToscaTemplate;
+ return unmarked;
+ }
+
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getTemplateFileName() {
+ return templateFileName;
+ }
+ public void setTemplateFileName(String templateFileName) {
+ this.templateFileName = templateFileName;
+ }
+ public List<String> getDerivedFrom() {
+ return derivedFrom;
+ }
+ public void setDerivedFrom(List<String> derivedFrom) {
+ this.derivedFrom = derivedFrom;
+ }
+ public boolean isNested() {
+ return isNested;
+ }
+ public void setNested(boolean isNested) {
+ this.isNested = isNested;
+ }
+
+ public Map<String, Object> getMappedToscaTemplate() {
+ return mappedToscaTemplate;
+ }
+
+ public void setMappedToscaTemplate(Map<String, Object> mappedToscaTemplate) {
+ this.mappedToscaTemplate = mappedToscaTemplate;
+ }
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/RequirementAndRelationshipPair.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/RequirementAndRelationshipPair.java
index afb013d29a..a3e4f48c51 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/RequirementAndRelationshipPair.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/RequirementAndRelationshipPair.java
@@ -146,7 +146,7 @@ public class RequirementAndRelationshipPair implements Serializable {
if ( !savedRelation.getRequirementId().equals(this.getRequirementUid()) ){
return false;
}
- if ( !savedRelation.getCapabiltyId().equals(this.getCapabilityUid()) ){
+ if ( !savedRelation.getCapabilityId().equals(this.getCapabilityUid()) ){
return false;
}
if ( !savedRelation.getRequirement().equals(this.getRequirement()) ){
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java
index a9c6b44324..45fc5f62b3 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java
@@ -255,6 +255,11 @@ public class Resource extends Component implements Serializable {
((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition())
.setVendorRelease(vendorRelease);
}
+
+ public void setResourceVendorModelNumber(String resourceVendorModelNumber){
+ ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition()).
+ setResourceVendorModelNumber(resourceVendorModelNumber);
+ }
public String getVendorName() {
return ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition())
@@ -266,6 +271,11 @@ public class Resource extends Component implements Serializable {
.getVendorRelease();
}
+ public String getResourceVendorModelNumber(){
+ return ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition())
+ .getResourceVendorModelNumber();
+ }
+
@Override
public String fetchGenericTypeToscaNameFromConfig(){
String result = super.fetchGenericTypeToscaNameFromConfig();
@@ -282,7 +292,7 @@ public class Resource extends Component implements Serializable {
@Override
public boolean shouldGenerateInputs(){
//TODO add complex VFC condition when supported
- return ResourceTypeEnum.VF == this.getResourceType();
+ return ResourceTypeEnum.VF == this.getResourceType() || ResourceTypeEnum.CVFC == this.getResourceType() || ResourceTypeEnum.PNF == this.getResourceType();
}
@Override
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Service.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Service.java
index 37a42bd581..cdd171184c 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Service.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Service.java
@@ -85,10 +85,26 @@ public class Service extends Component {
public void setNamingPolicy(String namingPolicy) {
getServiceMetadataDefinition().setNamingPolicy(namingPolicy);
}
-
+
public String getNamingPolicy() {
return getServiceMetadataDefinition().getNamingPolicy();
}
+
+ public void setServiceType(String serviceType){
+ getServiceMetadataDefinition().setServiceType(serviceType);
+ }
+
+ public String getServiceType(){
+ return getServiceMetadataDefinition().getServiceType();
+ }
+
+ public void setServiceRole(String serviceRole){
+ getServiceMetadataDefinition().setServiceRole(serviceRole);
+ }
+
+ public String getServiceRole(){
+ return getServiceMetadataDefinition().getServiceRole();
+ }
private ServiceMetadataDataDefinition getServiceMetadataDefinition() {
return (ServiceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadComponentInstanceInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadComponentInstanceInfo.java
index 329e816ea7..eb707787c0 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadComponentInstanceInfo.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadComponentInstanceInfo.java
@@ -29,6 +29,8 @@ public class UploadComponentInstanceInfo {
private Map<String, List<UploadCapInfo>> capabilities;
private Map<String, List<UploadReqInfo>> requirements;
private Map<String, List<UploadPropInfo>> properties;
+ private Map<String, String> capabilitiesNamesToUpdate;
+ private Map<String, String> requirementsNamesToUpdate;
public Map<String, List<UploadPropInfo>> getProperties() {
return properties;
@@ -70,4 +72,20 @@ public class UploadComponentInstanceInfo {
this.requirements = requirements;
}
+ public Map<String, String> getCapabilitiesNamesToUpdate() {
+ return capabilitiesNamesToUpdate;
+ }
+
+ public void setCapabilitiesNamesToUpdate(Map<String, String> capabilitiesNamesToUpdate) {
+ this.capabilitiesNamesToUpdate = capabilitiesNamesToUpdate;
+ }
+
+ public Map<String, String> getRequirementsNamesToUpdate() {
+ return requirementsNamesToUpdate;
+ }
+
+ public void setRequirementsNamesToUpdate(Map<String, String> requirementsNamesToUpdate) {
+ this.requirementsNamesToUpdate = requirementsNamesToUpdate;
+ }
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperations.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperations.java
index e2766b1092..b8d8cb39de 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperations.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperations.java
@@ -181,6 +181,27 @@ public class ArtifactsOperations extends BaseOperation {
return Either.left(resMap);
}
+ /**
+ *
+ * @param parentId the id of the instance container
+ * @param instanceId the id of the instance of which to return its artifacts
+ * @return instance and instance deployment artifacts mapped by artifact label name
+ */
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getAllInstanceArtifacts(String parentId, String instanceId) {
+ Map<String, ArtifactDataDefinition> resMap = new HashMap<>();
+ Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> instArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+ if (instArtifacts.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(instArtifacts.right().value()));
+ }
+ Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> deployInstArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+ if (deployInstArtifacts.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(deployInstArtifacts.right().value()));
+ }
+ resMap.putAll(instArtifacts.left().value());
+ resMap.putAll(deployInstArtifacts.left().value());
+ return Either.left(convertArtifactMapToArtifactDefinitionMap(resMap));
+ }
+
public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getArtifacts(String parentId) {
Either<Map<String, ArtifactDefinition>, TitanOperationStatus> foundArtifact = null;
@@ -384,36 +405,36 @@ public class ArtifactsOperations extends BaseOperation {
}
private Either<Map<String, ArtifactDefinition>, TitanOperationStatus> getArtifactByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+ Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> artifactsEither = getArtifactsDataByLabel(parentId, instanceId, edgeLabelEnum);
+ if (artifactsEither.isRight()) {
+ log.debug("failed to fetch {} for tosca element with id {}, error {}", edgeLabelEnum, parentId, artifactsEither.right().value());
+ return Either.right(artifactsEither.right().value());
+ }
+ Map<String, ArtifactDataDefinition> artifactDataMap = artifactsEither.left().value();
+ return Either.left(convertArtifactMapToArtifactDefinitionMap(artifactDataMap));
+ }
- Map<String, ArtifactDefinition> artMap = null;
- Map<String, ArtifactDataDefinition> artifactDataMap = null;
+ private Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> getArtifactsDataByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+ return edgeLabelEnum.isInstanceArtifactsLabel() ? getInstanceArtifactsByLabel(parentId, instanceId, edgeLabelEnum) : getDataFromGraph(parentId, edgeLabelEnum);
+ }
- if (edgeLabelEnum != EdgeLabelEnum.INSTANCE_ARTIFACTS) {
- Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> resultEither = getDataFromGraph(parentId, edgeLabelEnum);
- if (resultEither.isRight()) {
- log.debug("failed to fetch {} for tosca element with id {}, error {}", edgeLabelEnum, parentId, resultEither.right().value());
- return Either.right(resultEither.right().value());
- }
- artifactDataMap = resultEither.left().value();
- } else {
- Either<Map<String, MapArtifactDataDefinition>, TitanOperationStatus> resultEither = getDataFromGraph(parentId, edgeLabelEnum);
- if (resultEither.isRight()) {
- log.debug("failed to fetch {} for tosca element with id {}, error {}", edgeLabelEnum, parentId, resultEither.right().value());
- return Either.right(resultEither.right().value());
- }
- Map<String, MapArtifactDataDefinition> mapArtifacts = resultEither.left().value();
- MapArtifactDataDefinition artifactPerInstance = mapArtifacts.get(instanceId);
- if (artifactPerInstance != null) {
- artifactDataMap = artifactPerInstance.getMapToscaDataDefinition();
- }
- }
+ private Map<String, ArtifactDefinition> convertArtifactMapToArtifactDefinitionMap(Map<String, ArtifactDataDefinition> artifactDataMap) {
+ Map<String, ArtifactDefinition> artMap = new HashMap<>();
if (artifactDataMap != null && !artifactDataMap.isEmpty()) {
- artMap = artifactDataMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> convertArtifactDataToArtifactDefinition(null, e.getValue())));
- } else {
- artMap = new HashMap<>();
+ artMap = artifactDataMap.entrySet().stream().collect(Collectors.toMap(Entry::getKey, e -> convertArtifactDataToArtifactDefinition(null, e.getValue())));
}
- return Either.left(artMap);
+ return artMap;
+ }
+ private Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> getInstanceArtifactsByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+ Either<Map<String, MapArtifactDataDefinition>, TitanOperationStatus> resultEither = getDataFromGraph(parentId, edgeLabelEnum);
+ if (resultEither.isRight()) {
+ log.debug("failed to fetch {} for tosca element with id {}, error {}", edgeLabelEnum, parentId, resultEither.right().value());
+ return Either.right(resultEither.right().value());
+ }
+ Map<String, MapArtifactDataDefinition> mapArtifacts = resultEither.left().value();
+ MapArtifactDataDefinition artifactPerInstance = mapArtifacts.get(instanceId);
+ return artifactPerInstance != null ? Either.left(artifactPerInstance.getMapToscaDataDefinition()) : Either.left(new HashMap<>());
}
private Triple<EdgeLabelEnum, Boolean, VertexTypeEnum> getEdgeLabelEnumFromArtifactGroupType(ArtifactGroupTypeEnum groupType, NodeTypeEnum nodeType) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/BaseOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/BaseOperation.java
index 69ac568ee9..0b60a07a28 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/BaseOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/BaseOperation.java
@@ -1081,12 +1081,10 @@ public abstract class BaseOperation {
*
* @param toscaElementUid
* @param edgeLabel
- * @param vertexLabel
* @param uniqueKeys
- * @param mapKeyField
* @return
*/
- public StorageOperationStatus deleteToscaDataElements(String toscaElementUid, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexLabel, List<String> uniqueKeys, JsonPresentationFields mapKeyField) {
+ public StorageOperationStatus deleteToscaDataElements(String toscaElementUid, EdgeLabelEnum edgeLabel, List<String> uniqueKeys) {
StorageOperationStatus statusRes = StorageOperationStatus.OK;
Either<GraphVertex, TitanOperationStatus> getToscaElementRes;
@@ -1098,7 +1096,7 @@ public abstract class BaseOperation {
statusRes = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
}
if (statusRes == StorageOperationStatus.OK) {
- statusRes = deleteToscaDataElements(getToscaElementRes.left().value(), edgeLabel, vertexLabel, uniqueKeys, mapKeyField);
+ statusRes = deleteToscaDataElements(getToscaElementRes.left().value(), edgeLabel, uniqueKeys);
}
return statusRes;
}
@@ -1219,25 +1217,22 @@ public abstract class BaseOperation {
List<String> uniqueKeys = new ArrayList<>();
uniqueKeys.add(uniqueKey);
- return deleteToscaDataElements(toscaElement, edgeLabel, vertexLabel, uniqueKeys, mapKeyField);
+ return deleteToscaDataElements(toscaElement, edgeLabel, uniqueKeys);
}
@SuppressWarnings("unchecked")
- /**
- * Deletes tosca data elements belonging to tosca element according label
- *
- * @param toscaElement
- * @param edgeLabel
- * @param vertexLabel
- * @param uniqueKeys
- * @param mapKeyField
- * @return
- */
- public StorageOperationStatus deleteToscaDataElements(GraphVertex toscaElement, EdgeLabelEnum edgeLabel, VertexTypeEnum vertexLabel, List<String> uniqueKeys, JsonPresentationFields mapKeyField) {
+/**
+ * Deletes tosca data elements belonging to tosca element according label
+ * @param toscaElement
+ * @param edgeLabel
+ * @param uniqueKeys
+ * @return
+ */
+ public StorageOperationStatus deleteToscaDataElements(GraphVertex toscaElement, EdgeLabelEnum edgeLabel, List<String> uniqueKeys) {
StorageOperationStatus result = null;
GraphVertex toscaDataVertex;
- Map<String, ToscaDataDefinition> existingToscaDataMap = null;
+ Map<String, ToscaDataDefinition> existingToscaDataMap;
Either<GraphVertex, TitanOperationStatus> toscaDataVertexRes = titanDao.getChildVertex(toscaElement, edgeLabel, JsonParseFlagEnum.ParseJson);
if (toscaDataVertexRes.isRight()) {
TitanOperationStatus status = toscaDataVertexRes.right().value();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/GroupsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/GroupsOperation.java
index 737c1c2d40..5f7502e7ce 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/GroupsOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/GroupsOperation.java
@@ -139,7 +139,7 @@ public class GroupsOperation extends BaseOperation {
}
if (result == null) {
List<String> groupName = groups.stream().map(g -> g.getName()).collect(Collectors.toList());
- status = deleteToscaDataElements(component.getUniqueId(), EdgeLabelEnum.GROUPS, VertexTypeEnum.GROUPS, groupName, JsonPresentationFields.NAME);
+ status = deleteToscaDataElements(component.getUniqueId(), EdgeLabelEnum.GROUPS, groupName);
if (status != StorageOperationStatus.OK) {
result = Either.right(status);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/NodeTemplateOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/NodeTemplateOperation.java
index 29247996a5..66d26c748f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/NodeTemplateOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/NodeTemplateOperation.java
@@ -37,8 +37,6 @@ import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
-import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.apache.tinkerpop.gremlin.structure.Edge;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
@@ -67,12 +65,10 @@ import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.ComponentInstanceInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
-import org.openecomp.sdc.be.model.DistributionStatusEnum;
import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupInstance;
import org.openecomp.sdc.be.model.RelationshipImpl;
@@ -598,26 +594,8 @@ public class NodeTemplateOperation extends BaseOperation {
if (status != StorageOperationStatus.OK) {
return status;
}
- status = addInstanceDeploymentArtifacts(originNodeType, componentInstance, updatedContainerVertex, user, envType);
- if (status != StorageOperationStatus.OK) {
- return status;
- }
+
return addCalculatedCapReqFromNodeType(originNodeType, componentInstance, updatedContainerVertex);
-
- }
-
- private StorageOperationStatus addInstanceDeploymentArtifacts(ToscaElement originNodeType, ComponentInstanceDataDefinition componentInstance, GraphVertex updatedContainerVertex, User user, String envType) {
- Map<String, ArtifactDataDefinition> deploymentArtifacts = originNodeType.getDeploymentArtifacts();
- MapArtifactDataDefinition instArtifacts = prepareInstDeploymentArtifactPerInstance(deploymentArtifacts, componentInstance.getUniqueId(), user, envType);
- if (instArtifacts != null) {
- StorageOperationStatus calculatedResult = addToscaDataDeepElementsBlockToToscaElement(updatedContainerVertex, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS, VertexTypeEnum.INST_DEPLOYMENT_ARTIFACTS, instArtifacts,
- componentInstance.getUniqueId());
-
- if (calculatedResult != StorageOperationStatus.OK) {
- return calculatedResult;
- }
- }
- return StorageOperationStatus.OK;
}
public MapArtifactDataDefinition prepareInstDeploymentArtifactPerInstance(Map<String, ArtifactDataDefinition> deploymentArtifacts, String componentInstanceId, User user, String envType) {
@@ -867,10 +845,8 @@ public class NodeTemplateOperation extends BaseOperation {
dataDefinition.setComponentVersion((String) originToscaElement.getMetadataValue(JsonPresentationFields.VERSION));
if (StringUtils.isEmpty(dataDefinition.getComponentName()) && originToscaElement != null)
dataDefinition.setComponentName((String) originToscaElement.getMetadataValue(JsonPresentationFields.NAME));
-// if (StringUtils.isEmpty(dataDefinition.getToscaComponentName()) && originToscaElement != null)
-
- dataDefinition.setToscaComponentName((String) originToscaElement.getMetadataValue(JsonPresentationFields.TOSCA_RESOURCE_NAME));
-
+ if (originToscaElement != null)
+ dataDefinition.setToscaComponentName((String) originToscaElement.getMetadataValue(JsonPresentationFields.TOSCA_RESOURCE_NAME));
if (dataDefinition.getOriginType() == null && originToscaElement != null) {
ResourceTypeEnum resourceType = originToscaElement.getResourceType();
OriginTypeEnum originType = null;
@@ -881,12 +857,18 @@ public class NodeTemplateOperation extends BaseOperation {
case VFC:
originType = OriginTypeEnum.VFC;
break;
+ case CVFC:
+ originType = OriginTypeEnum.CVFC;
+ break;
case VL:
originType = OriginTypeEnum.VL;
break;
case CP:
originType = OriginTypeEnum.CP;
break;
+ case PNF:
+ originType = OriginTypeEnum.PNF;
+ break;
default:
break;
}
@@ -1034,7 +1016,7 @@ public class NodeTemplateOperation extends BaseOperation {
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to update topology template {} with new relations error {}. ", componentId, updateElement.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(updateElement.right().value());
}
- // update cap/req jsons, fullfilled cap/req jsons!!!!!
+ // update cap/req jsons, fulfilled cap/req jsons!!!!!
Either<GraphVertex, TitanOperationStatus> status;
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Update calculated capabilty for container {}", containerV.getUniqueId());
status = updateOrCopyOnUpdate(capResult.left().value().getLeft(), containerV, EdgeLabelEnum.CALCULATED_CAPABILITIES);
@@ -1088,7 +1070,7 @@ public class NodeTemplateOperation extends BaseOperation {
}
GraphVertex containerV = containerVEither.left().value();
- // DE191707 - validatations
+ // DE191707 - validations
Map<String, CompositionDataDefinition> jsonComposition = (Map<String, CompositionDataDefinition>) containerV.getJson();
CompositionDataDefinition compositionDataDefinition = jsonComposition.get(JsonConstantKeysEnum.COMPOSITION.getValue());
Map<String, ComponentInstanceDataDefinition> componentInstances = compositionDataDefinition.getComponentInstances();
@@ -1110,16 +1092,15 @@ public class NodeTemplateOperation extends BaseOperation {
Either<Pair<GraphVertex, Map<String, MapListCapabiltyDataDefinition>>, StorageOperationStatus> capResult = fetchContainerCalculatedCapability(containerV, EdgeLabelEnum.CALCULATED_CAPABILITIES);
if (capResult.isRight()) {
return Either.right(capResult.right().value());
-
}
- Map<String, MapListCapabiltyDataDefinition> calculatedCapabilty = capResult.left().value().getRight();
+ Map<String, MapListCapabiltyDataDefinition> calculatedCapability = capResult.left().value().getRight();
Either<Pair<GraphVertex, Map<String, MapListCapabiltyDataDefinition>>, StorageOperationStatus> capFullResult = fetchContainerCalculatedCapability(containerV, EdgeLabelEnum.FULLFILLED_CAPABILITIES);
if (capResult.isRight()) {
return Either.right(capResult.right().value());
}
- Map<String, MapListCapabiltyDataDefinition> fullFilledCapabilty = capFullResult.left().value().getRight();
+ Map<String, MapListCapabiltyDataDefinition> fulfilledCapability = capFullResult.left().value().getRight();
Either<Pair<GraphVertex, Map<String, MapListRequirementDataDefinition>>, StorageOperationStatus> reqResult = fetchContainerCalculatedRequirement(containerV, EdgeLabelEnum.CALCULATED_REQUIREMENTS);
if (reqResult.isRight()) {
@@ -1131,7 +1112,7 @@ public class NodeTemplateOperation extends BaseOperation {
if (reqResult.isRight()) {
return Either.right(reqResult.right().value());
}
- Map<String, MapListRequirementDataDefinition> fullfilledRequirement = reqFullResult.left().value().getRight();
+ Map<String, MapListRequirementDataDefinition> fulfilledRequirement = reqFullResult.left().value().getRight();
for (RequirementAndRelationshipPair relationPair : relationPairList) {
Iterator<Entry<String, RelationshipInstDataDefinition>> iterator = relations.entrySet().iterator();
@@ -1141,16 +1122,16 @@ public class NodeTemplateOperation extends BaseOperation {
RelationshipInstDataDefinition relationInJson = entryInJson.getValue();
if (relationInJson.getFromId().equals(fromResInstanceUid) && relationInJson.getToId().equals(toResInstanceUid)) {
if (relationPair.equalsTo(relationInJson)) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Remove relation from {} to {} capabilty {} capOwnerId {} reqOwnerId {} ", toResInstanceUid, componentId, relationInJson.getType(),
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Remove relation from {} to {} capability {} capOwnerId {} reqOwnerId {} ", toResInstanceUid, componentId, relationInJson.getType(),
relationInJson.getCapabilityOwnerId(), relationInJson.getRequirementOwnerId());
iterator.remove();
// update calculated cap/req
- StorageOperationStatus status = updateCalculatedCapabiltyAfterDeleteRelation(calculatedCapabilty, fullFilledCapabilty, toResInstanceUid, relationInJson);
+ StorageOperationStatus status = updateCalculatedCapabiltyAfterDeleteRelation(calculatedCapability, fulfilledCapability, toResInstanceUid, relationInJson);
if (status != StorageOperationStatus.OK) {
return Either.right(status);
}
- status = updateCalculatedRequirementsAfterDeleteRelation(calculatedRequirement, fullfilledRequirement, fromResInstanceUid, relationInJson);
+ status = updateCalculatedRequirementsAfterDeleteRelation(calculatedRequirement, fulfilledRequirement, fromResInstanceUid, relationInJson);
if (status != StorageOperationStatus.OK) {
return Either.right(status);
}
@@ -1186,90 +1167,87 @@ public class NodeTemplateOperation extends BaseOperation {
private StorageOperationStatus updateCalculatedRequirementsAfterDeleteRelation(Map<String, MapListRequirementDataDefinition> calculatedRequirement, Map<String, MapListRequirementDataDefinition> fullFilledRequirement, String fromResInstanceUid,
RelationshipInstDataDefinition relation) {
StorageOperationStatus status;
+ String hereIsTheKey = null;
MapListRequirementDataDefinition reqByInstance = calculatedRequirement.get(fromResInstanceUid);
- if (reqByInstance == null) {
- // move from fullfilled
- status = moveFromFullFilledRequirement(calculatedRequirement, fullFilledRequirement, fromResInstanceUid, relation);
+ if (reqByInstance == null || reqByInstance.findKeyByItemUidMatch(relation.getRequirementId()) == null) {
+ // move from fulfilled
+ status = moveFromFullFilledRequirement(calculatedRequirement, fullFilledRequirement, fromResInstanceUid, relation, hereIsTheKey);
} else {
- ListRequirementDataDefinition reqByType = reqByInstance.findByKey(relation.getType());
- if (reqByType == null) {
- // move from fullfilled
- status = moveFromFullFilledRequirement(calculatedRequirement, fullFilledRequirement, fromResInstanceUid, relation);
- } else {
- Optional<RequirementDataDefinition> requirementOptional = reqByType.getListToscaDataDefinition().stream()
- .filter(cap -> cap.getOwnerId().equals(relation.getRequirementOwnerId()) && cap.getName().equals(relation.getRequirement()) && cap.getUniqueId().equals(relation.getRequirementId())).findFirst();
+ hereIsTheKey = reqByInstance.findKeyByItemUidMatch(relation.getRequirementId());
+ ListRequirementDataDefinition reqByType = reqByInstance.findByKey(hereIsTheKey);
+ Optional<RequirementDataDefinition> requirementOptional = reqByType.getListToscaDataDefinition().stream()
+ .filter(req -> req.getOwnerId().equals(relation.getRequirementOwnerId()) && req.getName().equals(relation.getRequirement()) && req.getUniqueId().equals(relation.getRequirementId())).findFirst();
- if (requirementOptional.isPresent()) {
+ if (requirementOptional.isPresent()) {
- RequirementDataDefinition requirement = requirementOptional.get();
- String leftOccurrences = requirement.getLeftOccurrences();
- if (leftOccurrences != null && !leftOccurrences.equals(RequirementDataDefinition.MAX_OCCURRENCES)) {
- Integer leftIntValue = Integer.parseInt(leftOccurrences);
- ++leftIntValue;
- requirement.setLeftOccurrences(String.valueOf(leftIntValue));
- }
- status = StorageOperationStatus.OK;
- } else {
- // move from fullfilled
- status = moveFromFullFilledRequirement(calculatedRequirement, fullFilledRequirement, fromResInstanceUid, relation);
+ RequirementDataDefinition requirement = requirementOptional.get();
+ String leftOccurrences = requirement.getLeftOccurrences();
+ if (leftOccurrences != null && !leftOccurrences.equals(RequirementDataDefinition.MAX_OCCURRENCES)) {
+ Integer leftIntValue = Integer.parseInt(leftOccurrences);
+ ++leftIntValue;
+ requirement.setLeftOccurrences(String.valueOf(leftIntValue));
}
+ status = StorageOperationStatus.OK;
+ } else {
+ // move from fulfilled
+ status = moveFromFullFilledRequirement(calculatedRequirement, fullFilledRequirement, fromResInstanceUid, relation, hereIsTheKey);
}
}
return status;
}
- private StorageOperationStatus updateCalculatedCapabiltyAfterDeleteRelation(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilty, Map<String, MapListCapabiltyDataDefinition> fullFilledCapabilty, String toResInstanceUid,
+
+ private StorageOperationStatus updateCalculatedCapabiltyAfterDeleteRelation(Map<String, MapListCapabiltyDataDefinition> calculatedCapability, Map<String, MapListCapabiltyDataDefinition> fullFilledCapability, String toResInstanceUid,
RelationshipInstDataDefinition relation) {
StorageOperationStatus status;
- MapListCapabiltyDataDefinition capByInstance = calculatedCapabilty.get(toResInstanceUid);
- if (capByInstance == null) {
- // move from fullfilled
- status = moveFromFullFilledCapabilty(calculatedCapabilty, fullFilledCapabilty, toResInstanceUid, relation);
+ String hereIsTheKey = null;
+ MapListCapabiltyDataDefinition capByInstance = calculatedCapability.get(toResInstanceUid);
+ if (capByInstance == null || capByInstance.findKeyByItemUidMatch(relation.getCapabilityId()) == null) {
+ // move from fulfilled
+ status = moveFromFullFilledCapabilty(calculatedCapability, fullFilledCapability, toResInstanceUid, relation, hereIsTheKey);
} else {
- ListCapabilityDataDefinition capByType = capByInstance.findByKey(relation.getType());
- if (capByType == null) {
- // move from fullfilled
- status = moveFromFullFilledCapabilty(calculatedCapabilty, fullFilledCapabilty, toResInstanceUid, relation);
- } else {
- Optional<CapabilityDataDefinition> capabiltyOptional = capByType.getListToscaDataDefinition().stream()
- .filter(cap -> cap.getOwnerId().equals(relation.getCapabilityOwnerId()) && cap.getUniqueId().equals(relation.getCapabiltyId())).findFirst();
+ hereIsTheKey = capByInstance.findKeyByItemUidMatch(relation.getCapabilityId());
+ ListCapabilityDataDefinition capByType = capByInstance.findByKey(hereIsTheKey);
+ Optional<CapabilityDataDefinition> capabilityOptional = capByType.getListToscaDataDefinition().stream()
+ .filter(cap -> cap.getOwnerId().equals(relation.getCapabilityOwnerId()) && cap.getUniqueId().equals(relation.getCapabilityId())).findFirst();
- if (capabiltyOptional.isPresent()) {
+ if (capabilityOptional.isPresent()) {
- CapabilityDataDefinition capability = capabiltyOptional.get();
- String leftOccurrences = capability.getLeftOccurrences();
- if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
- Integer leftIntValue = Integer.parseInt(leftOccurrences);
- ++leftIntValue;
- capability.setLeftOccurrences(String.valueOf(leftIntValue));
- }
- status = StorageOperationStatus.OK;
- } else {
- // move from fullfilled
- status = moveFromFullFilledCapabilty(calculatedCapabilty, fullFilledCapabilty, toResInstanceUid, relation);
+ CapabilityDataDefinition capability = capabilityOptional.get();
+ String leftOccurrences = capability.getLeftOccurrences();
+ if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
+ Integer leftIntValue = Integer.parseInt(leftOccurrences);
+ ++leftIntValue;
+ capability.setLeftOccurrences(String.valueOf(leftIntValue));
}
+ status = StorageOperationStatus.OK;
+ } else {
+ // move from fulfilled
+ status = moveFromFullFilledCapabilty(calculatedCapability, fullFilledCapability, toResInstanceUid, relation, hereIsTheKey);
}
}
return status;
}
- private StorageOperationStatus moveFromFullFilledCapabilty(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilty, Map<String, MapListCapabiltyDataDefinition> fullFilledCapabilty, String toResInstanceUid,
- RelationshipInstDataDefinition relation) {
- MapListCapabiltyDataDefinition capByInstance = fullFilledCapabilty.get(toResInstanceUid);
+ private StorageOperationStatus moveFromFullFilledCapabilty(Map<String, MapListCapabiltyDataDefinition> calculatedCapability, Map<String, MapListCapabiltyDataDefinition> fullFilledCapability, String toResInstanceUid,
+ RelationshipInstDataDefinition relation, String hereIsTheKey) {
+ MapListCapabiltyDataDefinition capByInstance = fullFilledCapability.get(toResInstanceUid);
if (capByInstance == null) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capabilty in fullfilled list for instance {} ", toResInstanceUid);
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capability in fulfilled list for instance {} ", toResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
- ListCapabilityDataDefinition capByType = capByInstance.findByKey(relation.getType());
- if (capByType == null) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capabilty type {} in fullfilled list for instance {} ", relation.getType(), toResInstanceUid);
+ if (null == hereIsTheKey)
+ hereIsTheKey = capByInstance.findKeyByItemUidMatch(relation.getCapabilityId());
+ if (null == hereIsTheKey) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capability with id {} in fulfilled list for instance {} ", relation.getCapabilityId(), toResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
+ ListCapabilityDataDefinition capByType = capByInstance.findByKey(hereIsTheKey);
Iterator<CapabilityDataDefinition> iterator = capByType.getListToscaDataDefinition().iterator();
boolean found = false;
while (iterator.hasNext()) {
CapabilityDataDefinition cap = iterator.next();
- if (cap.getOwnerId().equals(relation.getCapabilityOwnerId()) && cap.getName().equals(relation.getRequirement()) && cap.getUniqueId().equals(relation.getCapabiltyId())) {
+ if (cap.getOwnerId().equals(relation.getCapabilityOwnerId()) && cap.getUniqueId().equals(relation.getCapabilityId())) {
found = true;
iterator.remove();
// return to calculated list
@@ -1278,38 +1256,40 @@ public class NodeTemplateOperation extends BaseOperation {
++leftIntValue;
cap.setLeftOccurrences(String.valueOf(leftIntValue));
- MapListCapabiltyDataDefinition mapListCapaDataDef = calculatedCapabilty.get(toResInstanceUid);
+ MapListCapabiltyDataDefinition mapListCapaDataDef = calculatedCapability.get(toResInstanceUid);
if (mapListCapaDataDef == null) {
mapListCapaDataDef = new MapListCapabiltyDataDefinition();
}
- ListCapabilityDataDefinition findByKey = mapListCapaDataDef.findByKey(relation.getType());
+ ListCapabilityDataDefinition findByKey = mapListCapaDataDef.findByKey(hereIsTheKey);
if (findByKey == null) {
findByKey = new ListCapabilityDataDefinition();
- mapListCapaDataDef.put(relation.getType(), findByKey);
+ mapListCapaDataDef.put(hereIsTheKey, findByKey);
}
findByKey.add(cap);
break;
}
}
if (found == false) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capabilty type {} with ownerId {} in fullfilled list for instance {} ", relation.getType(), relation.getCapabilityOwnerId(), toResInstanceUid);
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No capability type {} with ownerId {} in fulfilled list for instance {} ", hereIsTheKey, relation.getCapabilityOwnerId(), toResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
return StorageOperationStatus.OK;
}
private StorageOperationStatus moveFromFullFilledRequirement(Map<String, MapListRequirementDataDefinition> calculatedRequirement, Map<String, MapListRequirementDataDefinition> fullFilledRequirement, String fromResInstanceUid,
- RelationshipInstDataDefinition relation) {
+ RelationshipInstDataDefinition relation, String hereIsTheKey) {
MapListRequirementDataDefinition reqByInstance = fullFilledRequirement.get(fromResInstanceUid);
if (reqByInstance == null) {
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No requirement in fullfilled list for instance {} ", fromResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
- ListRequirementDataDefinition reqByType = reqByInstance.findByKey(relation.getType());
- if (reqByType == null) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No requirement type {} in fullfilled list for instance {} ", relation.getType(), fromResInstanceUid);
+ if(null == hereIsTheKey)
+ hereIsTheKey = reqByInstance.findKeyByItemUidMatch(relation.getRequirementId());
+ if (null == hereIsTheKey) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No requirement with id {} in fulfilled list for instance {} ", relation.getRequirementId(), fromResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
+ ListRequirementDataDefinition reqByType = reqByInstance.findByKey(hereIsTheKey);
Iterator<RequirementDataDefinition> iterator = reqByType.getListToscaDataDefinition().iterator();
boolean found = false;
while (iterator.hasNext()) {
@@ -1327,17 +1307,17 @@ public class NodeTemplateOperation extends BaseOperation {
if (mapListReqDataDef == null) {
mapListReqDataDef = new MapListRequirementDataDefinition();
}
- ListRequirementDataDefinition findByKey = mapListReqDataDef.findByKey(relation.getType());
+ ListRequirementDataDefinition findByKey = mapListReqDataDef.findByKey(hereIsTheKey);
if (findByKey == null) {
findByKey = new ListRequirementDataDefinition();
- mapListReqDataDef.put(relation.getType(), findByKey);
+ mapListReqDataDef.put(hereIsTheKey, findByKey);
}
findByKey.add(req);
break;
}
}
if (found == false) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No requirement type {} with ownerId {} in fullfilled list for instance {} ", relation.getType(), relation.getCapabilityOwnerId(), fromResInstanceUid);
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No requirement type {} with ownerId {} in fulfilled list for instance {} ", hereIsTheKey, relation.getRequirementOwnerId(), fromResInstanceUid);
return StorageOperationStatus.GENERAL_ERROR;
}
return StorageOperationStatus.OK;
@@ -1432,22 +1412,22 @@ public class NodeTemplateOperation extends BaseOperation {
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to fetch calculated capabilities for type {} for instance {} in container {}.", type, toInstId, containerId);
return Either.right(StorageOperationStatus.MATCH_NOT_FOUND);
}
- CapabilityDataDefinition capabiltyForRelation = null;
+ CapabilityDataDefinition capabilityForRelation = null;
Iterator<CapabilityDataDefinition> iteratorCap = listCapabilityDataDefinition.getListToscaDataDefinition().iterator();
while (iteratorCap.hasNext()) {
CapabilityDataDefinition cap = iteratorCap.next();
if (cap.getUniqueId().equals(relationPair.getCapabilityUid()) && cap.getOwnerId().equals(relationPair.getCapabilityOwnerId())) {
- capabiltyForRelation = cap;
+ capabilityForRelation = cap;
String leftOccurrences = cap.getLeftOccurrences();
if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
Integer leftIntValue = Integer.parseInt(leftOccurrences);
if (leftIntValue > 0) {
--leftIntValue;
- capabiltyForRelation.setLeftOccurrences(String.valueOf(leftIntValue));
+ capabilityForRelation.setLeftOccurrences(String.valueOf(leftIntValue));
if (leftIntValue == 0) {
// remove from calculated
iteratorCap.remove();
- // move to fullfilled
+ // move to fulfilled
MapListCapabiltyDataDefinition mapListCapabiltyFullFilledInst = fullfilledCapabilty.get(toInstId);
if (mapListCapabiltyFullFilledInst == null) {
mapListCapabiltyFullFilledInst = new MapListCapabiltyDataDefinition();
@@ -1459,17 +1439,17 @@ public class NodeTemplateOperation extends BaseOperation {
listCapabilityFull = new ListCapabilityDataDefinition();
mapListCapabiltyFullFilledInst.put(type, listCapabilityFull);
}
- listCapabilityFull.add(capabiltyForRelation);
+ listCapabilityFull.add(capabilityForRelation);
}
break;
} else {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No left occurrences capabilty {} to {} in container {}.", capabiltyForRelation.getType(), toInstId, containerId);
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No left occurrences capabilty {} to {} in container {}.", capabilityForRelation.getType(), toInstId, containerId);
return Either.right(StorageOperationStatus.MATCH_NOT_FOUND);
}
}
}
}
- if (capabiltyForRelation == null) {
+ if (capabilityForRelation == null) {
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to fetch capabilty for type {} for instance {} in container {}.", type, toInstId, containerId);
return Either.right(StorageOperationStatus.MATCH_NOT_FOUND);
}
@@ -1503,7 +1483,7 @@ public class NodeTemplateOperation extends BaseOperation {
if (leftIntValue == 0) {
// remove from calculated
iteratorReq.remove();
- // move to fullfilled
+ // move to fulfilled
MapListRequirementDataDefinition mapListRequirementFullFilledInst = fullfilledRequirement.get(fromInstId);
if (mapListRequirementFullFilledInst == null) {
mapListRequirementFullFilledInst = new MapListRequirementDataDefinition();
@@ -1525,16 +1505,14 @@ public class NodeTemplateOperation extends BaseOperation {
}
}
}
- if (!capabiltyForRelation.getType().equals(requirementForRelation.getCapability())) {
- CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No math for capabilty from type {} and requirement {} from {} to {} in container {}.", capabiltyForRelation.getType(), requirementForRelation.getCapability(), fromInstId, toInstId,
+ if (!capabilityForRelation.getType().equals(requirementForRelation.getCapability())) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "No math for capability from type {} and requirement {} from {} to {} in container {}.", capabilityForRelation.getType(), requirementForRelation.getCapability(), fromInstId, toInstId,
containerId);
return Either.right(StorageOperationStatus.MATCH_NOT_FOUND);
}
RelationshipInstDataDefinition relationshipTypeData = buildRelationshipInstData(fromInstId, toInstId, relationPair);
-
relationshipTypeData.setType(requirementForRelation.getRelationship());
-
return Either.left(relationshipTypeData);
}
@@ -1549,7 +1527,7 @@ public class NodeTemplateOperation extends BaseOperation {
relationshipInstData.setModificationTime(creationDate);
relationshipInstData.setCapabilityOwnerId(relationPair.getCapabilityOwnerId());
relationshipInstData.setRequirementOwnerId(relationPair.getRequirementOwnerId());
- relationshipInstData.setCapabiltyId(relationPair.getCapabilityUid());
+ relationshipInstData.setCapabilityId(relationPair.getCapabilityUid());
relationshipInstData.setRequirementId(relationPair.getRequirementUid());
relationshipInstData.setFromId(fromResInstanceUid);
relationshipInstData.setToId(toInstId);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/TopologyTemplateOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/TopologyTemplateOperation.java
index 99a602f234..2d160bfc82 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/TopologyTemplateOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/TopologyTemplateOperation.java
@@ -140,7 +140,7 @@ public class TopologyTemplateOperation extends ToscaElementOperation {
return result;
}
StorageOperationStatus associateInstGroups = associateInstGroupsToComponent(topologyTemplateVertex, topologyTemplate);
- if (associateInstProperties != StorageOperationStatus.OK) {
+ if (associateInstGroups != StorageOperationStatus.OK) {
result = Either.right(associateInstInputs);
return result;
}
@@ -786,12 +786,11 @@ public class TopologyTemplateOperation extends ToscaElementOperation {
GraphVertex categoryV = childVertex.left().value();
Map<GraphPropertyEnum, Object> metadataProperties = categoryV.getMetadataProperties();
CategoryDefinition category = new CategoryDefinition();
- category.setUniqueId((String) metadataProperties.get(GraphPropertyEnum.UNIQUE_ID));
+ category.setUniqueId(categoryV.getUniqueId());
category.setNormalizedName((String) metadataProperties.get(GraphPropertyEnum.NORMALIZED_NAME));
category.setName((String) metadataProperties.get(GraphPropertyEnum.NAME));
- Type listTypeCat = new TypeToken<List<String>>() {
- }.getType();
+ Type listTypeCat = new TypeToken<List<String>>() {}.getType();
List<String> iconsfromJsonCat = getGson().fromJson((String) metadataProperties.get(GraphPropertyEnum.ICONS.getProperty()), listTypeCat);
category.setIcons(iconsfromJsonCat);
categories.add(category);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementLifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementLifecycleOperation.java
index d57e7cc255..d34d3aa9f9 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementLifecycleOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementLifecycleOperation.java
@@ -27,7 +27,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
@@ -37,9 +36,7 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
-
import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
import org.openecomp.sdc.be.dao.jsongraph.types.EdgePropertyEnum;
@@ -55,20 +52,16 @@ import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.GroupInstanceDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MapGroupsDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DistributionStatusEnum;
-import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate;
@@ -78,10 +71,8 @@ import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
-import org.openecomp.sdc.common.api.ArtifactTypeEnum;
import org.openecomp.sdc.common.jsongraph.util.CommonUtility;
import org.openecomp.sdc.common.jsongraph.util.CommonUtility.LogLevelEnum;
-import org.openecomp.sdc.exception.ResponseFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -891,8 +882,9 @@ public class ToscaElementLifecycleOperation extends BaseOperation {
// check if component with the next version doesn't exist.
Iterator<Edge> nextVersionComponentIter = toscaElementVertex.getVertex().edges(Direction.OUT, EdgeLabelEnum.VERSION.name());
if (nextVersionComponentIter != null && nextVersionComponentIter.hasNext()) {
- String fetchedVersion = (String) nextVersionComponentIter.next().inVertex().property(GraphPropertyEnum.VERSION.getProperty()).value();
- String fetchedName = (String) nextVersionComponentIter.next().inVertex().property(GraphPropertyEnum.NORMALIZED_NAME.getProperty()).value();
+ Vertex nextVersionVertex = nextVersionComponentIter.next().inVertex();
+ String fetchedVersion = (String) nextVersionVertex.property(GraphPropertyEnum.VERSION.getProperty()).value();
+ String fetchedName = (String)nextVersionVertex.property(GraphPropertyEnum.NORMALIZED_NAME.getProperty()).value();
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to checkout component {} with version {}. The component with name {} and version {} was fetched from graph as existing following version. ",
toscaElementVertex.getMetadataProperty(GraphPropertyEnum.NORMALIZED_NAME).toString(), toscaElementVertex.getMetadataProperty(GraphPropertyEnum.VERSION).toString(), fetchedName, fetchedVersion);
result = Either.right(StorageOperationStatus.ENTITY_ALREADY_EXISTS);
@@ -1014,8 +1006,8 @@ public class ToscaElementLifecycleOperation extends BaseOperation {
}
//TODO remove after jsonModelMigration
- public void resolveToscaComponentName(ComponentInstanceDataDefinition vfInst, Map<String, ToscaElement> origCompMap) {
- fixToscaComponentName(vfInst, origCompMap);
+ public boolean resolveToscaComponentName(ComponentInstanceDataDefinition vfInst, Map<String, ToscaElement> origCompMap) {
+ return fixToscaComponentName(vfInst, origCompMap);
}
private boolean fixToscaComponentName(ComponentInstanceDataDefinition vfInst, Map<String, ToscaElement> origCompMap) {
@@ -1035,7 +1027,7 @@ public class ToscaElementLifecycleOperation extends BaseOperation {
CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to find orig component {} . Status is {}. ", origCompEither.right().value());
return false;
}
- origComp = origCompEither.left().value();
+ origComp = origCompEither.left().value();
origCompMap.put(origCompUid, origComp);
} else {
origComp = origCompMap.get(origCompUid);
@@ -1438,6 +1430,13 @@ public class ToscaElementLifecycleOperation extends BaseOperation {
return verticesToGetParameters;
}
+
+ private String getNextCertifiedVersion(String version) {
+ String[] versionParts = version.split(VERSION_DELIMETER_REGEXP);
+ Integer nextMajorVersion = Integer.parseInt(versionParts[0]) + 1;
+ return nextMajorVersion + VERSION_DELIMETER + "0";
+ }
+
private String getNextVersion(String currVersion) {
String[] versionParts = currVersion.split(VERSION_DELIMETER_REGEXP);
Integer minorVersion = Integer.parseInt(versionParts[1]) + 1;
@@ -1460,4 +1459,72 @@ public class ToscaElementLifecycleOperation extends BaseOperation {
}
return false;
}
+
+ public Either<ToscaElement,StorageOperationStatus> forceCerificationOfToscaElement(String toscaElementId, String modifierId, String ownerId, String currVersion) {
+ Either<GraphVertex, StorageOperationStatus> resultUpdate = null;
+ Either<ToscaElement, StorageOperationStatus> result = null;
+ GraphVertex toscaElement = null;
+ GraphVertex modifier = null;
+ GraphVertex owner;
+ try {
+ Either<Map<String, GraphVertex>, TitanOperationStatus> getVerticesRes = titanDao.getVerticesByUniqueIdAndParseFlag(prepareParametersToGetVerticesForRequestCertification(toscaElementId, modifierId, ownerId));
+ if (getVerticesRes.isRight()) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, FAILED_TO_GET_VERTICES, toscaElementId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVerticesRes.right().value()));
+ }
+ if (result == null) {
+ toscaElement = getVerticesRes.left().value().get(toscaElementId);
+ modifier = getVerticesRes.left().value().get(modifierId);
+ owner = getVerticesRes.left().value().get(ownerId);
+
+ StorageOperationStatus status = handleRelationsUponForceCertification(toscaElement, modifier, owner);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to handle relations on certification request for tosca element {}. Status is {}. ", toscaElement.getUniqueId(), status);
+ }
+ }
+ if (result == null) {
+ LifecycleStateEnum nextState = LifecycleStateEnum.CERTIFIED;
+
+ toscaElement.addMetadataProperty(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ toscaElement.addMetadataProperty(GraphPropertyEnum.VERSION, getNextCertifiedVersion(currVersion));
+
+ resultUpdate = updateToscaElementVertexMetadataPropertiesAndJson(toscaElement);
+ if (resultUpdate.isRight()) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Failed to set lifecycle for tosca elememt {} to state {}, error: {}", toscaElement.getUniqueId(), nextState, resultUpdate.right().value());
+ result = Either.right(resultUpdate.right().value());
+ }
+ }
+ if (result == null) {
+ ToscaElementOperation operation = getToscaElementOperation(toscaElement.getLabel());
+ result = operation.getToscaElement(toscaElement.getUniqueId());
+ }
+ return result;
+
+ } catch (Exception e) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "Exception occured during request certification tosca element {}. {}", toscaElementId, e.getMessage());
+ }
+ return result;
+ }
+
+ private StorageOperationStatus handleRelationsUponForceCertification(GraphVertex toscaElement, GraphVertex modifier, GraphVertex owner) {
+
+ StorageOperationStatus result = null;
+ TitanOperationStatus status = titanDao.replaceEdgeLabel(owner.getVertex(), toscaElement.getVertex(), EdgeLabelEnum.STATE, EdgeLabelEnum.LAST_STATE);
+ if (status != TitanOperationStatus.OK) {
+ result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+ if (result == null) {
+ Map<EdgePropertyEnum, Object> properties = new EnumMap<>(EdgePropertyEnum.class);
+ properties.put(EdgePropertyEnum.STATE, LifecycleStateEnum.CERTIFIED);
+ status = titanDao.createEdge(modifier, toscaElement, EdgeLabelEnum.STATE, properties);
+ if (status != TitanOperationStatus.OK) {
+ CommonUtility.addRecordToLog(logger, LogLevelEnum.DEBUG, "failed to create edge. Status is {}", status);
+ result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+ }
+ if (result == null) {
+ result = StorageOperationStatus.OK;
+ }
+ return result;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperation.java
index 99cbd34c9b..5aceb2ffd2 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperation.java
@@ -20,16 +20,9 @@
package org.openecomp.sdc.be.model.jsontitan.operations;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import fj.data.Either;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -59,7 +52,6 @@ import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
-import org.openecomp.sdc.be.resources.data.UserData;
import org.openecomp.sdc.common.jsongraph.util.CommonUtility;
import org.openecomp.sdc.common.jsongraph.util.CommonUtility.LogLevelEnum;
import org.openecomp.sdc.common.util.ValidationUtils;
@@ -67,10 +59,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-
-import fj.data.Either;
+import java.lang.reflect.Type;
+import java.util.*;
+import java.util.Map.Entry;
public abstract class ToscaElementOperation extends BaseOperation {
private static Logger log = LoggerFactory.getLogger(ToscaElementOperation.class.getName());
@@ -1074,13 +1065,15 @@ public abstract class ToscaElementOperation extends BaseOperation {
return status;
}
- public <T extends ToscaElement> Either<List<T>, StorageOperationStatus> getElementCatalogData(ComponentTypeEnum componentType, ToscaElementTypeEnum toscaElement, boolean isHighestVersions) {
+ public <T extends ToscaElement> Either<List<T>, StorageOperationStatus> getElementCatalogData(ComponentTypeEnum componentType, List<ResourceTypeEnum> excludeTypes, boolean isHighestVersions) {
Either<List<GraphVertex>, TitanOperationStatus> listOfComponents;
if (isHighestVersions) {
- listOfComponents = getListOfHighestComponents(componentType, toscaElement);
- } else {
- listOfComponents = getListOfHighestAndAllCertifiedComponents(componentType, toscaElement);
+ listOfComponents = getListOfHighestComponents(componentType, excludeTypes);
}
+ else {
+ listOfComponents = getListOfHighestAndAllCertifiedComponents(componentType, excludeTypes);
+ }
+
if (listOfComponents.isRight() && listOfComponents.right().value() != TitanOperationStatus.NOT_FOUND) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(listOfComponents.right().value()));
}
@@ -1091,7 +1084,7 @@ public abstract class ToscaElementOperation extends BaseOperation {
for (GraphVertex vertexComponent : highestAndAllCertified) {
Either<T, StorageOperationStatus> component = getLightComponent(vertexComponent, componentType, new ComponentParametersView(true));
if (component.isRight()) {
- log.debug("Failed to fetch ligth element for {} error {}", vertexComponent.getUniqueId(), component.right().value());
+ log.debug("Failed to fetch light element for {} error {}", vertexComponent.getUniqueId(), component.right().value());
return Either.right(component.right().value());
} else {
result.add(component.left().value());
@@ -1102,82 +1095,55 @@ public abstract class ToscaElementOperation extends BaseOperation {
return Either.left(result);
}
- private Either<List<GraphVertex>, TitanOperationStatus> getListOfHighestComponents(ComponentTypeEnum componentType, ToscaElementTypeEnum toscaElement) {
+ private Either<List<GraphVertex>, TitanOperationStatus> getListOfHighestComponents(ComponentTypeEnum componentType, List<ResourceTypeEnum> excludeTypes) {
Map<GraphPropertyEnum, Object> propertiesToMatch = new HashMap<>();
+ Map<GraphPropertyEnum, Object> propertiesHasNotToMatch = new HashMap<>();
propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
if (componentType == ComponentTypeEnum.RESOURCE) {
propertiesToMatch.put(GraphPropertyEnum.IS_ABSTRACT, false);
+ propertiesHasNotToMatch.put(GraphPropertyEnum.RESOURCE_TYPE, excludeTypes);
}
-
- Map<GraphPropertyEnum, Object> propertiesHasNotToMatch = new HashMap<>();
propertiesHasNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- return titanDao.getByCriteria(ToscaElementTypeEnum.getVertexTypeByToscaType(toscaElement), propertiesToMatch, propertiesHasNotToMatch, JsonParseFlagEnum.ParseMetadata);
+ return titanDao.getByCriteria(null, propertiesToMatch, propertiesHasNotToMatch, JsonParseFlagEnum.ParseMetadata);
}
- public Either<List<GraphVertex>, TitanOperationStatus> getListOfHighestAndAllCertifiedComponents(ComponentTypeEnum componentType, ToscaElementTypeEnum toscaElement) {
+ // highest + (certified && !highest)
+ public Either<List<GraphVertex>, TitanOperationStatus> getListOfHighestAndAllCertifiedComponents(ComponentTypeEnum componentType, List<ResourceTypeEnum> excludeTypes) {
long startFetchAllStates = System.currentTimeMillis();
+ Either<List<GraphVertex>, TitanOperationStatus> highestNodes = getListOfHighestComponents(componentType, excludeTypes);
+
Map<GraphPropertyEnum, Object> propertiesToMatchCertified = new HashMap<>();
+ Map<GraphPropertyEnum, Object> propertiesHasNotToMatchCertified = new HashMap<>();
propertiesToMatchCertified.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
propertiesToMatchCertified.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
if (componentType == ComponentTypeEnum.RESOURCE) {
propertiesToMatchCertified.put(GraphPropertyEnum.IS_ABSTRACT, false);
+ propertiesHasNotToMatchCertified.put(GraphPropertyEnum.RESOURCE_TYPE, excludeTypes);
}
- Map<GraphPropertyEnum, Object> propertiesHasNotToMatchCertified = new HashMap<>();
propertiesHasNotToMatchCertified.put(GraphPropertyEnum.IS_DELETED, true);
+ propertiesHasNotToMatchCertified.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- Either<List<GraphVertex>, TitanOperationStatus> certifiedNodes = titanDao.getByCriteria(ToscaElementTypeEnum.getVertexTypeByToscaType(toscaElement), propertiesToMatchCertified, propertiesHasNotToMatchCertified,
+ Either<List<GraphVertex>, TitanOperationStatus> certifiedNotHighestNodes = titanDao.getByCriteria(null, propertiesToMatchCertified, propertiesHasNotToMatchCertified,
JsonParseFlagEnum.ParseMetadata);
- if (certifiedNodes.isRight() && certifiedNodes.right().value() != TitanOperationStatus.NOT_FOUND) {
- return Either.right(certifiedNodes.right().value());
- }
-
- Map<GraphPropertyEnum, Object> propertiesToMatchHighest = new HashMap<>();
- propertiesToMatchHighest.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- propertiesToMatchHighest.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
- if (componentType == ComponentTypeEnum.RESOURCE) {
- propertiesToMatchHighest.put(GraphPropertyEnum.IS_ABSTRACT, false);
- }
-
- Map<GraphPropertyEnum, Object> propertiesHasNotToMatchHighest = new HashMap<>();
- propertiesHasNotToMatchHighest.put(GraphPropertyEnum.IS_DELETED, true);
- propertiesHasNotToMatchHighest.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
-
- Either<List<GraphVertex>, TitanOperationStatus> highestNode = titanDao.getByCriteria(ToscaElementTypeEnum.getVertexTypeByToscaType(toscaElement), propertiesToMatchHighest, propertiesHasNotToMatchHighest, JsonParseFlagEnum.ParseMetadata);
- if (highestNode.isRight() && highestNode.right().value() != TitanOperationStatus.NOT_FOUND) {
- return Either.right(highestNode.right().value());
+ if (certifiedNotHighestNodes.isRight() && certifiedNotHighestNodes.right().value() != TitanOperationStatus.NOT_FOUND) {
+ return Either.right(certifiedNotHighestNodes.right().value());
}
long endFetchAllStates = System.currentTimeMillis();
List<GraphVertex> allNodes = new ArrayList<>();
- if (certifiedNodes.isLeft()) {
- allNodes.addAll(certifiedNodes.left().value());
- }
- if (highestNode.isLeft()) {
- allNodes.addAll(highestNode.left().value());
- }
-
- int certifiedSize;
- int nonCertifiedSize;
-
- if (certifiedNodes.isRight()) {
- certifiedSize = 0;
- } else {
- certifiedSize = certifiedNodes.left().value().size();
+ if (certifiedNotHighestNodes.isLeft()) {
+ allNodes.addAll(certifiedNotHighestNodes.left().value());
}
-
- if (highestNode.isRight()) {
- nonCertifiedSize = 0;
- } else {
- nonCertifiedSize = highestNode.left().value().size();
+ if (highestNodes.isLeft()) {
+ allNodes.addAll(highestNodes.left().value());
}
- log.debug("Fetch catalog {}s all states: certified {}, noncertified {}", componentType, certifiedSize, nonCertifiedSize);
log.debug("Fetch catalog {}s all states from graph took {} ms", componentType, endFetchAllStates - startFetchAllStates);
return Either.left(allNodes);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaOperationFacade.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaOperationFacade.java
index 8999340f0a..64424a8070 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaOperationFacade.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaOperationFacade.java
@@ -21,9 +21,9 @@
package org.openecomp.sdc.be.model.jsontitan.operations;
import java.util.*;
+import fj.data.Either;
import java.util.Map.Entry;
import java.util.stream.Collectors;
-
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -36,45 +36,11 @@ import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.components.ComponentMetadataDataDefinition;
import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapCapabiltyProperty;
-import org.openecomp.sdc.be.datatypes.elements.MapListCapabiltyDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapListRequirementDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.RequirementDataDefinition;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.ComponentInstanceInput;
-import org.openecomp.sdc.be.model.ComponentInstanceProperty;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.DistributionStatusEnum;
-import org.openecomp.sdc.be.model.GroupDefinition;
-import org.openecomp.sdc.be.model.GroupInstance;
-import org.openecomp.sdc.be.model.InputDefinition;
-import org.openecomp.sdc.be.model.LifecycleStateEnum;
-import org.openecomp.sdc.be.model.PropertyDefinition;
-import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
-import org.openecomp.sdc.be.model.RequirementDefinition;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.datatypes.elements.*;
+import org.openecomp.sdc.be.datatypes.enums.*;
+import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.jsontitan.datamodel.TopologyTemplate;
import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
-import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
@@ -88,932 +54,935 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import fj.data.Either;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
@org.springframework.stereotype.Component("tosca-operation-facade")
public class ToscaOperationFacade {
- @Autowired
- private NodeTypeOperation nodeTypeOperation;
- @Autowired
- private TopologyTemplateOperation topologyTemplateOperation;
- @Autowired
- private NodeTemplateOperation nodeTemplateOperation;
- @Autowired
- private GroupsOperation groupsOperation;
- @Autowired
- private TitanDao titanDao;
-
- private static Logger log = LoggerFactory.getLogger(ToscaOperationFacade.class.getName());
-
- public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId) {
-
- return getToscaElement(componentId, JsonParseFlagEnum.ParseAll);
-
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getToscaFullElement(String componentId) {
- ComponentParametersView filters = new ComponentParametersView();
- filters.setIgnoreCapabiltyProperties(false);
-
- return getToscaElement(componentId, filters);
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId, ComponentParametersView filters) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, filters.detectParseFlag());
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
- return getToscaElementByOperation(getVertexEither.left().value(), filters);
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId, JsonParseFlagEnum parseFlag) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, parseFlag);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
- return getToscaElementByOperation(getVertexEither.left().value());
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(GraphVertex componentVertex) {
- return getToscaElementByOperation(componentVertex);
- }
-
- public Either<Boolean, StorageOperationStatus> validateComponentExists(String componentId) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- TitanOperationStatus status = getVertexEither.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- return Either.left(false);
- } else {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
- }
- }
- return Either.left(true);
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> findLastCertifiedToscaElementByUUID(T component) {
- Map<GraphPropertyEnum, Object> props = new HashMap<>();
- props.put(GraphPropertyEnum.UUID, component.getUUID());
- props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> getVertexEither = titanDao.getByCriteria(ModelConverter.getVertexType(component), props);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", component.getUniqueId(), getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
- return getToscaElementByOperation(getVertexEither.left().value().get(0));
- }
-
- private <T extends Component> Either<T, StorageOperationStatus> getToscaElementByOperation(GraphVertex componentV) {
- return getToscaElementByOperation(componentV, new ComponentParametersView());
- }
-
- private <T extends Component> Either<T, StorageOperationStatus> getToscaElementByOperation(GraphVertex componentV, ComponentParametersView filters) {
- VertexTypeEnum label = componentV.getLabel();
-
- ToscaElementOperation toscaOperation = getToscaElementOperation(componentV);
- Either<ToscaElement, StorageOperationStatus> toscaElement;
- String componentId = componentV.getUniqueId();
- if (toscaOperation != null) {
- log.debug("Need to fetch tosca element for id {}", componentId);
- toscaElement = toscaOperation.getToscaElement(componentV, filters);
- } else {
- log.debug("not supported tosca type {} for id {}", label, componentId);
- toscaElement = Either.right(StorageOperationStatus.BAD_REQUEST);
- }
- if (toscaElement.isRight()) {
- return Either.right(toscaElement.right().value());
- }
- return Either.left(ModelConverter.convertFromToscaElement(toscaElement.left().value()));
- }
-
- private ToscaElementOperation getToscaElementOperation(GraphVertex componentV) {
- VertexTypeEnum label = componentV.getLabel();
- switch (label) {
- case NODE_TYPE:
- return nodeTypeOperation;
- case TOPOLOGY_TEMPLATE:
- return topologyTemplateOperation;
- default:
- return null;
- }
- }
-
- /**
- *
- * @param resource
- * @return
- */
- public <T extends Component> Either<T, StorageOperationStatus> createToscaComponent(T resource) {
- ToscaElement toscaElement = ModelConverter.convertToToscaElement(resource);
-
- ToscaElementOperation toscaElementOperation = getToscaElementOperation(toscaElement);
- Either<ToscaElement, StorageOperationStatus> createToscaElement = toscaElementOperation.createToscaElement(toscaElement);
- if (createToscaElement.isLeft()) {
- log.debug("Component created successfully!!!");
- T dataModel = ModelConverter.convertFromToscaElement(createToscaElement.left().value());
- return Either.left(dataModel);
- }
- return Either.right(createToscaElement.right().value());
- }
-
- /**
- *
- * @param componentToDelete
- * @return
- */
- public StorageOperationStatus markComponentToDelete(Component componentToDelete) {
-
- if ((componentToDelete.getIsDeleted() != null) && componentToDelete.getIsDeleted() && !componentToDelete.isHighestVersion()) {
- // component already marked for delete
- return StorageOperationStatus.OK;
- } else {
-
- Either<GraphVertex, TitanOperationStatus> getResponse = titanDao.getVertexById(componentToDelete.getUniqueId(), JsonParseFlagEnum.ParseAll);
- if (getResponse.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentToDelete.getUniqueId(), getResponse.right().value());
- return DaoStatusConverter.convertTitanStatusToStorageStatus(getResponse.right().value());
-
- }
- GraphVertex componentV = getResponse.left().value();
-
- // same operation for node type and topology template operations
- Either<GraphVertex, StorageOperationStatus> result = nodeTypeOperation.markComponentToDelete(componentV);
- if (result.isRight()) {
- return result.right().value();
- }
- return StorageOperationStatus.OK;
- }
- }
-
- /**
- *
- * @param componentId
- * @return
- */
- public <T extends Component> Either<T, StorageOperationStatus> deleteToscaComponent(String componentId) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseAll);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component vertex with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
- Either<ToscaElement, StorageOperationStatus> deleteElement = deleteToscaElement(getVertexEither.left().value());
- if (deleteElement.isRight()) {
- log.debug("Failed to delete component with and unique id {}, error: {}", componentId, deleteElement.right().value());
- return Either.right(deleteElement.right().value());
- }
- T dataModel = ModelConverter.convertFromToscaElement(deleteElement.left().value());
-
- return Either.left(dataModel);
- }
-
- private Either<ToscaElement, StorageOperationStatus> deleteToscaElement(GraphVertex componentV) {
- VertexTypeEnum label = componentV.getLabel();
- Either<ToscaElement, StorageOperationStatus> toscaElement;
- Object componentId = componentV.getUniqueId();
- switch (label) {
- case NODE_TYPE:
- log.debug("Need to fetch node type for id {}", componentId);
- toscaElement = nodeTypeOperation.deleteToscaElement(componentV);
- break;
- case TOPOLOGY_TEMPLATE:
- log.debug("Need to fetch topology template for id {}", componentId);
- toscaElement = topologyTemplateOperation.deleteToscaElement(componentV);
- break;
- default:
- log.debug("not supported tosca type {} for id {}", label, componentId);
- toscaElement = Either.right(StorageOperationStatus.BAD_REQUEST);
- break;
- }
- return toscaElement;
- }
-
- private ToscaElementOperation getToscaElementOperation(ToscaElement toscaElement) {
-
- ComponentTypeEnum componentType = toscaElement.getComponentType();
- switch (componentType) {
- case RESOURCE:
- ResourceTypeEnum resourceType = toscaElement.getResourceType();
- if (resourceType == ResourceTypeEnum.VF) {
- return topologyTemplateOperation;
- } else {
- return nodeTypeOperation;
- }
- case SERVICE:
- case PRODUCT:
- return topologyTemplateOperation;
- default:
- break;
- }
- return null;
- }
-
- private ToscaElementOperation getToscaElementOperation(Component component) {
-
- switch (component.getComponentType()) {
- case RESOURCE:
- ResourceTypeEnum resourceType = ((Resource) component).getResourceType();
- if (resourceType != null && resourceType == ResourceTypeEnum.VF) {
- return topologyTemplateOperation;
- } else {
- return nodeTypeOperation;
- }
- case SERVICE:
- case PRODUCT:
- return topologyTemplateOperation;
- default:
- break;
- }
- return null;
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName) {
- return getLatestByName(GraphPropertyEnum.TOSCA_RESOURCE_NAME, toscaResourceName);
-
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getLatestByName(String resourceName) {
- return getLatestByName(GraphPropertyEnum.NAME, resourceName);
-
- }
-
- public Either<Integer, StorageOperationStatus> validateCsarUuidUniqueness(String csarUUID) {
- Either<List<ToscaElement>, StorageOperationStatus> byCsar = null;
-
- Map<GraphPropertyEnum, Object> properties = new HashMap<GraphPropertyEnum, Object>();
- properties.put(GraphPropertyEnum.CSAR_UUID, csarUUID);
-
- Either<List<GraphVertex>, TitanOperationStatus> resources = titanDao.getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
-
- if (resources.isRight()) {
- if (resources.right().value() == TitanOperationStatus.NOT_FOUND) {
- return Either.left(new Integer(0));
- } else {
- log.debug("failed to get resources from graph with property name: {}", csarUUID);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
- }
- }
-
- List<GraphVertex> resourceList = (resources.isLeft() ? resources.left().value() : null);
-
- return Either.left(new Integer(resourceList.size()));
-
- }
+ @Autowired
+ private NodeTypeOperation nodeTypeOperation;
+ @Autowired
+ private TopologyTemplateOperation topologyTemplateOperation;
+ @Autowired
+ private NodeTemplateOperation nodeTemplateOperation;
+ @Autowired
+ private GroupsOperation groupsOperation;
+ @Autowired
+ private TitanDao titanDao;
+
+ private static Logger log = LoggerFactory.getLogger(ToscaOperationFacade.class.getName());
+
+ public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId) {
+
+ return getToscaElement(componentId, JsonParseFlagEnum.ParseAll);
+
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getToscaFullElement(String componentId) {
+ ComponentParametersView filters = new ComponentParametersView();
+ filters.setIgnoreCapabiltyProperties(false);
+
+ return getToscaElement(componentId, filters);
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId, ComponentParametersView filters) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, filters.detectParseFlag());
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+ return getToscaElementByOperation(getVertexEither.left().value(), filters);
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(String componentId, JsonParseFlagEnum parseFlag) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, parseFlag);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+ return getToscaElementByOperation(getVertexEither.left().value());
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getToscaElement(GraphVertex componentVertex) {
+ return getToscaElementByOperation(componentVertex);
+ }
+
+ public Either<Boolean, StorageOperationStatus> validateComponentExists(String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ TitanOperationStatus status = getVertexEither.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ return Either.left(false);
+ } else {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+ }
+ }
+ return Either.left(true);
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> findLastCertifiedToscaElementByUUID(T component) {
+ Map<GraphPropertyEnum, Object> props = new HashMap<>();
+ props.put(GraphPropertyEnum.UUID, component.getUUID());
+ props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getVertexEither = titanDao.getByCriteria(ModelConverter.getVertexType(component), props);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", component.getUniqueId(), getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+ return getToscaElementByOperation(getVertexEither.left().value().get(0));
+ }
+
+ private <T extends Component> Either<T, StorageOperationStatus> getToscaElementByOperation(GraphVertex componentV) {
+ return getToscaElementByOperation(componentV, new ComponentParametersView());
+ }
+
+ private <T extends Component> Either<T, StorageOperationStatus> getToscaElementByOperation(GraphVertex componentV, ComponentParametersView filters) {
+ VertexTypeEnum label = componentV.getLabel();
+
+ ToscaElementOperation toscaOperation = getToscaElementOperation(componentV);
+ Either<ToscaElement, StorageOperationStatus> toscaElement;
+ String componentId = componentV.getUniqueId();
+ if (toscaOperation != null) {
+ log.debug("Need to fetch tosca element for id {}", componentId);
+ toscaElement = toscaOperation.getToscaElement(componentV, filters);
+ } else {
+ log.debug("not supported tosca type {} for id {}", label, componentId);
+ toscaElement = Either.right(StorageOperationStatus.BAD_REQUEST);
+ }
+ if (toscaElement.isRight()) {
+ return Either.right(toscaElement.right().value());
+ }
+ return Either.left(ModelConverter.convertFromToscaElement(toscaElement.left().value()));
+ }
+
+ private ToscaElementOperation getToscaElementOperation(GraphVertex componentV) {
+ VertexTypeEnum label = componentV.getLabel();
+ switch (label) {
+ case NODE_TYPE:
+ return nodeTypeOperation;
+ case TOPOLOGY_TEMPLATE:
+ return topologyTemplateOperation;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ *
+ * @param resource
+ * @return
+ */
+ public <T extends Component> Either<T, StorageOperationStatus> createToscaComponent(T resource) {
+ ToscaElement toscaElement = ModelConverter.convertToToscaElement(resource);
+
+ ToscaElementOperation toscaElementOperation = getToscaElementOperation(resource);
+ Either<ToscaElement, StorageOperationStatus> createToscaElement = toscaElementOperation.createToscaElement(toscaElement);
+ if (createToscaElement.isLeft()) {
+ log.debug("Component created successfully!!!");
+ T dataModel = ModelConverter.convertFromToscaElement(createToscaElement.left().value());
+ return Either.left(dataModel);
+ }
+ return Either.right(createToscaElement.right().value());
+ }
+
+ /**
+ *
+ * @param componentToDelete
+ * @return
+ */
+ public StorageOperationStatus markComponentToDelete(Component componentToDelete) {
+
+ if ((componentToDelete.getIsDeleted() != null) && componentToDelete.getIsDeleted() && !componentToDelete.isHighestVersion()) {
+ // component already marked for delete
+ return StorageOperationStatus.OK;
+ } else {
+
+ Either<GraphVertex, TitanOperationStatus> getResponse = titanDao.getVertexById(componentToDelete.getUniqueId(), JsonParseFlagEnum.ParseAll);
+ if (getResponse.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentToDelete.getUniqueId(), getResponse.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(getResponse.right().value());
+
+ }
+ GraphVertex componentV = getResponse.left().value();
+
+ // same operation for node type and topology template operations
+ Either<GraphVertex, StorageOperationStatus> result = nodeTypeOperation.markComponentToDelete(componentV);
+ if (result.isRight()) {
+ return result.right().value();
+ }
+ return StorageOperationStatus.OK;
+ }
+ }
+
+ /**
+ *
+ * @param componentId
+ * @return
+ */
+ public <T extends Component> Either<T, StorageOperationStatus> deleteToscaComponent(String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseAll);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component vertex with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+ Either<ToscaElement, StorageOperationStatus> deleteElement = deleteToscaElement(getVertexEither.left().value());
+ if (deleteElement.isRight()) {
+ log.debug("Failed to delete component with and unique id {}, error: {}", componentId, deleteElement.right().value());
+ return Either.right(deleteElement.right().value());
+ }
+ T dataModel = ModelConverter.convertFromToscaElement(deleteElement.left().value());
+
+ return Either.left(dataModel);
+ }
+
+ private Either<ToscaElement, StorageOperationStatus> deleteToscaElement(GraphVertex componentV) {
+ VertexTypeEnum label = componentV.getLabel();
+ Either<ToscaElement, StorageOperationStatus> toscaElement;
+ Object componentId = componentV.getUniqueId();
+ switch (label) {
+ case NODE_TYPE:
+ log.debug("Need to fetch node type for id {}", componentId);
+ toscaElement = nodeTypeOperation.deleteToscaElement(componentV);
+ break;
+ case TOPOLOGY_TEMPLATE:
+ log.debug("Need to fetch topology template for id {}", componentId);
+ toscaElement = topologyTemplateOperation.deleteToscaElement(componentV);
+ break;
+ default:
+ log.debug("not supported tosca type {} for id {}", label, componentId);
+ toscaElement = Either.right(StorageOperationStatus.BAD_REQUEST);
+ break;
+ }
+ return toscaElement;
+ }
+
+ private ToscaElementOperation getToscaElementOperation(Component component) {
+ return ModelConverter.isAtomicComponent(component) ? nodeTypeOperation : topologyTemplateOperation;
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName) {
+ return getLatestByName(GraphPropertyEnum.TOSCA_RESOURCE_NAME, toscaResourceName);
+
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getLatestByName(String resourceName) {
+ return getLatestByName(GraphPropertyEnum.NAME, resourceName);
+
+ }
+
+ public Either<Integer, StorageOperationStatus> validateCsarUuidUniqueness(String csarUUID) {
+ Either<List<ToscaElement>, StorageOperationStatus> byCsar = null;
+
+ Map<GraphPropertyEnum, Object> properties = new HashMap<GraphPropertyEnum, Object>();
+ properties.put(GraphPropertyEnum.CSAR_UUID, csarUUID);
+
+ Either<List<GraphVertex>, TitanOperationStatus> resources = titanDao.getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
+
+ if (resources.isRight()) {
+ if (resources.right().value() == TitanOperationStatus.NOT_FOUND) {
+ return Either.left(new Integer(0));
+ } else {
+ log.debug("failed to get resources from graph with property name: {}", csarUUID);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
+ }
+ }
+
+ List<GraphVertex> resourceList = (resources.isLeft() ? resources.left().value() : null);
+
+ return Either.left(new Integer(resourceList.size()));
+
+ }
public <T extends Component> Either<Set<T>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, ComponentTypeEnum componentType) {
- Either<List<ToscaElement>, StorageOperationStatus> followedResources;
- if (componentType == ComponentTypeEnum.RESOURCE) {
- followedResources = nodeTypeOperation.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType);
- } else {
- followedResources = topologyTemplateOperation.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType);
- }
+ Either<List<ToscaElement>, StorageOperationStatus> followedResources;
+ if (componentType == ComponentTypeEnum.RESOURCE) {
+ followedResources = nodeTypeOperation.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType);
+ } else {
+ followedResources = topologyTemplateOperation.getFollowedComponent(userId, lifecycleStates, lastStateStates, componentType);
+ }
Set<T> components = new HashSet<>();
- if (followedResources.isRight() && followedResources.right().value() != StorageOperationStatus.NOT_FOUND) {
- return Either.right(followedResources.right().value());
- }
- if (followedResources.isLeft()) {
- List<ToscaElement> toscaElements = followedResources.left().value();
- toscaElements.forEach(te -> {
- T component = ModelConverter.convertFromToscaElement(te);
- components.add(component);
- });
- }
- return Either.left(components);
- }
-
- public Either<Resource, StorageOperationStatus> getLatestCertifiedNodeTypeByToscaResourceName(String toscaResourceName) {
-
- return getLatestCertifiedByToscaResourceName(toscaResourceName, VertexTypeEnum.NODE_TYPE, JsonParseFlagEnum.ParseMetadata);
- }
-
- public Either<Resource, StorageOperationStatus> getLatestCertifiedByToscaResourceName(String toscaResourceName, VertexTypeEnum vertexType, JsonParseFlagEnum parseFlag) {
-
- Either<Resource, StorageOperationStatus> result = null;
- Map<GraphPropertyEnum, Object> props = new HashMap<GraphPropertyEnum, Object>();
- props.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, toscaResourceName);
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
- Either<List<GraphVertex>, TitanOperationStatus> getLatestRes = titanDao.getByCriteria(vertexType, props, parseFlag);
-
- if (getLatestRes.isRight()) {
- TitanOperationStatus status = getLatestRes.right().value();
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- }
- if (result == null) {
- List<GraphVertex> resources = getLatestRes.left().value();
- double version = 0.0;
- GraphVertex highestResource = null;
- for (GraphVertex resource : resources) {
- double resourceVersion = Double.parseDouble((String) resource.getJsonMetadataField(JsonPresentationFields.VERSION));
- if (resourceVersion > version) {
- version = resourceVersion;
- highestResource = resource;
- }
- }
- result = getToscaElement(highestResource.getUniqueId());
- }
- return result;
- }
+ if (followedResources.isRight() && followedResources.right().value() != StorageOperationStatus.NOT_FOUND) {
+ return Either.right(followedResources.right().value());
+ }
+ if (followedResources.isLeft()) {
+ List<ToscaElement> toscaElements = followedResources.left().value();
+ toscaElements.forEach(te -> {
+ T component = ModelConverter.convertFromToscaElement(te);
+ components.add(component);
+ });
+ }
+ return Either.left(components);
+ }
+
+ public Either<Resource, StorageOperationStatus> getLatestCertifiedNodeTypeByToscaResourceName(String toscaResourceName) {
+
+ return getLatestCertifiedByToscaResourceName(toscaResourceName, VertexTypeEnum.NODE_TYPE, JsonParseFlagEnum.ParseMetadata);
+ }
+
+ public Either<Resource, StorageOperationStatus> getLatestCertifiedByToscaResourceName(String toscaResourceName, VertexTypeEnum vertexType, JsonParseFlagEnum parseFlag) {
+
+ Either<Resource, StorageOperationStatus> result = null;
+ Map<GraphPropertyEnum, Object> props = new HashMap<GraphPropertyEnum, Object>();
+ props.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, toscaResourceName);
+ props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ Either<List<GraphVertex>, TitanOperationStatus> getLatestRes = titanDao.getByCriteria(vertexType, props, parseFlag);
+
+ if (getLatestRes.isRight()) {
+ TitanOperationStatus status = getLatestRes.right().value();
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+ if (result == null) {
+ List<GraphVertex> resources = getLatestRes.left().value();
+ double version = 0.0;
+ GraphVertex highestResource = null;
+ for (GraphVertex resource : resources) {
+ double resourceVersion = Double.parseDouble((String) resource.getJsonMetadataField(JsonPresentationFields.VERSION));
+ if (resourceVersion > version) {
+ version = resourceVersion;
+ highestResource = resource;
+ }
+ }
+ result = getToscaElement(highestResource.getUniqueId());
+ }
+ return result;
+ }
+
+ public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName) {
+ Either<Boolean, StorageOperationStatus> validateUniquenessRes = validateToscaResourceNameUniqueness(templateName);
+ if (validateUniquenessRes.isLeft()) {
+ return Either.left(!validateUniquenessRes.left().value());
+ }
+ return validateUniquenessRes;
+ }
+
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String componentId, RequirementCapabilityRelDef requirementDef) {
+ return nodeTemplateOperation.dissociateResourceInstances(componentId, requirementDef);
+
+ }
+
+ public StorageOperationStatus associateResourceInstances(String componentId, List<RequirementCapabilityRelDef> relations) {
+ Either<List<RequirementCapabilityRelDef>, StorageOperationStatus> status = nodeTemplateOperation.associateResourceInstances(componentId, relations);
+ if (status.isRight()) {
+ return status.right().value();
+ }
+ return StorageOperationStatus.OK;
+ }
+
+ protected Either<Boolean, StorageOperationStatus> validateToscaResourceNameUniqueness(String name) {
+
+ Map<GraphPropertyEnum, Object> properties = new HashMap<GraphPropertyEnum, Object>();
+ properties.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, name);
+
+ Either<List<GraphVertex>, TitanOperationStatus> resources = titanDao.getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
+
+ if (resources.isRight() && resources.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("failed to get resources from graph with property name: {}", name);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
+ }
+ List<GraphVertex> resourceList = (resources.isLeft() ? resources.left().value() : null);
+ if (resourceList != null && resourceList.size() > 0) {
+ if (log.isDebugEnabled()) {
+ StringBuilder builder = new StringBuilder();
+ for (GraphVertex resourceData : resourceList) {
+ builder.append(resourceData.getUniqueId() + "|");
+ }
+ log.debug("resources with property name:{} exists in graph. found {}", name, builder.toString());
+ }
+ return Either.left(false);
+ } else {
+ log.debug("resources with property name:{} does not exists in graph", name);
+ return Either.left(true);
+ }
+
+ }
+
+ /**
+ *
+ * @param newComponent
+ * @param oldComponent
+ * @return
+ */
+ public <T extends Component> Either<T, StorageOperationStatus> overrideComponent(T newComponent, T oldComponent) {
+
+ // TODO
+ // newComponent.setInterfaces(oldComponent.getInterfaces);
+ newComponent.setArtifacts(oldComponent.getArtifacts());
+ newComponent.setDeploymentArtifacts(oldComponent.getDeploymentArtifacts());
+ newComponent.setGroups(oldComponent.getGroups());
+ newComponent.setInputs(null);
+ newComponent.setLastUpdateDate(null);
+ newComponent.setHighestVersion(true);
+
+ Either<GraphVertex, TitanOperationStatus> componentVEither = titanDao.getVertexById(oldComponent.getUniqueId(), JsonParseFlagEnum.NoParse);
+ if (componentVEither.isRight()) {
+ log.debug("Falied to fetch component {} error {}", oldComponent.getUniqueId(), componentVEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(componentVEither.right().value()));
+ }
+ GraphVertex componentv = componentVEither.left().value();
+ Either<GraphVertex, TitanOperationStatus> parentVertexEither = titanDao.getParentVertex(componentv, EdgeLabelEnum.VERSION, JsonParseFlagEnum.NoParse);
+ if (parentVertexEither.isRight() && parentVertexEither.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("Falied to fetch parent version for component {} error {}", oldComponent.getUniqueId(), parentVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentVertexEither.right().value()));
+ }
+
+ Either<ToscaElement, StorageOperationStatus> deleteToscaComponent = deleteToscaElement(componentv);
+ if (deleteToscaComponent.isRight()) {
+ log.debug("Falied to remove old component {} error {}", oldComponent.getUniqueId(), deleteToscaComponent.right().value());
+ return Either.right(deleteToscaComponent.right().value());
+ }
+ Either<T, StorageOperationStatus> createToscaComponent = createToscaComponent(newComponent);
+ if (createToscaComponent.isRight()) {
+ log.debug("Falied to create tosca element component {} error {}", newComponent.getUniqueId(), createToscaComponent.right().value());
+ return Either.right(createToscaComponent.right().value());
+ }
+ T newElement = createToscaComponent.left().value();
+ Either<GraphVertex, TitanOperationStatus> newVersionEither = titanDao.getVertexById(newElement.getUniqueId(), JsonParseFlagEnum.NoParse);
+ if (newVersionEither.isRight()) {
+ log.debug("Falied to fetch new tosca element component {} error {}", newComponent.getUniqueId(), newVersionEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(newVersionEither.right().value()));
+ }
+ if (parentVertexEither.isLeft()) {
+ GraphVertex previousVersionV = parentVertexEither.left().value();
+ TitanOperationStatus createEdge = titanDao.createEdge(previousVersionV, newVersionEither.left().value(), EdgeLabelEnum.VERSION, null);
+ if (createEdge != TitanOperationStatus.OK) {
+ log.debug("Falied to associate to previous version {} new version {} error {}", previousVersionV.getUniqueId(), newVersionEither.right().value(), createEdge);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createEdge));
+ }
+ }
+ return Either.left(newElement);
+ }
+
+ /**
+ *
+ * @param componentToUpdate
+ * @return
+ */
+ public <T extends Component> Either<T, StorageOperationStatus> updateToscaElement(T componentToUpdate) {
+ return updateToscaElement(componentToUpdate, new ComponentParametersView());
+ }
+
+ /**
+ *
+ * @param componentToUpdate
+ * @param type
+ * @param filterResult
+ * @return
+ */
+ public <T extends Component> Either<T, StorageOperationStatus> updateToscaElement(T componentToUpdate, ComponentParametersView filterResult) {
+ String componentId = componentToUpdate.getUniqueId();
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseAll);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+ }
+ GraphVertex elementV = getVertexEither.left().value();
+ ToscaElementOperation toscaElementOperation = getToscaElementOperation(elementV);
+
+ ToscaElement toscaElementToUpdate = ModelConverter.convertToToscaElement(componentToUpdate);
+ Either<ToscaElement, StorageOperationStatus> updateToscaElement = toscaElementOperation.updateToscaElement(toscaElementToUpdate, elementV, filterResult);
+ if (updateToscaElement.isRight()) {
+ log.debug("Failed to update tosca element {} error {}", componentId, updateToscaElement.right().value());
+ return Either.right(updateToscaElement.right().value());
+ }
+ return Either.left(ModelConverter.convertFromToscaElement(updateToscaElement.left().value()));
+ }
+
+ private <T extends Component> Either<T, StorageOperationStatus> getLatestByName(GraphPropertyEnum property, String nodeName) {
+ Either<T, StorageOperationStatus> result;
+
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+
+ propertiesToMatch.put(property, nodeName);
+ propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> highestResources = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata);
+ if (highestResources.isRight()) {
+ TitanOperationStatus status = highestResources.right().value();
+ log.debug("failed to find resource with name {}. status={} ", nodeName, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+
+ List<GraphVertex> resources = highestResources.left().value();
+ double version = 0.0;
+ GraphVertex highestResource = null;
+ for (GraphVertex vertex : resources) {
+ Object versionObj = vertex.getMetadataProperty(GraphPropertyEnum.VERSION);
+ double resourceVersion = Double.valueOf((String) versionObj);
+ if (resourceVersion > version) {
+ version = resourceVersion;
+ highestResource = vertex;
+ }
+ }
+ return getToscaElementByOperation(highestResource);
+ }
+
+ public <T extends Component> Either<List<T>, StorageOperationStatus> getBySystemName(ComponentTypeEnum componentType, String systemName) {
+
+ Either<List<T>, StorageOperationStatus> result = null;
+ Either<T, StorageOperationStatus> getComponentRes;
+ List<T> components = new ArrayList<>();
+ List<GraphVertex> componentVertices;
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+
+ propertiesToMatch.put(GraphPropertyEnum.SYSTEM_NAME, systemName);
+ if (componentType != null)
+ propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
+
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getComponentsRes = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+ if (getComponentsRes.isRight()) {
+ TitanOperationStatus status = getComponentsRes.right().value();
+ log.debug("Failed to fetch the component with system name {}. Status is {} ", systemName, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+ if (result == null) {
+ componentVertices = getComponentsRes.left().value();
+ for (GraphVertex componentVertex : componentVertices) {
+ getComponentRes = getToscaElementByOperation(componentVertex);
+ if (getComponentRes.isRight()) {
+ log.debug("Failed to get the component {}. Status is {} ", componentVertex.getJsonMetadataField(JsonPresentationFields.NAME), getComponentRes.right().value());
+ result = Either.right(getComponentRes.right().value());
+ break;
+ }
+ T componentBySystemName = getComponentRes.left().value();
+ log.debug("Found component, id: {}", componentBySystemName.getUniqueId());
+ components.add(componentBySystemName);
+ }
+ }
+ if (result == null) {
+ result = Either.left(components);
+ }
+ return result;
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getComponentByNameAndVersion(ComponentTypeEnum componentType, String name, String version) {
+ return getComponentByNameAndVersion(componentType, name, version, JsonParseFlagEnum.ParseAll);
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getComponentByNameAndVersion(ComponentTypeEnum componentType, String name, String version, JsonParseFlagEnum parseFlag) {
+ Either<T, StorageOperationStatus> result;
+
+ Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> hasNotProperties = new EnumMap<>(GraphPropertyEnum.class);
+
+ hasProperties.put(GraphPropertyEnum.NAME, name);
+ hasProperties.put(GraphPropertyEnum.VERSION, version);
+ hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
+ if (componentType != null) {
+ hasProperties.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
+ }
+ Either<List<GraphVertex>, TitanOperationStatus> getResourceRes = titanDao.getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
+ if (getResourceRes.isRight()) {
+ TitanOperationStatus status = getResourceRes.right().value();
+ log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+ return getToscaElementByOperation(getResourceRes.left().value().get(0));
+ }
+
+ public <T extends Component> Either<List<T>, StorageOperationStatus> getCatalogComponents(ComponentTypeEnum componentType, List<OriginTypeEnum> excludeTypes, boolean isHighestVersions) {
+ List<T> components = new ArrayList<>();
+ Either<List<ToscaElement>, StorageOperationStatus> catalogDataResult;
+ List<ToscaElement> toscaElements = new ArrayList<>();
+ List<ResourceTypeEnum> excludedResourceTypes =
+ Optional.ofNullable(excludeTypes).orElse(Collections.emptyList())
+ .stream()
+ .filter(type -> !type.equals(OriginTypeEnum.SERVICE))
+ .map(type -> ResourceTypeEnum.getTypeByName(type.name())).collect(Collectors.toList());
+
+ switch (componentType) {
+ case RESOURCE:
+ catalogDataResult = nodeTypeOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE,excludedResourceTypes , isHighestVersions);
+ if (catalogDataResult.isRight()) {
+ return Either.right(catalogDataResult.right().value());
+ }
+ toscaElements = catalogDataResult.left().value();
+ break;
+ case SERVICE:
+ if (excludeTypes!= null && excludeTypes.contains(OriginTypeEnum.SERVICE)) {
+ break;
+ }
+ catalogDataResult = topologyTemplateOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, null, isHighestVersions);
+ if (catalogDataResult.isRight()) {
+ return Either.right(catalogDataResult.right().value());
+ }
+ toscaElements = catalogDataResult.left().value();
+ break;
+ default:
+ log.debug("Not supported component type {}", componentType);
+ return Either.right(StorageOperationStatus.BAD_REQUEST);
+ }
+ toscaElements.forEach(te -> {
+ T component = ModelConverter.convertFromToscaElement(te);
+ components.add(component);
+ });
+ return Either.left(components);
+ }
+
+ public Either<List<String>, StorageOperationStatus> deleteMarkedElements(ComponentTypeEnum componentType) {
+ Either<List<GraphVertex>, StorageOperationStatus> allComponentsMarkedForDeletion;
+ List<String> deleted = new ArrayList<>();
+ switch (componentType) {
+ case RESOURCE:
+ allComponentsMarkedForDeletion = nodeTypeOperation.getAllComponentsMarkedForDeletion(componentType);
+ break;
+ case SERVICE:
+ case PRODUCT:
+ allComponentsMarkedForDeletion = topologyTemplateOperation.getAllComponentsMarkedForDeletion(componentType);
+ break;
+ default:
+ log.debug("Not supported component type {}", componentType);
+ return Either.right(StorageOperationStatus.BAD_REQUEST);
+ }
+ if (allComponentsMarkedForDeletion.isRight()) {
+ return Either.right(allComponentsMarkedForDeletion.right().value());
+ }
+ List<GraphVertex> allMarked = allComponentsMarkedForDeletion.left().value();
+
+ Either<List<GraphVertex>, TitanOperationStatus> allNotDeletedElements = topologyTemplateOperation.getAllNotDeletedElements();
+ if (allNotDeletedElements.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(allNotDeletedElements.right().value()));
+ }
+ List<GraphVertex> allNonMarked = allNotDeletedElements.left().value();
+ for (GraphVertex elementV : allMarked) {
+ if (topologyTemplateOperation.isInUse(elementV, allNonMarked) == false) {
+ Either<ToscaElement, StorageOperationStatus> deleteToscaElement = deleteToscaElement(elementV);
+ if (deleteToscaElement.isRight()) {
+ log.debug("Failed to delete marked element {} error {}", elementV.getUniqueId(), deleteToscaElement.right().value());
+ }
+ } else {
+ deleted.add(elementV.getUniqueId());
+ log.debug("Marked element {} in use. don't delete it", elementV.getUniqueId());
+ }
+ }
+ return Either.left(deleted);
+ }
+
+ public Either<List<String>, StorageOperationStatus> getAllComponentsMarkedForDeletion(ComponentTypeEnum componentType) {
+ Either<List<GraphVertex>, StorageOperationStatus> allComponentsMarkedForDeletion;
+ switch (componentType) {
+ case RESOURCE:
+ allComponentsMarkedForDeletion = nodeTypeOperation.getAllComponentsMarkedForDeletion(componentType);
+ break;
+ case SERVICE:
+ case PRODUCT:
+ allComponentsMarkedForDeletion = topologyTemplateOperation.getAllComponentsMarkedForDeletion(componentType);
+ break;
+ default:
+ log.debug("Not supported component type {}", componentType);
+ return Either.right(StorageOperationStatus.BAD_REQUEST);
+ }
+ if (allComponentsMarkedForDeletion.isRight()) {
+ return Either.right(allComponentsMarkedForDeletion.right().value());
+ }
+ return Either.left(allComponentsMarkedForDeletion.left().value().stream().map(v -> v.getUniqueId()).collect(Collectors.toList()));
+ }
+
+ public Either<Boolean, StorageOperationStatus> isComponentInUse(String componentId) {
+ Either<Boolean, StorageOperationStatus> result;
+ Either<List<GraphVertex>, TitanOperationStatus> allNotDeletedElements = topologyTemplateOperation.getAllNotDeletedElements();
+ if (allNotDeletedElements.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(allNotDeletedElements.right().value()));
+ } else {
+ result = Either.left(topologyTemplateOperation.isInUse(componentId, allNotDeletedElements.left().value()));
+ }
+ return result;
+ }
+
+ public Either<ImmutablePair<Component, String>, StorageOperationStatus> addComponentInstanceToTopologyTemplate(Component containerComponent, Component origComponent, ComponentInstance componentInstance, boolean allowDeleted, User user) {
+
+ Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
+ Either<ToscaElement, StorageOperationStatus> updateContainerComponentRes = null;
+ componentInstance.setIcon(origComponent.getIcon());
+ Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> addResult = nodeTemplateOperation.addComponentInstanceToTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
+ ModelConverter.convertToToscaElement(origComponent), getNextComponentInstanceCounter(containerComponent, origComponent.getName()), componentInstance, allowDeleted, user);
+
+ if (addResult.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the component instance {} to container component {}. ", componentInstance.getName(), containerComponent.getName());
+ result = Either.right(addResult.right().value());
+ }
+ if (result == null) {
+ updateContainerComponentRes = topologyTemplateOperation.getToscaElement(containerComponent.getUniqueId());
+ if (updateContainerComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch updated topology template {} with updated component instance {}. ", containerComponent.getName(), componentInstance.getName());
+ result = Either.right(updateContainerComponentRes.right().value());
+ }
+ }
+ if (result == null) {
+ Component updatedComponent = ModelConverter.convertFromToscaElement(updateContainerComponentRes.left().value());
+ String createdInstanceId = addResult.left().value().getRight();
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been added to container component {}. ", createdInstanceId, updatedComponent.getName());
+ result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
+ }
+ return result;
+ }
+
+ public StorageOperationStatus associateComponentInstancesToComponent(Component containerComponent, Map<ComponentInstance, Resource> resourcesInstancesMap, boolean allowDeleted) {
+
+ StorageOperationStatus result = null;
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Going to add component instances to component {}", containerComponent.getUniqueId());
+
+ Either<GraphVertex, TitanOperationStatus> metadataVertex = titanDao.getVertexById(containerComponent.getUniqueId(), JsonParseFlagEnum.ParseAll);
+ if (metadataVertex.isRight()) {
+ TitanOperationStatus status = metadataVertex.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+ if (result == null) {
+ result = nodeTemplateOperation.associateComponentInstancesToComponent(containerComponent, resourcesInstancesMap, metadataVertex.left().value(), allowDeleted);
+ }
+ return result;
+ }
+
+ public Either<ImmutablePair<Component, String>, StorageOperationStatus> updateComponentInstanceMetadataOfTopologyTemplate(Component containerComponent, Component origComponent, ComponentInstance componentInstance) {
+
+ Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
+
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(), containerComponent.getName());
+ componentInstance.setIcon(origComponent.getIcon());
+ Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation.updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
+ ModelConverter.convertToToscaElement(origComponent), componentInstance);
+ if (updateResult.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(), containerComponent.getName());
+ result = Either.right(updateResult.right().value());
+ }
+ if (result == null) {
+ Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
+ String createdInstanceId = updateResult.left().value().getRight();
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The metadata of the component instance {} has been updated to container component {}. ", createdInstanceId, updatedComponent.getName());
+ result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
+ }
+ return result;
+ }
+
+ public Either<Component, StorageOperationStatus> updateComponentInstanceMetadataOfTopologyTemplate(Component containerComponent) {
+
+ Either<Component, StorageOperationStatus> result = null;
+
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to update the metadata belonging to container component {}. ", containerComponent.getName());
+
+ Either<TopologyTemplate, StorageOperationStatus> updateResult = nodeTemplateOperation.updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent));
+ if (updateResult.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the metadata belonging to container component {}. ", containerComponent.getName());
+ result = Either.right(updateResult.right().value());
+ }
+ if (result == null) {
+ Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value());
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The metadata has been updated to container component {}. ", updatedComponent.getName());
+ result = Either.left(updatedComponent);
+ }
+ return result;
+ }
+
+ public Either<ImmutablePair<Component, String>, StorageOperationStatus> deleteComponentInstanceFromTopologyTemplate(Component containerComponent, String resourceInstanceId) {
+
+ Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
+
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to delete the component instance {} belonging to container component {}. ", resourceInstanceId, containerComponent.getName());
+
+ Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation.deleteComponentInstanceFromTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), resourceInstanceId);
+ if (updateResult.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete the component instance {} belonging to container component {}. ", resourceInstanceId, containerComponent.getName());
+ result = Either.right(updateResult.right().value());
+ }
+ if (result == null) {
+ Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
+ String deletedInstanceId = updateResult.left().value().getRight();
+ CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been deleted from container component {}. ", deletedInstanceId, updatedComponent.getName());
+ result = Either.left(new ImmutablePair<>(updatedComponent, deletedInstanceId));
+ }
+ return result;
+ }
+
+ private String getNextComponentInstanceCounter(Component containerComponent, String originResourceName) {
+
+ Integer nextCounter = 0;
+
+ if (CollectionUtils.isNotEmpty(containerComponent.getComponentInstances())) {
+
+ String normalizedName = ValidationUtils.normalizeComponentInstanceName(originResourceName);
+ Integer maxCounterFromNames = getMaxCounterFromNames(containerComponent, normalizedName);
+ Integer maxCounterFromIds = getMaxCounterFromIds(containerComponent, normalizedName);
+
+ if (maxCounterFromNames == null && maxCounterFromIds != null) {
+ nextCounter = maxCounterFromIds + 1;
+ } else if (maxCounterFromIds == null && maxCounterFromNames != null) {
+ nextCounter = maxCounterFromNames + 1;
+ } else if (maxCounterFromIds != null && maxCounterFromNames != null) {
+ nextCounter = maxCounterFromNames > maxCounterFromIds ? maxCounterFromNames + 1 : maxCounterFromIds + 1;
+ }
+ }
+ return nextCounter.toString();
+ }
+
+ private Integer getMaxCounterFromNames(Component containerComponent, String normalizedName) {
+
+ Integer maxCounter = 0;
+ List<String> countersStr = containerComponent.getComponentInstances().stream().filter(ci -> ci.getNormalizedName() != null && ci.getNormalizedName().startsWith(normalizedName)).map(ci -> ci.getNormalizedName().split(normalizedName)[1])
+ .collect(Collectors.toList());
+
+ if (CollectionUtils.isEmpty(countersStr)) {
+ return null;
+ }
+ Integer currCounter = null;
+ for (String counter : countersStr) {
+ if (StringUtils.isEmpty(counter)) {
+ continue;
+ }
+ try {
+ currCounter = Integer.parseInt(counter);
+ } catch (Exception e) {
+ continue;
+ }
+ maxCounter = maxCounter < currCounter ? currCounter : maxCounter;
+ }
+ if (currCounter == null) {
+ return null;
+ }
+ return maxCounter;
+ }
+
+ private Integer getMaxCounterFromIds(Component containerComponent, String normalizedName) {
+
+ Integer maxCounter = 0;
+ List<String> countersStr = containerComponent.getComponentInstances().stream().filter(ci -> ci.getUniqueId() != null && ci.getUniqueId().contains(normalizedName)).map(ci -> ci.getUniqueId().split(normalizedName)[1])
+ .collect(Collectors.toList());
+
+ if (CollectionUtils.isEmpty(countersStr)) {
+ return null;
+ }
+ Integer currCounter = null;
+ for (String counter : countersStr) {
+ if (StringUtils.isEmpty(counter)) {
+ continue;
+ }
+ try {
+ currCounter = Integer.parseInt(counter);
+ } catch (Exception e) {
+ continue;
+ }
+ maxCounter = maxCounter < currCounter ? currCounter : maxCounter;
+ }
+ if (currCounter == null) {
+ return null;
+ }
+ return maxCounter;
+ }
+
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String componentId, RequirementCapabilityRelDef requirementDef) {
+ return nodeTemplateOperation.associateResourceInstances(componentId, requirementDef);
+
+ }
+
+ public Either<List<InputDefinition>, StorageOperationStatus> createAndAssociateInputs(Map<String, InputDefinition> inputs, String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, PropertyDataDefinition> inputsMap = inputs.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
+
+ StorageOperationStatus status = topologyTemplateOperation.associateInputsToComponent(vertex, inputsMap, componentId);
+
+ if (StorageOperationStatus.OK == status) {
+ log.debug("Component created successfully!!!");
+ List<InputDefinition> inputsResList = null;
+ if (inputsMap != null && !inputsMap.isEmpty()) {
+ inputsResList = inputsMap.values().stream().map(i -> new InputDefinition(i)).collect(Collectors.toList());
+ }
+ return Either.left(inputsResList);
+ }
+ return Either.right(status);
+
+ }
+
+ public Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(Map<String, InputDefinition> inputs, String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, PropertyDataDefinition> inputsMap = inputs.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
+
+ StorageOperationStatus status = topologyTemplateOperation.addToscaDataToToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsMap, JsonPresentationFields.NAME);
+
+ if (StorageOperationStatus.OK == status) {
+ log.debug("Component created successfully!!!");
+ List<InputDefinition> inputsResList = null;
+ if (inputsMap != null && !inputsMap.isEmpty()) {
+ inputsResList = inputsMap.values().stream().map(i -> new InputDefinition(i)).collect(Collectors.toList());
+ }
+ return Either.left(inputsResList);
+ }
+ return Either.right(status);
+
+ }
+
+ public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> associateComponentInstancePropertiesToComponent(Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
+
+ }
+
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, MapPropertiesDataDefinition> instPropsMap = new HashMap<>();
+ if (instProperties != null) {
- public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName) {
- Either<Boolean, StorageOperationStatus> validateUniquenessRes = validateToscaResourceNameUniqueness(templateName);
- if (validateUniquenessRes.isLeft()) {
- return Either.left(!validateUniquenessRes.left().value());
- }
- return validateUniquenessRes;
- }
-
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String componentId, RequirementCapabilityRelDef requirementDef) {
- return nodeTemplateOperation.dissociateResourceInstances(componentId, requirementDef);
-
- }
-
- public StorageOperationStatus associateResourceInstances(String componentId, List<RequirementCapabilityRelDef> relations) {
- Either<List<RequirementCapabilityRelDef>, StorageOperationStatus> status = nodeTemplateOperation.associateResourceInstances(componentId, relations);
- if (status.isRight()) {
- return status.right().value();
- }
- return StorageOperationStatus.OK;
- }
-
- protected Either<Boolean, StorageOperationStatus> validateToscaResourceNameUniqueness(String name) {
-
- Map<GraphPropertyEnum, Object> properties = new HashMap<GraphPropertyEnum, Object>();
- properties.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, name);
-
- Either<List<GraphVertex>, TitanOperationStatus> resources = titanDao.getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
-
- if (resources.isRight() && resources.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("failed to get resources from graph with property name: {}", name);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
- }
- List<GraphVertex> resourceList = (resources.isLeft() ? resources.left().value() : null);
- if (resourceList != null && resourceList.size() > 0) {
- if (log.isDebugEnabled()) {
- StringBuilder builder = new StringBuilder();
- for (GraphVertex resourceData : resourceList) {
- builder.append(resourceData.getUniqueId() + "|");
- }
- log.debug("resources with property name:{} exists in graph. found {}", name, builder.toString());
- }
- return Either.left(false);
- } else {
- log.debug("resources with property name:{} does not exists in graph", name);
- return Either.left(true);
- }
-
- }
-
- /**
- *
- * @param newComponent
- * @param oldComponent
- * @return
- */
- public <T extends Component> Either<T, StorageOperationStatus> overrideComponent(T newComponent, T oldComponent) {
-
- // TODO
- // newComponent.setInterfaces(oldComponent.getInterfaces);
- newComponent.setArtifacts(oldComponent.getArtifacts());
- newComponent.setDeploymentArtifacts(oldComponent.getDeploymentArtifacts());
- newComponent.setGroups(oldComponent.getGroups());
- newComponent.setInputs(null);
- newComponent.setLastUpdateDate(null);
- newComponent.setHighestVersion(true);
-
- Either<GraphVertex, TitanOperationStatus> componentVEither = titanDao.getVertexById(oldComponent.getUniqueId(), JsonParseFlagEnum.NoParse);
- if (componentVEither.isRight()) {
- log.debug("Falied to fetch component {} error {}", oldComponent.getUniqueId(), componentVEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(componentVEither.right().value()));
- }
- GraphVertex componentv = componentVEither.left().value();
- Either<GraphVertex, TitanOperationStatus> parentVertexEither = titanDao.getParentVertex(componentv, EdgeLabelEnum.VERSION, JsonParseFlagEnum.NoParse);
- if (parentVertexEither.isRight() && parentVertexEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Falied to fetch parent version for component {} error {}", oldComponent.getUniqueId(), parentVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentVertexEither.right().value()));
- }
-
- Either<ToscaElement, StorageOperationStatus> deleteToscaComponent = deleteToscaElement(componentv);
- if (deleteToscaComponent.isRight()) {
- log.debug("Falied to remove old component {} error {}", oldComponent.getUniqueId(), deleteToscaComponent.right().value());
- return Either.right(deleteToscaComponent.right().value());
- }
- Either<T, StorageOperationStatus> createToscaComponent = createToscaComponent(newComponent);
- if (createToscaComponent.isRight()) {
- log.debug("Falied to create tosca element component {} error {}", newComponent.getUniqueId(), createToscaComponent.right().value());
- return Either.right(createToscaComponent.right().value());
- }
- T newElement = createToscaComponent.left().value();
- Either<GraphVertex, TitanOperationStatus> newVersionEither = titanDao.getVertexById(newElement.getUniqueId(), JsonParseFlagEnum.NoParse);
- if (newVersionEither.isRight()) {
- log.debug("Falied to fetch new tosca element component {} error {}", newComponent.getUniqueId(), newVersionEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(newVersionEither.right().value()));
- }
- if (parentVertexEither.isLeft()) {
- GraphVertex previousVersionV = parentVertexEither.left().value();
- TitanOperationStatus createEdge = titanDao.createEdge(previousVersionV, newVersionEither.left().value(), EdgeLabelEnum.VERSION, null);
- if (createEdge != TitanOperationStatus.OK) {
- log.debug("Falied to associate to previous version {} new version {} error {}", previousVersionV.getUniqueId(), newVersionEither.right().value(), createEdge);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createEdge));
- }
- }
- return Either.left(newElement);
- }
-
- /**
- *
- * @param componentToUpdate
- * @return
- */
- public <T extends Component> Either<T, StorageOperationStatus> updateToscaElement(T componentToUpdate) {
- return updateToscaElement(componentToUpdate, new ComponentParametersView());
- }
+ MapPropertiesDataDefinition propertiesMap;
+ for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
+ propertiesMap = new MapPropertiesDataDefinition();
- /**
- *
- * @param componentToUpdate
- * @param type
- * @param filterResult
- * @return
- */
- public <T extends Component> Either<T, StorageOperationStatus> updateToscaElement(T componentToUpdate, ComponentParametersView filterResult) {
- String componentId = componentToUpdate.getUniqueId();
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseAll);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
- }
- GraphVertex elementV = getVertexEither.left().value();
- ToscaElementOperation toscaElementOperation = getToscaElementOperation(elementV);
-
- ToscaElement toscaElementToUpdate = ModelConverter.convertToToscaElement(componentToUpdate);
- Either<ToscaElement, StorageOperationStatus> updateToscaElement = toscaElementOperation.updateToscaElement(toscaElementToUpdate, elementV, filterResult);
- if (updateToscaElement.isRight()) {
- log.debug("Failed to update tosca element {} error {}", componentId, updateToscaElement.right().value());
- return Either.right(updateToscaElement.right().value());
- }
- return Either.left(ModelConverter.convertFromToscaElement(updateToscaElement.left().value()));
- }
-
- private <T extends Component> Either<T, StorageOperationStatus> getLatestByName(GraphPropertyEnum property, String nodeName) {
- Either<T, StorageOperationStatus> result;
-
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ propertiesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
+
+ instPropsMap.put(entry.getKey(), propertiesMap);
+ }
+ }
+
+ StorageOperationStatus status = topologyTemplateOperation.associateInstPropertiesToComponent(vertex, instPropsMap);
- propertiesToMatch.put(property, nodeName);
- propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ if (StorageOperationStatus.OK == status) {
+ log.debug("Component created successfully!!!");
+ return Either.left(instProperties);
+ }
+ return Either.right(status);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> highestResources = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseMetadata);
- if (highestResources.isRight()) {
- TitanOperationStatus status = highestResources.right().value();
- log.debug("failed to find resource with name {}. status={} ", nodeName, status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- return result;
- }
-
- List<GraphVertex> resources = highestResources.left().value();
- double version = 0.0;
- GraphVertex highestResource = null;
- for (GraphVertex vertex : resources) {
- Object versionObj = vertex.getMetadataProperty(GraphPropertyEnum.VERSION);
- double resourceVersion = Double.valueOf((String) versionObj);
- if (resourceVersion > version) {
- version = resourceVersion;
- highestResource = vertex;
- }
- }
- return getToscaElementByOperation(highestResource);
- }
-
- public <T extends Component> Either<List<T>, StorageOperationStatus> getBySystemName(ComponentTypeEnum componentType, String systemName) {
-
- Either<List<T>, StorageOperationStatus> result = null;
- Either<T, StorageOperationStatus> getComponentRes;
- List<T> components = new ArrayList<>();
- List<GraphVertex> componentVertices;
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
-
- propertiesToMatch.put(GraphPropertyEnum.SYSTEM_NAME, systemName);
- if (componentType != null)
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
-
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> getComponentsRes = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- if (getComponentsRes.isRight()) {
- TitanOperationStatus status = getComponentsRes.right().value();
- log.debug("Failed to fetch the component with system name {}. Status is {} ", systemName, status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- }
- if (result == null) {
- componentVertices = getComponentsRes.left().value();
- for (GraphVertex componentVertex : componentVertices) {
- getComponentRes = getToscaElementByOperation(componentVertex);
- if (getComponentRes.isRight()) {
- log.debug("Failed to get the component {}. Status is {} ", componentVertex.getJsonMetadataField(JsonPresentationFields.NAME), getComponentRes.right().value());
- result = Either.right(getComponentRes.right().value());
- break;
- }
- T componentBySystemName = getComponentRes.left().value();
- log.debug("Found component, id: {}", componentBySystemName.getUniqueId());
- components.add(componentBySystemName);
- }
- }
- if (result == null) {
- result = Either.left(components);
- }
- return result;
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getComponentByNameAndVersion(ComponentTypeEnum componentType, String name, String version) {
- return getComponentByNameAndVersion(componentType, name, version, JsonParseFlagEnum.ParseAll);
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getComponentByNameAndVersion(ComponentTypeEnum componentType, String name, String version, JsonParseFlagEnum parseFlag) {
- Either<T, StorageOperationStatus> result;
-
- Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> hasNotProperties = new EnumMap<>(GraphPropertyEnum.class);
-
- hasProperties.put(GraphPropertyEnum.NAME, name);
- hasProperties.put(GraphPropertyEnum.VERSION, version);
- hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
- if (componentType != null) {
- hasProperties.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
- }
- Either<List<GraphVertex>, TitanOperationStatus> getResourceRes = titanDao.getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
- if (getResourceRes.isRight()) {
- TitanOperationStatus status = getResourceRes.right().value();
- log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- return result;
- }
- return getToscaElementByOperation(getResourceRes.left().value().get(0));
- }
-
- public <T extends Component> Either<List<T>, StorageOperationStatus> getCatalogComponents(ComponentTypeEnum componentType, boolean isHighestVersions) {
- List<T> components = new ArrayList<>();
- Either<List<ToscaElement>, StorageOperationStatus> catalogDataResult;
- List<ToscaElement> toscaElements;
- switch (componentType) {
- case RESOURCE:
- catalogDataResult = nodeTypeOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, ToscaElementTypeEnum.NodeType, isHighestVersions);
- if (catalogDataResult.isRight()) {
- return Either.right(catalogDataResult.right().value());
- }
- toscaElements = catalogDataResult.left().value();
- Either<List<ToscaElement>, StorageOperationStatus> resourceCatalogData = topologyTemplateOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, ToscaElementTypeEnum.TopologyTemplate, isHighestVersions);
- if (resourceCatalogData.isRight()) {
- return Either.right(resourceCatalogData.right().value());
- }
- toscaElements.addAll(resourceCatalogData.left().value());
- break;
- case SERVICE:
- catalogDataResult = topologyTemplateOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, ToscaElementTypeEnum.TopologyTemplate, isHighestVersions);
- if (catalogDataResult.isRight()) {
- return Either.right(catalogDataResult.right().value());
- }
- toscaElements = catalogDataResult.left().value();
- break;
- default:
- log.debug("Not supported component type {}", componentType);
- return Either.right(StorageOperationStatus.BAD_REQUEST);
- }
- toscaElements.forEach(te -> {
- T component = ModelConverter.convertFromToscaElement(te);
- components.add(component);
- });
- return Either.left(components);
- }
-
- public Either<List<String>, StorageOperationStatus> deleteMarkedElements(ComponentTypeEnum componentType) {
- Either<List<GraphVertex>, StorageOperationStatus> allComponentsMarkedForDeletion;
- List<String> deleted = new ArrayList<>();
- switch (componentType) {
- case RESOURCE:
- allComponentsMarkedForDeletion = nodeTypeOperation.getAllComponentsMarkedForDeletion(componentType);
- break;
- case SERVICE:
- case PRODUCT:
- allComponentsMarkedForDeletion = topologyTemplateOperation.getAllComponentsMarkedForDeletion(componentType);
- break;
- default:
- log.debug("Not supported component type {}", componentType);
- return Either.right(StorageOperationStatus.BAD_REQUEST);
- }
- if (allComponentsMarkedForDeletion.isRight()) {
- return Either.right(allComponentsMarkedForDeletion.right().value());
- }
- List<GraphVertex> allMarked = allComponentsMarkedForDeletion.left().value();
-
- Either<List<GraphVertex>, TitanOperationStatus> allNotDeletedElements = topologyTemplateOperation.getAllNotDeletedElements();
- if (allNotDeletedElements.isRight()) {
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(allNotDeletedElements.right().value()));
- }
- List<GraphVertex> allNonMarked = allNotDeletedElements.left().value();
- for (GraphVertex elementV : allMarked) {
- if (topologyTemplateOperation.isInUse(elementV, allNonMarked) == false) {
- Either<ToscaElement, StorageOperationStatus> deleteToscaElement = deleteToscaElement(elementV);
- if (deleteToscaElement.isRight()) {
- log.debug("Failed to delete marked element {} error {}", elementV.getUniqueId(), deleteToscaElement.right().value());
- }
- } else {
- deleted.add(elementV.getUniqueId());
- log.debug("Marked element {} in use. don't delete it", elementV.getUniqueId());
- }
- }
- return Either.left(deleted);
- }
-
- public Either<List<String>, StorageOperationStatus> getAllComponentsMarkedForDeletion(ComponentTypeEnum componentType) {
- Either<List<GraphVertex>, StorageOperationStatus> allComponentsMarkedForDeletion;
- switch (componentType) {
- case RESOURCE:
- allComponentsMarkedForDeletion = nodeTypeOperation.getAllComponentsMarkedForDeletion(componentType);
- break;
- case SERVICE:
- case PRODUCT:
- allComponentsMarkedForDeletion = topologyTemplateOperation.getAllComponentsMarkedForDeletion(componentType);
- break;
- default:
- log.debug("Not supported component type {}", componentType);
- return Either.right(StorageOperationStatus.BAD_REQUEST);
- }
- if (allComponentsMarkedForDeletion.isRight()) {
- return Either.right(allComponentsMarkedForDeletion.right().value());
- }
- return Either.left(allComponentsMarkedForDeletion.left().value().stream().map(v -> v.getUniqueId()).collect(Collectors.toList()));
- }
-
- public Either<Boolean, StorageOperationStatus> isComponentInUse(String componentId) {
- Either<Boolean, StorageOperationStatus> result;
- Either<List<GraphVertex>, TitanOperationStatus> allNotDeletedElements = topologyTemplateOperation.getAllNotDeletedElements();
- if (allNotDeletedElements.isRight()) {
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(allNotDeletedElements.right().value()));
- } else {
- result = Either.left(topologyTemplateOperation.isInUse(componentId, allNotDeletedElements.left().value()));
- }
- return result;
- }
-
- public Either<ImmutablePair<Component, String>, StorageOperationStatus> addComponentInstanceToTopologyTemplate(Component containerComponent, Component origComponent, ComponentInstance componentInstance, boolean allowDeleted, User user) {
-
- Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
- Either<ToscaElement, StorageOperationStatus> updateContainerComponentRes = null;
- componentInstance.setIcon(origComponent.getIcon());
- Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> addResult = nodeTemplateOperation.addComponentInstanceToTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
- ModelConverter.convertToToscaElement(origComponent), getNextComponentInstanceCounter(containerComponent, origComponent.getName()), componentInstance, allowDeleted, user);
-
- if (addResult.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the component instance {} to container component {}. ", componentInstance.getName(), containerComponent.getName());
- result = Either.right(addResult.right().value());
- }
- if (result == null) {
- updateContainerComponentRes = topologyTemplateOperation.getToscaElement(containerComponent.getUniqueId());
- if (updateContainerComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch updated topology template {} with updated component instance {}. ", containerComponent.getName(), componentInstance.getName());
- result = Either.right(updateContainerComponentRes.right().value());
- }
- }
- if (result == null) {
- Component updatedComponent = ModelConverter.convertFromToscaElement(updateContainerComponentRes.left().value());
- String createdInstanceId = addResult.left().value().getRight();
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been added to container component {}. ", createdInstanceId, updatedComponent.getName());
- result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
- }
- return result;
- }
-
- public StorageOperationStatus associateComponentInstancesToComponent(Component containerComponent, Map<ComponentInstance, Resource> resourcesInstancesMap, boolean allowDeleted) {
-
- StorageOperationStatus result = null;
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Going to add component instances to component {}", containerComponent.getUniqueId());
-
- Either<GraphVertex, TitanOperationStatus> metadataVertex = titanDao.getVertexById(containerComponent.getUniqueId(), JsonParseFlagEnum.ParseAll);
- if (metadataVertex.isRight()) {
- TitanOperationStatus status = metadataVertex.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- status = TitanOperationStatus.INVALID_ID;
- }
- result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
- }
- if (result == null) {
- result = nodeTemplateOperation.associateComponentInstancesToComponent(containerComponent, resourcesInstancesMap, metadataVertex.left().value(), allowDeleted);
- }
- return result;
- }
-
- public Either<ImmutablePair<Component, String>, StorageOperationStatus> updateComponentInstanceMetadataOfTopologyTemplate(Component containerComponent, Component origComponent, ComponentInstance componentInstance) {
-
- Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
-
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(), containerComponent.getName());
- componentInstance.setIcon(origComponent.getIcon());
- Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation.updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
- ModelConverter.convertToToscaElement(origComponent), componentInstance);
- if (updateResult.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(), containerComponent.getName());
- result = Either.right(updateResult.right().value());
- }
- if (result == null) {
- Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
- String createdInstanceId = updateResult.left().value().getRight();
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The metadata of the component instance {} has been updated to container component {}. ", createdInstanceId, updatedComponent.getName());
- result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
- }
- return result;
- }
-
- public Either<Component, StorageOperationStatus> updateComponentInstanceMetadataOfTopologyTemplate(Component containerComponent) {
-
- Either<Component, StorageOperationStatus> result = null;
-
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to update the metadata belonging to container component {}. ", containerComponent.getName());
-
- Either<TopologyTemplate, StorageOperationStatus> updateResult = nodeTemplateOperation.updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent));
- if (updateResult.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the metadata belonging to container component {}. ", containerComponent.getName());
- result = Either.right(updateResult.right().value());
- }
- if (result == null) {
- Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value());
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The metadata has been updated to container component {}. ", updatedComponent.getName());
- result = Either.left(updatedComponent);
- }
- return result;
- }
-
- public Either<ImmutablePair<Component, String>, StorageOperationStatus> deleteComponentInstanceFromTopologyTemplate(Component containerComponent, String resourceInstanceId) {
-
- Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
-
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to delete the component instance {} belonging to container component {}. ", resourceInstanceId, containerComponent.getName());
-
- Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation.deleteComponentInstanceFromTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), resourceInstanceId);
- if (updateResult.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete the component instance {} belonging to container component {}. ", resourceInstanceId, containerComponent.getName());
- result = Either.right(updateResult.right().value());
- }
- if (result == null) {
- Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
- String deletedInstanceId = updateResult.left().value().getRight();
- CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been deleted from container component {}. ", deletedInstanceId, updatedComponent.getName());
- result = Either.left(new ImmutablePair<>(updatedComponent, deletedInstanceId));
- }
- return result;
- }
-
- private String getNextComponentInstanceCounter(Component containerComponent, String originResourceName) {
-
- Integer nextCounter = 0;
-
- if (CollectionUtils.isNotEmpty(containerComponent.getComponentInstances())) {
-
- String normalizedName = ValidationUtils.normalizeComponentInstanceName(originResourceName);
- Integer maxCounterFromNames = getMaxCounterFromNames(containerComponent, normalizedName);
- Integer maxCounterFromIds = getMaxCounterFromIds(containerComponent, normalizedName);
-
- if (maxCounterFromNames == null && maxCounterFromIds != null) {
- nextCounter = maxCounterFromIds + 1;
- } else if (maxCounterFromIds == null && maxCounterFromNames != null) {
- nextCounter = maxCounterFromNames + 1;
- } else if (maxCounterFromIds != null && maxCounterFromNames != null) {
- nextCounter = maxCounterFromNames > maxCounterFromIds ? maxCounterFromNames + 1 : maxCounterFromIds + 1;
- }
- }
- return nextCounter.toString();
- }
-
- private Integer getMaxCounterFromNames(Component containerComponent, String normalizedName) {
-
- Integer maxCounter = 0;
- List<String> countersStr = containerComponent.getComponentInstances().stream().filter(ci -> ci.getNormalizedName() != null && ci.getNormalizedName().startsWith(normalizedName)).map(ci -> ci.getNormalizedName().split(normalizedName)[1])
- .collect(Collectors.toList());
-
- if (CollectionUtils.isEmpty(countersStr)) {
- return null;
- }
- Integer currCounter = null;
- for (String counter : countersStr) {
- if (StringUtils.isEmpty(counter)) {
- continue;
- }
- try {
- currCounter = Integer.parseInt(counter);
- } catch (Exception e) {
- continue;
- }
- maxCounter = maxCounter < currCounter ? currCounter : maxCounter;
- }
- if (currCounter == null) {
- return null;
- }
- return maxCounter;
- }
-
- private Integer getMaxCounterFromIds(Component containerComponent, String normalizedName) {
-
- Integer maxCounter = 0;
- List<String> countersStr = containerComponent.getComponentInstances().stream().filter(ci -> ci.getUniqueId() != null && ci.getUniqueId().contains(normalizedName)).map(ci -> ci.getUniqueId().split(normalizedName)[1])
- .collect(Collectors.toList());
-
- if (CollectionUtils.isEmpty(countersStr)) {
- return null;
- }
- Integer currCounter = null;
- for (String counter : countersStr) {
- if (StringUtils.isEmpty(counter)) {
- continue;
- }
- try {
- currCounter = Integer.parseInt(counter);
- } catch (Exception e) {
- continue;
- }
- maxCounter = maxCounter < currCounter ? currCounter : maxCounter;
- }
- if (currCounter == null) {
- return null;
- }
- return maxCounter;
- }
-
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String componentId, RequirementCapabilityRelDef requirementDef) {
- return nodeTemplateOperation.associateResourceInstances(componentId, requirementDef);
-
- }
-
- public Either<List<InputDefinition>, StorageOperationStatus> createAndAssociateInputs(Map<String, InputDefinition> inputs, String componentId) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
-
- GraphVertex vertex = getVertexEither.left().value();
- Map<String, PropertyDataDefinition> inputsMap = inputs.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
-
- StorageOperationStatus status = topologyTemplateOperation.associateInputsToComponent(vertex, inputsMap, componentId);
-
- if (StorageOperationStatus.OK == status) {
- log.debug("Component created successfully!!!");
- List<InputDefinition> inputsResList = null;
- if (inputsMap != null && !inputsMap.isEmpty()) {
- inputsResList = inputsMap.values().stream().map(i -> new InputDefinition(i)).collect(Collectors.toList());
- }
- return Either.left(inputsResList);
- }
- return Either.right(status);
-
- }
-
- public Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(Map<String, InputDefinition> inputs, String componentId) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
-
- }
-
- GraphVertex vertex = getVertexEither.left().value();
- Map<String, PropertyDataDefinition> inputsMap = inputs.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
-
- StorageOperationStatus status = topologyTemplateOperation.addToscaDataToToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsMap, JsonPresentationFields.NAME);
-
- if (StorageOperationStatus.OK == status) {
- log.debug("Component created successfully!!!");
- List<InputDefinition> inputsResList = null;
- if (inputsMap != null && !inputsMap.isEmpty()) {
- inputsResList = inputsMap.values().stream().map(i -> new InputDefinition(i)).collect(Collectors.toList());
- }
- return Either.left(inputsResList);
- }
- return Either.right(status);
-
- }
-
- public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> associateComponentInstancePropertiesToComponent(Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
+ }
+ public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> associateComponentInstanceInputsToComponent(Map<String, List<ComponentInstanceInput>> instInputs, String componentId) {
Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
if (getVertexEither.isRight()) {
@@ -1021,13 +990,12 @@ public class ToscaOperationFacade {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value()));
}
-
GraphVertex vertex = getVertexEither.left().value();
Map<String, MapPropertiesDataDefinition> instPropsMap = new HashMap<>();
- if (instProperties != null) {
+ if (instInputs != null) {
MapPropertiesDataDefinition propertiesMap;
- for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
+ for (Entry<String, List<ComponentInstanceInput>> entry : instInputs.entrySet()) {
propertiesMap = new MapPropertiesDataDefinition();
propertiesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
@@ -1036,551 +1004,553 @@ public class ToscaOperationFacade {
}
}
- StorageOperationStatus status = topologyTemplateOperation.associateInstPropertiesToComponent(vertex, instPropsMap);
+ StorageOperationStatus status = topologyTemplateOperation.associateInstInputsToComponent(vertex, instPropsMap);
if (StorageOperationStatus.OK == status) {
log.debug("Component created successfully!!!");
- return Either.left(instProperties);
+ return Either.left(instInputs);
}
return Either.right(status);
}
+ public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> addComponentInstanceInputsToComponent(Component containerComponent, Map<String, List<ComponentInstanceInput>> instProperties) {
+
+ StorageOperationStatus status = StorageOperationStatus.OK;
+ if (instProperties != null) {
+
+ for (Entry<String, List<ComponentInstanceInput>> entry : instProperties.entrySet()) {
+ List<ComponentInstanceInput> props = entry.getValue();
+ String componentInstanseId = entry.getKey();
+ if (props != null && !props.isEmpty()) {
+ for (ComponentInstanceInput property : props) {
+ List<ComponentInstanceInput> componentInstancesInputs = containerComponent.getComponentInstancesInputs().get(componentInstanseId);
+ Optional<ComponentInstanceInput> instanceProperty = componentInstancesInputs.stream().filter(p -> p.getName().equals(property.getName())).findAny();
+ if (instanceProperty.isPresent()) {
+ status = updateComponentInstanceInput(containerComponent, componentInstanseId, property);
+ } else {
+ status = addComponentInstanceInput(containerComponent, componentInstanseId, property);
+ }
+ if (status != StorageOperationStatus.OK) {
+ log.debug("Failed to update instance input {} for instance {} error {} ", property, componentInstanseId, status);
+ return Either.right(status);
+ } else {
+ log.trace("instance input {} for instance {} updated", property, componentInstanseId);
+ }
+ }
+ }
+ }
+ }
+ return Either.left(instProperties);
+ }
+
+ public StorageOperationStatus deleteComponentInstanceInputsToComponent(Map<String, List<ComponentInstanceInput>> instProperties, String componentId) {
- public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> addComponentInstanceInputsToComponent(Component containerComponent, Map<String, List<ComponentInstanceInput>> instProperties) {
-
- StorageOperationStatus status = StorageOperationStatus.OK;
- if (instProperties != null) {
-
- for (Entry<String, List<ComponentInstanceInput>> entry : instProperties.entrySet()) {
- List<ComponentInstanceInput> props = entry.getValue();
- String componentInstanseId = entry.getKey();
- if (props != null && !props.isEmpty()) {
- for (ComponentInstanceInput property : props) {
- List<ComponentInstanceInput> componentInstancesInputs = containerComponent.getComponentInstancesInputs().get(componentInstanseId);
- Optional<ComponentInstanceInput> instanceProperty = componentInstancesInputs.stream().filter(p -> p.getName().equals(property.getName())).findAny();
- if (instanceProperty.isPresent()) {
- status = updateComponentInstanceInput(containerComponent, componentInstanseId, property);
- } else {
- status = addComponentInstanceInput(containerComponent, componentInstanseId, property);
- }
- if (status != StorageOperationStatus.OK) {
- log.debug("Failed to update instance input {} for instance {} error {} ", property, componentInstanseId, status);
- return Either.right(status);
- } else {
- log.trace("instance input {} for instance {} updated", property, componentInstanseId);
- }
- }
- }
- }
- }
- return Either.left(instProperties);
- }
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
- public StorageOperationStatus deleteComponentInstanceInputsToComponent(Map<String, List<ComponentInstanceInput>> instProperties, String componentId) {
+ }
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, MapPropertiesDataDefinition> instPropsMap = new HashMap<>();
+ if (instProperties != null) {
- }
+ MapPropertiesDataDefinition propertiesMap;
+ for (Entry<String, List<ComponentInstanceInput>> entry : instProperties.entrySet()) {
+ propertiesMap = new MapPropertiesDataDefinition();
- GraphVertex vertex = getVertexEither.left().value();
- Map<String, MapPropertiesDataDefinition> instPropsMap = new HashMap<>();
- if (instProperties != null) {
+ propertiesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
- MapPropertiesDataDefinition propertiesMap;
- for (Entry<String, List<ComponentInstanceInput>> entry : instProperties.entrySet()) {
- propertiesMap = new MapPropertiesDataDefinition();
-
- propertiesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
-
- instPropsMap.put(entry.getKey(), propertiesMap);
- }
- }
-
- return topologyTemplateOperation.deleteInstInputsToComponent(vertex, instPropsMap);
-
- }
-
- public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> addComponentInstancePropertiesToComponent(Component containerComponent, Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
-
- StorageOperationStatus status = StorageOperationStatus.OK;
- if (instProperties != null) {
-
- for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
- List<ComponentInstanceProperty> props = entry.getValue();
- String componentInstanseId = entry.getKey();
- List<ComponentInstanceProperty> instanceProperties = containerComponent.getComponentInstancesProperties().get(componentInstanseId);
- if (props != null && !props.isEmpty()) {
- for (ComponentInstanceProperty property : props) {
- Optional<ComponentInstanceProperty> instanceProperty = instanceProperties.stream().filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
- if (instanceProperty.isPresent()) {
- status = updateComponentInstanceProperty(containerComponent, componentInstanseId, property);
- } else {
- status = addComponentInstanceProperty(containerComponent, componentInstanseId, property);
- }
-
- }
- }
- }
- }
-
- return Either.left(instProperties);
-
- }
-
- public StorageOperationStatus associateArtifactToInstances(Map<String, Map<String, ArtifactDefinition>> instArtifacts, String componentId, User user) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
-
- }
-
- GraphVertex vertex = getVertexEither.left().value();
- Map<String, MapArtifactDataDefinition> instArtMap = new HashMap<>();
- if (instArtifacts != null) {
-
- MapArtifactDataDefinition artifactsMap;
- for (Entry<String, Map<String, ArtifactDefinition>> entry : instArtifacts.entrySet()) {
- Map<String, ArtifactDefinition> artList = entry.getValue();
- Map<String, ArtifactDataDefinition> artifacts = artList.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
- artifactsMap = nodeTemplateOperation.prepareInstDeploymentArtifactPerInstance(artifacts, entry.getKey(), user, NodeTemplateOperation.HEAT_VF_ENV_NAME);
-
- instArtMap.put(entry.getKey(), artifactsMap);
- }
- }
-
- return topologyTemplateOperation.associateInstArtifactToComponent(vertex, instArtMap);
-
- }
-
- public StorageOperationStatus associateInstAttributeToComponentToInstances(Map<String, List<PropertyDefinition>> instArttributes, String componentId) {
-
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
-
- }
-
- GraphVertex vertex = getVertexEither.left().value();
- Map<String, MapPropertiesDataDefinition> instAttr = new HashMap<>();
- if (instArttributes != null) {
-
- MapPropertiesDataDefinition attributesMap;
- for (Entry<String, List<PropertyDefinition>> entry : instArttributes.entrySet()) {
- attributesMap = new MapPropertiesDataDefinition();
- attributesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
- instAttr.put(entry.getKey(), attributesMap);
- }
- }
-
- return topologyTemplateOperation.associateInstAttributeToComponent(vertex, instAttr);
-
- }
-
- public StorageOperationStatus associateCalculatedCapReq(Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties, Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instReg, String componentId) {
- Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
- if (getVertexEither.isRight()) {
- log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
- return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
-
- }
-
- GraphVertex vertex = getVertexEither.left().value();
-
- Map<String, MapListRequirementDataDefinition> calcRequirements = new HashMap<>();
-
- Map<String, MapListCapabiltyDataDefinition> calcCapabilty = new HashMap<>();
- Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties = new HashMap<>();
- ;
- if (instCapabilties != null) {
- for (Entry<ComponentInstance, Map<String, List<CapabilityDefinition>>> entry : instCapabilties.entrySet()) {
-
- Map<String, List<CapabilityDefinition>> caps = entry.getValue();
- Map<String, ListCapabilityDataDefinition> mapToscaDataDefinition = new HashMap<>();
- for (Entry<String, List<CapabilityDefinition>> instCapability : caps.entrySet()) {
- mapToscaDataDefinition.put(instCapability.getKey(), new ListCapabilityDataDefinition(instCapability.getValue().stream().map(iCap -> new CapabilityDataDefinition(iCap)).collect(Collectors.toList())));
- }
-
- ComponentInstanceDataDefinition componentInstance = new ComponentInstanceDataDefinition(entry.getKey());
- MapListCapabiltyDataDefinition capMap = nodeTemplateOperation.prepareCalculatedCapabiltyForNodeType(mapToscaDataDefinition, componentInstance);
-
- MapCapabiltyProperty mapCapabiltyProperty = ModelConverter.convertToMapOfMapCapabiltyProperties(caps, componentInstance.getUniqueId(), true);
-
- calcCapabilty.put(entry.getKey().getUniqueId(), capMap);
- calculatedCapabilitiesProperties.put(entry.getKey().getUniqueId(), mapCapabiltyProperty);
- }
- }
-
- if (instReg != null) {
- for (Entry<ComponentInstance, Map<String, List<RequirementDefinition>>> entry : instReg.entrySet()) {
-
- Map<String, List<RequirementDefinition>> req = entry.getValue();
- Map<String, ListRequirementDataDefinition> mapToscaDataDefinition = new HashMap<>();
- for (Entry<String, List<RequirementDefinition>> instReq : req.entrySet()) {
- mapToscaDataDefinition.put(instReq.getKey(), new ListRequirementDataDefinition(instReq.getValue().stream().map(iCap -> new RequirementDataDefinition(iCap)).collect(Collectors.toList())));
- }
-
- MapListRequirementDataDefinition capMap = nodeTemplateOperation.prepareCalculatedRequirementForNodeType(mapToscaDataDefinition, new ComponentInstanceDataDefinition(entry.getKey()));
-
- calcRequirements.put(entry.getKey().getUniqueId(), capMap);
- }
- }
-
- StorageOperationStatus status = topologyTemplateOperation.associateCalcCapReqToComponent(vertex, calcRequirements, calcCapabilty, calculatedCapabilitiesProperties);
-
- return status;
- }
-
- private Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractToscaElementsMetadataOnly(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, VertexTypeEnum vertexType) {
-
- Map<GraphPropertyEnum, Object> hasProps = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> hasNotProps = new EnumMap<>(GraphPropertyEnum.class);
-
- fillPropsMap(hasProps, hasNotProps, internalComponentType, componentTypeEnum, isAbstract, vertexType);
-
- Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(vertexType, hasProps, hasNotProps, JsonParseFlagEnum.ParseMetadata);
- if (getRes.isRight()) {
- if (getRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
- return Either.left(new ArrayList<>());
- } else {
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
- }
- } else {
- List<Component> nonAbstractLatestComponents = new ArrayList<>();
- ComponentParametersView params = new ComponentParametersView(true);
- params.setIgnoreAllVersions(false);
- for (GraphVertex vertexComponent : getRes.left().value()) {
- Either<ToscaElement, StorageOperationStatus> componentRes = topologyTemplateOperation.getLightComponent(vertexComponent, componentTypeEnum, params);
- if (componentRes.isRight()) {
- log.debug("Failed to fetch ligth element for {} error {}", vertexComponent.getUniqueId(), componentRes.right().value());
- return Either.right(componentRes.right().value());
- } else {
- Component component = ModelConverter.convertFromToscaElement(componentRes.left().value());
-
- nonAbstractLatestComponents.add(component);
- }
- }
-
- return Either.left(nonAbstractLatestComponents);
- }
- }
-
- public Either<ComponentMetadataData, StorageOperationStatus> getLatestComponentMetadataByUuid(String componentUuid, JsonParseFlagEnum parseFlag, Boolean isHighest) {
+ instPropsMap.put(entry.getKey(), propertiesMap);
+ }
+ }
- Either<ComponentMetadataData, StorageOperationStatus> result;
+ return topologyTemplateOperation.deleteInstInputsToComponent(vertex, instPropsMap);
- Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
-
- hasProperties.put(GraphPropertyEnum.UUID, componentUuid);
- if (isHighest != null) {
- hasProperties.put(GraphPropertyEnum.IS_HIGHEST_VERSION, isHighest.booleanValue());
- }
-
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(null, hasProperties, propertiesNotToMatch, parseFlag);
- if (getRes.isRight()) {
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
- } else {
- List<ComponentMetadataData> latestVersionList = getRes.left().value().stream().map(ModelConverter::convertToComponentMetadata).collect(Collectors.toList());
- ComponentMetadataData latestVersion = latestVersionList.size() == 1 ? latestVersionList.get(0)
- : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getMetadataDataDefinition().getVersion()), Double.parseDouble(c2.getMetadataDataDefinition().getVersion()))).get();
- result = Either.left(latestVersion);
- }
- return result;
- }
+ }
- public Either<ComponentMetadataData, StorageOperationStatus> getComponentMetadata(String componentId) {
+ public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> addComponentInstancePropertiesToComponent(Component containerComponent, Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
- Either<ComponentMetadataData, StorageOperationStatus> result;
- Either<GraphVertex, TitanOperationStatus> getRes = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseMetadata);
- if (getRes.isRight()) {
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
- } else {
- ComponentMetadataData componentMetadata = ModelConverter.convertToComponentMetadata(getRes.left().value());
- result = Either.left(componentMetadata);
- }
- return result;
- }
+ StorageOperationStatus status = StorageOperationStatus.OK;
+ if (instProperties != null) {
- private Map<String, ComponentMetadataData> findLatestVersion(List<ComponentMetadataData> resourceDataList) {
- Map<Pair<String, String>, ComponentMetadataData> latestVersionMap = new HashMap<Pair<String, String>, ComponentMetadataData>();
- for (ComponentMetadataData resourceData : resourceDataList) {
- ComponentMetadataData latestVersionData = resourceData;
-
- ComponentMetadataDataDefinition metadataDataDefinition = resourceData.getMetadataDataDefinition();
- Pair<String, String> pair = createKeyPair(latestVersionData);
- if (latestVersionMap.containsKey(pair)) {
- latestVersionData = latestVersionMap.get(pair);
- String currentVersion = latestVersionData.getMetadataDataDefinition().getVersion();
- String newVersion = metadataDataDefinition.getVersion();
- if (CommonBeUtils.compareAsdcComponentVersions(newVersion, currentVersion)) {
- latestVersionData = resourceData;
- }
- }
- if (log.isDebugEnabled())
- log.debug("last certified version of resource = {} version is {}", latestVersionData.getMetadataDataDefinition().getName(), latestVersionData.getMetadataDataDefinition().getVersion());
+ for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
+ List<ComponentInstanceProperty> props = entry.getValue();
+ String componentInstanseId = entry.getKey();
+ List<ComponentInstanceProperty> instanceProperties = containerComponent.getComponentInstancesProperties().get(componentInstanseId);
+ if (props != null && !props.isEmpty()) {
+ for (ComponentInstanceProperty property : props) {
+ Optional<ComponentInstanceProperty> instanceProperty = instanceProperties.stream().filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
+ if (instanceProperty.isPresent()) {
+ status = updateComponentInstanceProperty(containerComponent, componentInstanseId, property);
+ } else {
+ status = addComponentInstanceProperty(containerComponent, componentInstanseId, property);
+ }
- latestVersionMap.put(pair, latestVersionData);
- }
+ }
+ }
+ }
+ }
- Map<String, ComponentMetadataData> resVersionMap = new HashMap<String, ComponentMetadataData>();
- for (ComponentMetadataData resourceData : latestVersionMap.values()) {
- ComponentMetadataData latestVersionData = resourceData;
- ComponentMetadataDataDefinition metadataDataDefinition = resourceData.getMetadataDataDefinition();
- if (resVersionMap.containsKey(metadataDataDefinition.getUUID())) {
- latestVersionData = resVersionMap.get(metadataDataDefinition.getUUID());
- String currentVersion = latestVersionData.getMetadataDataDefinition().getVersion();
- String newVersion = metadataDataDefinition.getVersion();
- if (CommonBeUtils.compareAsdcComponentVersions(newVersion, currentVersion)) {
- latestVersionData = resourceData;
- }
- }
- if (log.isDebugEnabled())
- log.debug("last uuid version of resource = {} version is {}", latestVersionData.getMetadataDataDefinition().getName(), latestVersionData.getMetadataDataDefinition().getVersion());
- resVersionMap.put(latestVersionData.getMetadataDataDefinition().getUUID(), latestVersionData);
- }
+ return Either.left(instProperties);
- return resVersionMap;
- }
+ }
- private Pair<String, String> createKeyPair(ComponentMetadataData metadataData) {
- Pair<String, String> pair;
- NodeTypeEnum label = NodeTypeEnum.getByName(metadataData.getLabel());
- switch (label) {
- case Resource:
- pair = new ImmutablePair<>(metadataData.getMetadataDataDefinition().getName(), ((ResourceMetadataDataDefinition) metadataData.getMetadataDataDefinition()).getResourceType().name());
- break;
- default:
- pair = new ImmutablePair<>(metadataData.getMetadataDataDefinition().getName(), metadataData.getLabel());
- break;
- }
+ public StorageOperationStatus associateArtifactToInstances(Map<String, Map<String, ArtifactDefinition>> instArtifacts, String componentId, User user) {
- return pair;
- }
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
- public Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractComponents(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, List<String> componentUids) {
+ }
- Either<List<Component>, StorageOperationStatus> result = null;
- List<Component> components = new ArrayList<>();
- if (componentUids == null) {
- Either<List<String>, StorageOperationStatus> componentUidsRes = getComponentUids(isAbstract, isHighest, componentTypeEnum, internalComponentType, componentUids);
- if (componentUidsRes.isRight()) {
- result = Either.right(componentUidsRes.right().value());
- } else {
- componentUids = componentUidsRes.left().value();
- }
- }
- if (!componentUids.isEmpty()) {
- for (String componentUid : componentUids) {
- ComponentParametersView componentParametersView = buildComponentViewForNotAbstract();
- if (internalComponentType != null && "vl".equalsIgnoreCase(internalComponentType)) {
- componentParametersView.setIgnoreCapabilities(false);
- componentParametersView.setIgnoreRequirements(false);
- }
- Either<ToscaElement, StorageOperationStatus> getToscaElementRes = nodeTemplateOperation.getToscaElementOperation(componentTypeEnum).getLightComponent(componentUid, componentTypeEnum, componentParametersView);
- if (getToscaElementRes.isRight()) {
- if (log.isDebugEnabled())
- log.debug("Failed to fetch resource for error is {}", getToscaElementRes.right().value());
- result = Either.right(getToscaElementRes.right().value());
- break;
- }
- Component component = ModelConverter.convertFromToscaElement(getToscaElementRes.left().value());
- component.setContactId(null);
- component.setCreationDate(null);
- component.setCreatorUserId(null);
- component.setCreatorFullName(null);
- component.setLastUpdateDate(null);
- component.setLastUpdaterUserId(null);
- component.setLastUpdaterFullName(null);
- component.setNormalizedName(null);
- components.add(component);
- }
- }
- if (result == null) {
- result = Either.left(components);
- }
- return result;
- }
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, MapArtifactDataDefinition> instArtMap = new HashMap<>();
+ if (instArtifacts != null) {
- private Either<List<String>, StorageOperationStatus> getComponentUids(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, List<String> componentUids) {
-
- Either<List<String>, StorageOperationStatus> result = null;
- Either<List<Component>, StorageOperationStatus> getToscaElementsRes = getLatestVersionNotAbstractMetadataOnly(isAbstract, isHighest, componentTypeEnum, internalComponentType);
- if (getToscaElementsRes.isRight()) {
- result = Either.right(getToscaElementsRes.right().value());
- } else {
- List<Component> collection = getToscaElementsRes.left().value();
- if (collection == null) {
- componentUids = new ArrayList<>();
- } else {
- componentUids = collection.stream().map(p -> p.getUniqueId()).collect(Collectors.toList());
- }
- }
- if (result == null) {
- result = Either.left(componentUids);
- }
- return result;
- }
+ MapArtifactDataDefinition artifactsMap;
+ for (Entry<String, Map<String, ArtifactDefinition>> entry : instArtifacts.entrySet()) {
+ Map<String, ArtifactDefinition> artList = entry.getValue();
+ Map<String, ArtifactDataDefinition> artifacts = artList.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+ artifactsMap = nodeTemplateOperation.prepareInstDeploymentArtifactPerInstance(artifacts, entry.getKey(), user, NodeTemplateOperation.HEAT_VF_ENV_NAME);
- private ComponentParametersView buildComponentViewForNotAbstract() {
- ComponentParametersView componentParametersView = new ComponentParametersView();
- componentParametersView.disableAll();
- componentParametersView.setIgnoreCategories(false);
- componentParametersView.setIgnoreAllVersions(false);
- return componentParametersView;
- }
+ instArtMap.put(entry.getKey(), artifactsMap);
+ }
+ }
+
+ return topologyTemplateOperation.associateInstArtifactToComponent(vertex, instArtMap);
+
+ }
+
+ public StorageOperationStatus associateInstAttributeToComponentToInstances(Map<String, List<PropertyDefinition>> instArttributes, String componentId) {
+
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
- public Either<Boolean, StorageOperationStatus> validateComponentNameExists(String name, ResourceTypeEnum resourceType, ComponentTypeEnum componentType) {
- Either<Boolean, StorageOperationStatus> result = validateComponentNameUniqueness(name, resourceType, componentType);
- if (result.isLeft()) {
- result = Either.left(!result.left().value());
- }
- return result;
- }
+ }
- public Either<Boolean, StorageOperationStatus> validateComponentNameUniqueness(String name, ResourceTypeEnum resourceType, ComponentTypeEnum componentType) {
- VertexTypeEnum vertexType = getVertexTypeByComponentAndResourceTypeEnum(resourceType, componentType);
- String normalizedName = ValidationUtils.normaliseComponentName(name);
- Map<GraphPropertyEnum, Object> properties = new EnumMap<>(GraphPropertyEnum.class);
- properties.put(GraphPropertyEnum.NORMALIZED_NAME, normalizedName);
- properties.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
-
- Either<List<GraphVertex>, TitanOperationStatus> vertexEither = titanDao.getByCriteria(vertexType, properties, JsonParseFlagEnum.NoParse);
- if (vertexEither.isRight() && vertexEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("failed to get vertex from graph with property normalizedName: {}", normalizedName);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(vertexEither.right().value()));
- }
- List<GraphVertex> vertexList = vertexEither.isLeft() ? vertexEither.left().value() : null;
- if (vertexList != null && !vertexList.isEmpty()) {
- return Either.left(false);
- } else {
- return Either.left(true);
- }
- }
+ GraphVertex vertex = getVertexEither.left().value();
+ Map<String, MapPropertiesDataDefinition> instAttr = new HashMap<>();
+ if (instArttributes != null) {
- // UI query parameter is either VFC/CP/VL(for yaml upload/update) or VF (for CSAR upload/user composed VF)
- // TODO implementation of topology template VFCs may require updating this method - depending on UI implementation
- private VertexTypeEnum getVertexTypeByComponentAndResourceTypeEnum(ResourceTypeEnum resourceType, ComponentTypeEnum componentType) {
- VertexTypeEnum vertexType = VertexTypeEnum.TOPOLOGY_TEMPLATE;
- if (ComponentTypeEnum.RESOURCE == componentType && ResourceTypeEnum.VF != resourceType) {
- vertexType = VertexTypeEnum.NODE_TYPE;
- }
- return vertexType;
- }
+ MapPropertiesDataDefinition attributesMap;
+ for (Entry<String, List<PropertyDefinition>> entry : instArttributes.entrySet()) {
+ attributesMap = new MapPropertiesDataDefinition();
+ attributesMap.setMapToscaDataDefinition(entry.getValue().stream().map(e -> new PropertyDataDefinition(e)).collect(Collectors.toMap(e -> e.getName(), e -> e)));
+ instAttr.put(entry.getKey(), attributesMap);
+ }
+ }
- private void fillNodeTypePropsMap(Map<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> hasNotProps, String internalComponentType) {
- switch (internalComponentType.toLowerCase()) {
- case "vf":
- hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF.name());
- hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VFCMT.name());
- break;
- case "service":
- hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VFC.name());
- hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VFCMT.name());
- break;
- case "vl":
- hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VL.name());
- break;
- default:
- break;
- }
- }
+ return topologyTemplateOperation.associateInstAttributeToComponent(vertex, instAttr);
- private void fillTopologyTemplatePropsMap(Map<GraphPropertyEnum, Object> hasProps, ComponentTypeEnum componentTypeEnum) {
- switch (componentTypeEnum) {
- case RESOURCE:
- hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
- break;
- case SERVICE:
- hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
- break;
- default:
- break;
- }
- }
+ }
- private void fillPropsMap(Map<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> hasNotProps, String internalComponentType, ComponentTypeEnum componentTypeEnum, boolean isAbstract, VertexTypeEnum internalVertexType) {
- hasNotProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name());
+ public StorageOperationStatus associateCalculatedCapReq(Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties, Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instReg, String componentId) {
+ Either<GraphVertex, TitanOperationStatus> getVertexEither = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+ if (getVertexEither.isRight()) {
+ log.debug("Couldn't fetch component with and unique id {}, error: {}", componentId, getVertexEither.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(getVertexEither.right().value());
- hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
- hasProps.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- if (VertexTypeEnum.NODE_TYPE == internalVertexType) {
- hasProps.put(GraphPropertyEnum.IS_ABSTRACT, isAbstract);
- if (internalComponentType != null) {
- fillNodeTypePropsMap(hasProps, hasNotProps, internalComponentType);
- }
- } else {
- fillTopologyTemplatePropsMap(hasProps, componentTypeEnum);
- }
- }
+ }
- private List<VertexTypeEnum> getInternalVertexTypes(ComponentTypeEnum componentTypeEnum, String internalComponentType) {
- List<VertexTypeEnum> internalVertexTypes = new ArrayList<>();
- if (ComponentTypeEnum.RESOURCE == componentTypeEnum) {
- internalVertexTypes.add(VertexTypeEnum.NODE_TYPE);
- }
- if (ComponentTypeEnum.SERVICE == componentTypeEnum || "service".equalsIgnoreCase(internalComponentType)) {
- internalVertexTypes.add(VertexTypeEnum.TOPOLOGY_TEMPLATE);
- }
- return internalVertexTypes;
- }
+ GraphVertex vertex = getVertexEither.left().value();
- public Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractMetadataOnly(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType) {
- List<VertexTypeEnum> internalVertexTypes = getInternalVertexTypes(componentTypeEnum, internalComponentType);
- List<Component> result = new ArrayList<>();
- for (VertexTypeEnum vertexType : internalVertexTypes) {
- Either<List<Component>, StorageOperationStatus> listByVertexType = getLatestVersionNotAbstractToscaElementsMetadataOnly(isAbstract, isHighest, componentTypeEnum, internalComponentType, vertexType);
- if (listByVertexType.isRight()) {
- return listByVertexType;
- }
- result.addAll(listByVertexType.left().value());
- }
- return Either.left(result);
+ Map<String, MapListRequirementDataDefinition> calcRequirements = new HashMap<>();
- }
+ Map<String, MapListCapabiltyDataDefinition> calcCapabilty = new HashMap<>();
+ Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties = new HashMap<>();
+ ;
+ if (instCapabilties != null) {
+ for (Entry<ComponentInstance, Map<String, List<CapabilityDefinition>>> entry : instCapabilties.entrySet()) {
- public Either<List<Component>, StorageOperationStatus> getLatestComponentListByUuid(String componentUuid) {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ Map<String, List<CapabilityDefinition>> caps = entry.getValue();
+ Map<String, ListCapabilityDataDefinition> mapToscaDataDefinition = new HashMap<>();
+ for (Entry<String, List<CapabilityDefinition>> instCapability : caps.entrySet()) {
+ mapToscaDataDefinition.put(instCapability.getKey(), new ListCapabilityDataDefinition(instCapability.getValue().stream().map(iCap -> new CapabilityDataDefinition(iCap)).collect(Collectors.toList())));
+ }
+
+ ComponentInstanceDataDefinition componentInstance = new ComponentInstanceDataDefinition(entry.getKey());
+ MapListCapabiltyDataDefinition capMap = nodeTemplateOperation.prepareCalculatedCapabiltyForNodeType(mapToscaDataDefinition, componentInstance);
+
+ MapCapabiltyProperty mapCapabiltyProperty = ModelConverter.convertToMapOfMapCapabiltyProperties(caps, componentInstance.getUniqueId(), true);
+
+ calcCapabilty.put(entry.getKey().getUniqueId(), capMap);
+ calculatedCapabilitiesProperties.put(entry.getKey().getUniqueId(), mapCapabiltyProperty);
+ }
+ }
+
+ if (instReg != null) {
+ for (Entry<ComponentInstance, Map<String, List<RequirementDefinition>>> entry : instReg.entrySet()) {
+
+ Map<String, List<RequirementDefinition>> req = entry.getValue();
+ Map<String, ListRequirementDataDefinition> mapToscaDataDefinition = new HashMap<>();
+ for (Entry<String, List<RequirementDefinition>> instReq : req.entrySet()) {
+ mapToscaDataDefinition.put(instReq.getKey(), new ListRequirementDataDefinition(instReq.getValue().stream().map(iCap -> new RequirementDataDefinition(iCap)).collect(Collectors.toList())));
+ }
+
+ MapListRequirementDataDefinition capMap = nodeTemplateOperation.prepareCalculatedRequirementForNodeType(mapToscaDataDefinition, new ComponentInstanceDataDefinition(entry.getKey()));
+
+ calcRequirements.put(entry.getKey().getUniqueId(), capMap);
+ }
+ }
+
+ StorageOperationStatus status = topologyTemplateOperation.associateCalcCapReqToComponent(vertex, calcRequirements, calcCapabilty, calculatedCapabilitiesProperties);
+
+ return status;
+ }
+
+ private Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractToscaElementsMetadataOnly(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, VertexTypeEnum vertexType) {
+
+ Map<GraphPropertyEnum, Object> hasProps = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> hasNotProps = new EnumMap<>(GraphPropertyEnum.class);
+
+ fillPropsMap(hasProps, hasNotProps, internalComponentType, componentTypeEnum, isAbstract, vertexType);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(vertexType, hasProps, hasNotProps, JsonParseFlagEnum.ParseMetadata);
+ if (getRes.isRight()) {
+ if (getRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
+ return Either.left(new ArrayList<>());
+ } else {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
+ }
+ } else {
+ List<Component> nonAbstractLatestComponents = new ArrayList<>();
+ ComponentParametersView params = new ComponentParametersView(true);
+ params.setIgnoreAllVersions(false);
+ for (GraphVertex vertexComponent : getRes.left().value()) {
+ Either<ToscaElement, StorageOperationStatus> componentRes = topologyTemplateOperation.getLightComponent(vertexComponent, componentTypeEnum, params);
+ if (componentRes.isRight()) {
+ log.debug("Failed to fetch ligth element for {} error {}", vertexComponent.getUniqueId(), componentRes.right().value());
+ return Either.right(componentRes.right().value());
+ } else {
+ Component component = ModelConverter.convertFromToscaElement(componentRes.left().value());
+
+ nonAbstractLatestComponents.add(component);
+ }
+ }
+
+ return Either.left(nonAbstractLatestComponents);
+ }
+ }
+
+ public Either<ComponentMetadataData, StorageOperationStatus> getLatestComponentMetadataByUuid(String componentUuid, JsonParseFlagEnum parseFlag, Boolean isHighest) {
+
+ Either<ComponentMetadataData, StorageOperationStatus> result;
+
+ Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
+
+ hasProperties.put(GraphPropertyEnum.UUID, componentUuid);
+ if (isHighest != null) {
+ hasProperties.put(GraphPropertyEnum.IS_HIGHEST_VERSION, isHighest.booleanValue());
+ }
+
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(null, hasProperties, propertiesNotToMatch, parseFlag);
+ if (getRes.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
+ } else {
+ List<ComponentMetadataData> latestVersionList = getRes.left().value().stream().map(ModelConverter::convertToComponentMetadata).collect(Collectors.toList());
+ ComponentMetadataData latestVersion = latestVersionList.size() == 1 ? latestVersionList.get(0)
+ : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getMetadataDataDefinition().getVersion()), Double.parseDouble(c2.getMetadataDataDefinition().getVersion()))).get();
+ result = Either.left(latestVersion);
+ }
+ return result;
+ }
+
+ public Either<ComponentMetadataData, StorageOperationStatus> getComponentMetadata(String componentId) {
+
+ Either<ComponentMetadataData, StorageOperationStatus> result;
+ Either<GraphVertex, TitanOperationStatus> getRes = titanDao.getVertexById(componentId, JsonParseFlagEnum.ParseMetadata);
+ if (getRes.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
+ } else {
+ ComponentMetadataData componentMetadata = ModelConverter.convertToComponentMetadata(getRes.left().value());
+ result = Either.left(componentMetadata);
+ }
+ return result;
+ }
+
+ private Map<String, ComponentMetadataData> findLatestVersion(List<ComponentMetadataData> resourceDataList) {
+ Map<Pair<String, String>, ComponentMetadataData> latestVersionMap = new HashMap<Pair<String, String>, ComponentMetadataData>();
+ for (ComponentMetadataData resourceData : resourceDataList) {
+ ComponentMetadataData latestVersionData = resourceData;
+
+ ComponentMetadataDataDefinition metadataDataDefinition = resourceData.getMetadataDataDefinition();
+ Pair<String, String> pair = createKeyPair(latestVersionData);
+ if (latestVersionMap.containsKey(pair)) {
+ latestVersionData = latestVersionMap.get(pair);
+ String currentVersion = latestVersionData.getMetadataDataDefinition().getVersion();
+ String newVersion = metadataDataDefinition.getVersion();
+ if (CommonBeUtils.compareAsdcComponentVersions(newVersion, currentVersion)) {
+ latestVersionData = resourceData;
+ }
+ }
+ if (log.isDebugEnabled())
+ log.debug("last certified version of resource = {} version is {}", latestVersionData.getMetadataDataDefinition().getName(), latestVersionData.getMetadataDataDefinition().getVersion());
+
+ latestVersionMap.put(pair, latestVersionData);
+ }
+
+ Map<String, ComponentMetadataData> resVersionMap = new HashMap<String, ComponentMetadataData>();
+ for (ComponentMetadataData resourceData : latestVersionMap.values()) {
+ ComponentMetadataData latestVersionData = resourceData;
+ ComponentMetadataDataDefinition metadataDataDefinition = resourceData.getMetadataDataDefinition();
+ if (resVersionMap.containsKey(metadataDataDefinition.getUUID())) {
+ latestVersionData = resVersionMap.get(metadataDataDefinition.getUUID());
+ String currentVersion = latestVersionData.getMetadataDataDefinition().getVersion();
+ String newVersion = metadataDataDefinition.getVersion();
+ if (CommonBeUtils.compareAsdcComponentVersions(newVersion, currentVersion)) {
+ latestVersionData = resourceData;
+ }
+ }
+ if (log.isDebugEnabled())
+ log.debug("last uuid version of resource = {} version is {}", latestVersionData.getMetadataDataDefinition().getName(), latestVersionData.getMetadataDataDefinition().getVersion());
+ resVersionMap.put(latestVersionData.getMetadataDataDefinition().getUUID(), latestVersionData);
+ }
+
+ return resVersionMap;
+ }
+
+ private Pair<String, String> createKeyPair(ComponentMetadataData metadataData) {
+ Pair<String, String> pair;
+ NodeTypeEnum label = NodeTypeEnum.getByName(metadataData.getLabel());
+ switch (label) {
+ case Resource:
+ pair = new ImmutablePair<>(metadataData.getMetadataDataDefinition().getName(), ((ResourceMetadataDataDefinition) metadataData.getMetadataDataDefinition()).getResourceType().name());
+ break;
+ default:
+ pair = new ImmutablePair<>(metadataData.getMetadataDataDefinition().getName(), metadataData.getLabel());
+ break;
+ }
+
+ return pair;
+ }
+
+ public Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractComponents(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, List<String> componentUids) {
+
+ Either<List<Component>, StorageOperationStatus> result = null;
+ List<Component> components = new ArrayList<>();
+ if (componentUids == null) {
+ Either<List<String>, StorageOperationStatus> componentUidsRes = getComponentUids(isAbstract, isHighest, componentTypeEnum, internalComponentType, componentUids);
+ if (componentUidsRes.isRight()) {
+ result = Either.right(componentUidsRes.right().value());
+ } else {
+ componentUids = componentUidsRes.left().value();
+ }
+ }
+ if (!componentUids.isEmpty()) {
+ for (String componentUid : componentUids) {
+ ComponentParametersView componentParametersView = buildComponentViewForNotAbstract();
+ if (internalComponentType != null && "vl".equalsIgnoreCase(internalComponentType)) {
+ componentParametersView.setIgnoreCapabilities(false);
+ componentParametersView.setIgnoreRequirements(false);
+ }
+ Either<ToscaElement, StorageOperationStatus> getToscaElementRes = nodeTemplateOperation.getToscaElementOperation(componentTypeEnum).getLightComponent(componentUid, componentTypeEnum, componentParametersView);
+ if (getToscaElementRes.isRight()) {
+ if (log.isDebugEnabled())
+ log.debug("Failed to fetch resource for error is {}", getToscaElementRes.right().value());
+ result = Either.right(getToscaElementRes.right().value());
+ break;
+ }
+ Component component = ModelConverter.convertFromToscaElement(getToscaElementRes.left().value());
+ component.setContactId(null);
+ component.setCreationDate(null);
+ component.setCreatorUserId(null);
+ component.setCreatorFullName(null);
+ component.setLastUpdateDate(null);
+ component.setLastUpdaterUserId(null);
+ component.setLastUpdaterFullName(null);
+ component.setNormalizedName(null);
+ components.add(component);
+ }
+ }
+ if (result == null) {
+ result = Either.left(components);
+ }
+ return result;
+ }
+
+ private Either<List<String>, StorageOperationStatus> getComponentUids(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType, List<String> componentUids) {
+
+ Either<List<String>, StorageOperationStatus> result = null;
+ Either<List<Component>, StorageOperationStatus> getToscaElementsRes = getLatestVersionNotAbstractMetadataOnly(isAbstract, isHighest, componentTypeEnum, internalComponentType);
+ if (getToscaElementsRes.isRight()) {
+ result = Either.right(getToscaElementsRes.right().value());
+ } else {
+ List<Component> collection = getToscaElementsRes.left().value();
+ if (collection == null) {
+ componentUids = new ArrayList<>();
+ } else {
+ componentUids = collection.stream().map(p -> p.getUniqueId()).collect(Collectors.toList());
+ }
+ }
+ if (result == null) {
+ result = Either.left(componentUids);
+ }
+ return result;
+ }
+
+ private ComponentParametersView buildComponentViewForNotAbstract() {
+ ComponentParametersView componentParametersView = new ComponentParametersView();
+ componentParametersView.disableAll();
+ componentParametersView.setIgnoreCategories(false);
+ componentParametersView.setIgnoreAllVersions(false);
+ return componentParametersView;
+ }
+
+ public Either<Boolean, StorageOperationStatus> validateComponentNameExists(String name, ResourceTypeEnum resourceType, ComponentTypeEnum componentType) {
+ Either<Boolean, StorageOperationStatus> result = validateComponentNameUniqueness(name, resourceType, componentType);
+ if (result.isLeft()) {
+ result = Either.left(!result.left().value());
+ }
+ return result;
+ }
+
+ public Either<Boolean, StorageOperationStatus> validateComponentNameUniqueness(String name, ResourceTypeEnum resourceType, ComponentTypeEnum componentType) {
+ VertexTypeEnum vertexType = ModelConverter.isAtomicComponent(resourceType) ? VertexTypeEnum.NODE_TYPE : VertexTypeEnum.TOPOLOGY_TEMPLATE;
+ String normalizedName = ValidationUtils.normaliseComponentName(name);
+ Map<GraphPropertyEnum, Object> properties = new EnumMap<>(GraphPropertyEnum.class);
+ properties.put(GraphPropertyEnum.NORMALIZED_NAME, normalizedName);
+ properties.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
+
+ Either<List<GraphVertex>, TitanOperationStatus> vertexEither = titanDao.getByCriteria(vertexType, properties, JsonParseFlagEnum.NoParse);
+ if (vertexEither.isRight() && vertexEither.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("failed to get vertex from graph with property normalizedName: {}", normalizedName);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(vertexEither.right().value()));
+ }
+ List<GraphVertex> vertexList = vertexEither.isLeft() ? vertexEither.left().value() : null;
+ if (vertexList != null && !vertexList.isEmpty()) {
+ return Either.left(false);
+ } else {
+ return Either.left(true);
+ }
+ }
+
+
+ private void fillNodeTypePropsMap(Map<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> hasNotProps, String internalComponentType) {
+ switch (internalComponentType.toLowerCase()) {
+ case "vf":
+ case "cvfc":
+ hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VFCMT.name());
+ break;
+ case "service":
+ case "pnf" :
+ hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, Arrays.asList(ResourceTypeEnum.VFC.name(), ResourceTypeEnum.VFCMT.name()));
+ break;
+ case "vl":
+ hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VL.name());
+ break;
+ default:
+ break;
+ }
+ }
+
+
+ private void fillTopologyTemplatePropsMap(Map<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> hasNotProps, ComponentTypeEnum componentTypeEnum, String internalComponentType) {
+ switch (componentTypeEnum) {
+ case RESOURCE:
+ hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ break;
+ case SERVICE:
+ hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ break;
+ default:
+ break;
+ }
+ switch (internalComponentType.toLowerCase()) {
+ case "vf":
+ case "cvfc":
+ hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.CVFC.name());
+ break;
+ case "service":
+ hasNotProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.CVFC.name());
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void fillPropsMap(Map<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> hasNotProps, String internalComponentType, ComponentTypeEnum componentTypeEnum, boolean isAbstract, VertexTypeEnum internalVertexType) {
+ hasNotProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name());
+
+ hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
+ hasProps.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ if (VertexTypeEnum.NODE_TYPE == internalVertexType) {
+ hasProps.put(GraphPropertyEnum.IS_ABSTRACT, isAbstract);
+ if (internalComponentType != null) {
+ fillNodeTypePropsMap(hasProps, hasNotProps, internalComponentType);
+ }
+ } else {
+ fillTopologyTemplatePropsMap(hasProps, hasNotProps, componentTypeEnum, internalComponentType);
+ }
+ }
+
+ private List<VertexTypeEnum> getInternalVertexTypes(ComponentTypeEnum componentTypeEnum, String internalComponentType) {
+ List<VertexTypeEnum> internalVertexTypes = new ArrayList<>();
+ if (ComponentTypeEnum.RESOURCE == componentTypeEnum) {
+ internalVertexTypes.add(VertexTypeEnum.NODE_TYPE);
+ }
+ if (ComponentTypeEnum.SERVICE == componentTypeEnum || "service".equalsIgnoreCase(internalComponentType) || "vf".equalsIgnoreCase(internalComponentType)) {
+ internalVertexTypes.add(VertexTypeEnum.TOPOLOGY_TEMPLATE);
+ }
+ return internalVertexTypes;
+ }
+
+ public Either<List<Component>, StorageOperationStatus> getLatestVersionNotAbstractMetadataOnly(boolean isAbstract, Boolean isHighest, ComponentTypeEnum componentTypeEnum, String internalComponentType) {
+ List<VertexTypeEnum> internalVertexTypes = getInternalVertexTypes(componentTypeEnum, internalComponentType);
+ List<Component> result = new ArrayList<>();
+ for (VertexTypeEnum vertexType : internalVertexTypes) {
+ Either<List<Component>, StorageOperationStatus> listByVertexType = getLatestVersionNotAbstractToscaElementsMetadataOnly(isAbstract, isHighest, componentTypeEnum, internalComponentType, vertexType);
+ if (listByVertexType.isRight()) {
+ return listByVertexType;
+ }
+ result.addAll(listByVertexType.left().value());
+ }
+ return Either.left(result);
+
+ }
+
+ public Either<List<Component>, StorageOperationStatus> getLatestComponentListByUuid(String componentUuid) {
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
Either<List<Component>, StorageOperationStatus> componentListByUuid = getComponentListByUuid(componentUuid, propertiesToMatch);
return componentListByUuid;
- }
+ }
- public Either<List<Component>, StorageOperationStatus> getComponentListByUuid(String componentUuid, Map<GraphPropertyEnum, Object> additionalPropertiesToMatch) {
+ public Either<List<Component>, StorageOperationStatus> getComponentListByUuid(String componentUuid, Map<GraphPropertyEnum, Object> additionalPropertiesToMatch) {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- if (additionalPropertiesToMatch != null) {
- propertiesToMatch.putAll(additionalPropertiesToMatch);
- }
+ if (additionalPropertiesToMatch != null) {
+ propertiesToMatch.putAll(additionalPropertiesToMatch);
+ }
- propertiesToMatch.put(GraphPropertyEnum.UUID, componentUuid);
+ propertiesToMatch.put(GraphPropertyEnum.UUID, componentUuid);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
- Either<List<GraphVertex>, TitanOperationStatus> vertexEither = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+ Either<List<GraphVertex>, TitanOperationStatus> vertexEither = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- if (vertexEither.isRight()) {
- log.debug("Couldn't fetch metadata for component with type {} and uuid {}, error: {}", componentUuid, vertexEither.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(vertexEither.right().value()));
- }
- List<GraphVertex> vertexList = vertexEither.isLeft() ? vertexEither.left().value() : null;
+ if (vertexEither.isRight()) {
+ log.debug("Couldn't fetch metadata for component with type {} and uuid {}, error: {}", componentUuid, vertexEither.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(vertexEither.right().value()));
+ }
+ List<GraphVertex> vertexList = vertexEither.isLeft() ? vertexEither.left().value() : null;
- if (vertexList == null || vertexList.isEmpty()) {
- log.debug("Component with uuid {} was not found", componentUuid);
- return Either.right(StorageOperationStatus.NOT_FOUND);
- }
+ if (vertexList == null || vertexList.isEmpty()) {
+ log.debug("Component with uuid {} was not found", componentUuid);
+ return Either.right(StorageOperationStatus.NOT_FOUND);
+ }
ArrayList<Component> latestComponents = new ArrayList<>();
- for (GraphVertex vertex : vertexList) {
+ for (GraphVertex vertex : vertexList) {
Either<Component, StorageOperationStatus> toscaElementByOperation = getToscaElementByOperation(vertex);
if(toscaElementByOperation.isRight()){
@@ -1599,577 +1569,606 @@ public class ToscaOperationFacade {
return Either.left(highestComponent);
}
}
- }
+ }
- return Either.left(latestComponents);
- }
-
- public Either<Component, StorageOperationStatus> getLatestComponentByUuid(String componentUuid) {
-
- Either<List<Component>, StorageOperationStatus> latestVersionListEither = getLatestComponentListByUuid(componentUuid);
-
- if (latestVersionListEither.isRight()) {
- return Either.right(latestVersionListEither.right().value());
- }
-
- List<Component> latestVersionList = latestVersionListEither.left().value();
-
- if (latestVersionList.isEmpty()) {
- return Either.right(StorageOperationStatus.NOT_FOUND);
- }
- Component component = latestVersionList.size() == 1 ? latestVersionList.get(0) : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getVersion()), Double.parseDouble(c2.getVersion()))).get();
-
- return Either.left(component);
- }
-
- public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean isAbstract, Boolean isHighest) {
-
- List<Resource> resources = new ArrayList<>();
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
-
- propertiesToMatch.put(GraphPropertyEnum.IS_ABSTRACT, isAbstract);
- if (isHighest != null) {
- propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, isHighest.booleanValue());
- }
- propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> getResourcesRes = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
-
- if (getResourcesRes.isRight()) {
- log.debug("Failed to fetch all certified resources. Status is {}", getResourcesRes.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getResourcesRes.right().value()));
- }
- List<GraphVertex> resourceVerticies = getResourcesRes.left().value();
- for (GraphVertex resourceV : resourceVerticies) {
- Either<Resource, StorageOperationStatus> getResourceRes = getToscaElement(resourceV);
- if (getResourceRes.isRight()) {
- return Either.right(getResourceRes.right().value());
- }
- resources.add(getResourceRes.left().value());
- }
- return Either.left(resources);
- }
-
- public <T extends Component> Either<T, StorageOperationStatus> getLatestByNameAndVersion(String name, String version, JsonParseFlagEnum parseFlag) {
- Either<T, StorageOperationStatus> result;
-
- Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> hasNotProperties = new EnumMap<>(GraphPropertyEnum.class);
-
- hasProperties.put(GraphPropertyEnum.NAME, name);
- hasProperties.put(GraphPropertyEnum.VERSION, version);
- hasProperties.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
-
- hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
-
- Either<List<GraphVertex>, TitanOperationStatus> getResourceRes = titanDao.getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
- if (getResourceRes.isRight()) {
- TitanOperationStatus status = getResourceRes.right().value();
- log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- return result;
- }
- return getToscaElementByOperation(getResourceRes.left().value().get(0));
- }
-
- public Either<Resource, StorageOperationStatus> getLatestComponentByCsarOrName(ComponentTypeEnum componentType, String csarUUID, String systemName) {
- return getLatestComponentByCsarOrName(componentType, csarUUID, systemName, false, JsonParseFlagEnum.ParseAll);
- }
-
- public Either<Resource, StorageOperationStatus> getLatestComponentByCsarOrName(ComponentTypeEnum componentType, String csarUUID, String systemName, boolean allowDeleted, JsonParseFlagEnum parseFlag) {
- Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
- props.put(GraphPropertyEnum.CSAR_UUID, csarUUID);
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- if (componentType != null) {
- props.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
- }
- Map<GraphPropertyEnum, Object> propsHasNot = new EnumMap<>(GraphPropertyEnum.class);
- propsHasNot.put(GraphPropertyEnum.IS_DELETED, true);
-
- GraphVertex resourceMetadataData = null;
- List<GraphVertex> resourceMetadataDataList = null;
- Either<List<GraphVertex>, TitanOperationStatus> byCsar = titanDao.getByCriteria(null, props, propsHasNot, JsonParseFlagEnum.ParseMetadata);
- if (byCsar.isRight()) {
- if (TitanOperationStatus.NOT_FOUND == byCsar.right().value()) {
- // Fix Defect DE256036
- if (StringUtils.isEmpty(systemName)) {
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND));
- }
-
- props.clear();
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- props.put(GraphPropertyEnum.SYSTEM_NAME, systemName);
- Either<List<GraphVertex>, TitanOperationStatus> bySystemname = titanDao.getByCriteria(null, props, JsonParseFlagEnum.ParseMetadata);
- if (bySystemname.isRight()) {
- log.debug("getLatestResourceByCsarOrName - Failed to find by system name {} error {} ", systemName, bySystemname.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(bySystemname.right().value()));
- }
- if (bySystemname.left().value().size() > 2) {
- log.debug("getLatestResourceByCsarOrName - getByCriteria(by system name) must return only 2 latest version, but was returned - {}", bySystemname.left().value().size());
- return Either.right(StorageOperationStatus.GENERAL_ERROR);
- }
- resourceMetadataDataList = bySystemname.left().value();
- if (resourceMetadataDataList.size() == 1) {
- resourceMetadataData = resourceMetadataDataList.get(0);
- } else {
- for (GraphVertex curResource : resourceMetadataDataList) {
- if (!((String) curResource.getJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE)).equals("CERTIFIED")) {
- resourceMetadataData = curResource;
- break;
- }
- }
- }
- if (resourceMetadataData == null) {
- log.debug("getLatestResourceByCsarOrName - getByCriteria(by system name) returned 2 latest CERTIFIED versions");
- return Either.right(StorageOperationStatus.GENERAL_ERROR);
- }
- if (resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID) != null && !((String) resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID)).equals(csarUUID)) {
- log.debug("getLatestResourceByCsarOrName - same system name {} but different csarUUID. exist {} and new {} ", systemName, resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID), csarUUID);
- // correct error will be returned from create flow. with all
- // correct audit records!!!!!
- return Either.right(StorageOperationStatus.NOT_FOUND);
- }
- Either<Resource, StorageOperationStatus> resource = getToscaElement((String) resourceMetadataData.getUniqueId());
- return resource;
- }
- } else {
- resourceMetadataDataList = byCsar.left().value();
- if (resourceMetadataDataList.size() > 2) {
- log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) must return only 2 latest version, but was returned - {}", byCsar.left().value().size());
- return Either.right(StorageOperationStatus.GENERAL_ERROR);
- }
- if (resourceMetadataDataList.size() == 1) {
- resourceMetadataData = resourceMetadataDataList.get(0);
- } else {
- for (GraphVertex curResource : resourceMetadataDataList) {
- if (!((String) curResource.getJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE)).equals("CERTIFIED")) {
- resourceMetadataData = curResource;
- break;
- }
- }
- }
- if (resourceMetadataData == null) {
- log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) returned 2 latest CERTIFIED versions");
- return Either.right(StorageOperationStatus.GENERAL_ERROR);
- }
- Either<Resource, StorageOperationStatus> resource = getToscaElement((String) resourceMetadataData.getJsonMetadataField(JsonPresentationFields.UNIQUE_ID), parseFlag);
- return resource;
- }
- return null;
- }
-
- public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExtends(String templateNameCurrent, String templateNameExtends) {
-
- String currentTemplateNameChecked = templateNameExtends;
-
- while (currentTemplateNameChecked != null && !currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) {
- Either<Resource, StorageOperationStatus> latestByToscaResourceName = getLatestByToscaResourceName(currentTemplateNameChecked);
-
- if (latestByToscaResourceName.isRight()) {
- return latestByToscaResourceName.right().value() == StorageOperationStatus.NOT_FOUND ? Either.left(false) : Either.right(latestByToscaResourceName.right().value());
- }
-
- Resource value = latestByToscaResourceName.left().value();
-
- if (value.getDerivedFrom() != null) {
- currentTemplateNameChecked = value.getDerivedFrom().get(0);
- } else {
- currentTemplateNameChecked = null;
- }
- }
-
- return (currentTemplateNameChecked != null && currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) ? Either.left(true) : Either.left(false);
- }
-
- public Either<List<Component>, StorageOperationStatus> fetchByResourceType(String resourceType) {
-
- Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
- props.put(GraphPropertyEnum.RESOURCE_TYPE, resourceType);
- props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
- Either<List<GraphVertex>, TitanOperationStatus> resourcesByTypeEither = titanDao.getByCriteria(null, props);
-
- if (resourcesByTypeEither.isRight()) {
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resourcesByTypeEither.right().value()));
- }
-
- List<GraphVertex> vertexList = resourcesByTypeEither.left().value();
- List<Component> components = new ArrayList<>();
-
- for (GraphVertex vertex : vertexList) {
- components.add(getToscaElementByOperation(vertex).left().value());
- }
-
- return Either.left(components);
-
- }
-
- public void commit() {
- titanDao.commit();
- }
-
- public Either<Service, StorageOperationStatus> updateDistributionStatus(Service service, User user, DistributionStatusEnum distributionStatus) {
- Either<GraphVertex, StorageOperationStatus> updateDistributionStatus = topologyTemplateOperation.updateDistributionStatus(service.getUniqueId(), user, distributionStatus);
- if (updateDistributionStatus.isRight()) {
- return Either.right(updateDistributionStatus.right().value());
- }
- GraphVertex serviceV = updateDistributionStatus.left().value();
- service.setDistributionStatus(distributionStatus);
- service.setLastUpdateDate((Long) serviceV.getJsonMetadataField(JsonPresentationFields.LAST_UPDATE_DATE));
- return Either.left(service);
- }
-
- public Either<ComponentMetadataData, StorageOperationStatus> updateComponentLastUpdateDateOnGraph(Component component, Long modificationTime) {
-
- Either<ComponentMetadataData, StorageOperationStatus> result = null;
- GraphVertex serviceVertex;
- Either<GraphVertex, TitanOperationStatus> updateRes = null;
- Either<GraphVertex, TitanOperationStatus> getRes = titanDao.getVertexById(component.getUniqueId(), JsonParseFlagEnum.ParseMetadata);
- if (getRes.isRight()) {
- TitanOperationStatus status = getRes.right().value();
- log.error("Failed to fetch component {}. status is {}", component.getUniqueId(), status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- }
- if (result == null) {
- serviceVertex = getRes.left().value();
- long lastUpdateDate = System.currentTimeMillis();
- serviceVertex.setJsonMetadataField(JsonPresentationFields.LAST_UPDATE_DATE, lastUpdateDate);
- component.setLastUpdateDate(lastUpdateDate);
- updateRes = titanDao.updateVertex(serviceVertex);
- if (updateRes.isRight()) {
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateRes.right().value()));
- }
- }
- if (result == null) {
- result = Either.left(ModelConverter.convertToComponentMetadata(updateRes.left().value()));
- }
- return result;
- }
-
- public TitanDao getTitanDao() {
- return titanDao;
- }
-
- public Either<List<Service>, StorageOperationStatus> getCertifiedServicesWithDistStatus(Set<DistributionStatusEnum> distStatus) {
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
-
- return getServicesWithDistStatus(distStatus, propertiesToMatch);
- }
-
- public Either<List<Service>, StorageOperationStatus> getServicesWithDistStatus(Set<DistributionStatusEnum> distStatus, Map<GraphPropertyEnum, Object> additionalPropertiesToMatch) {
-
- List<Service> servicesAll = new ArrayList<>();
-
- Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
- Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
-
- if (additionalPropertiesToMatch != null && !additionalPropertiesToMatch.isEmpty()) {
- propertiesToMatch.putAll(additionalPropertiesToMatch);
- }
-
- propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
-
- propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
-
- if (distStatus != null && !distStatus.isEmpty()) {
- for (DistributionStatusEnum state : distStatus) {
- propertiesToMatch.put(GraphPropertyEnum.DISTRIBUTION_STATUS, state.name());
- Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria = fetchServicesByCriteria(servicesAll, propertiesToMatch, propertiesNotToMatch);
- if (fetchServicesByCriteria.isRight()) {
- return fetchServicesByCriteria;
- } else {
- servicesAll = fetchServicesByCriteria.left().value();
- }
- }
- return Either.left(servicesAll);
- } else {
- return fetchServicesByCriteria(servicesAll, propertiesToMatch, propertiesNotToMatch);
- }
- }
-
- // private Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria(List<Service> servicesAll, Map<GraphPropertyEnum, Object> propertiesToMatch, Map<GraphPropertyEnum, Object> propertiesNotToMatch) {
- // Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- // if (getRes.isRight()) {
- // if (getRes.right().value() != TitanOperationStatus.NOT_FOUND) {
- // CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch, propertiesNotToMatch, getRes.right().value());
- // return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
- // }
- // } else {
- // for (GraphVertex vertex : getRes.left().value()) {
- // Either<Component, StorageOperationStatus> getServiceRes = getToscaElementByOperation(vertex);
- // if (getServiceRes.isRight()) {
- // CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified service {}. Status is {}. ", vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
- // return Either.right(getServiceRes.right().value());
- // } else {
- // servicesAll.add((Service) getToscaElementByOperation(vertex).left().value());
- // }
- // }
- // }
- // return Either.left(servicesAll);
- // }
-
- private Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria(List<Service> servicesAll, Map<GraphPropertyEnum, Object> propertiesToMatch, Map<GraphPropertyEnum, Object> propertiesNotToMatch) {
- Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
- if (getRes.isRight()) {
- if (getRes.right().value() != TitanOperationStatus.NOT_FOUND) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch, propertiesNotToMatch, getRes.right().value());
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
- }
- } else {
- for (GraphVertex vertex : getRes.left().value()) {
- // Either<Component, StorageOperationStatus> getServiceRes = getToscaElementByOperation(vertex);
- Either<ToscaElement, StorageOperationStatus> getServiceRes = topologyTemplateOperation.getLightComponent(vertex, ComponentTypeEnum.SERVICE, new ComponentParametersView(true));
-
- if (getServiceRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified service {}. Status is {}. ", vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
- return Either.right(getServiceRes.right().value());
- } else {
- servicesAll.add(ModelConverter.convertFromToscaElement(getServiceRes.left().value()));
- }
- }
- }
- return Either.left(servicesAll);
- }
-
- public void rollback() {
- titanDao.rollback();
- }
-
- public StorageOperationStatus addDeploymentArtifactsToInstance(String componentId, ComponentInstance componentInstance, Map<String, ArtifactDefinition> finalDeploymentArtifacts) {
- Map<String, ArtifactDataDefinition> instDeplArtifacts = finalDeploymentArtifacts.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
-
- return nodeTemplateOperation.addDeploymentArtifactsToInstance(componentId, componentInstance.getUniqueId(), instDeplArtifacts);
- }
-
- public StorageOperationStatus generateCustomizationUUIDOnInstance(String componentId, String instanceId) {
- return nodeTemplateOperation.generateCustomizationUUIDOnInstance(componentId, instanceId);
- }
-
- public StorageOperationStatus generateCustomizationUUIDOnInstanceGroup(String componentId, String instanceId, List<String> groupInstances) {
- return nodeTemplateOperation.generateCustomizationUUIDOnInstanceGroup(componentId, instanceId, groupInstances);
- }
-
- public Either<PropertyDefinition, StorageOperationStatus> addPropertyToResource(String propertyName, PropertyDefinition newPropertyDefinition, Resource resource) {
-
- Either<PropertyDefinition, StorageOperationStatus> result = null;
- Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
- newPropertyDefinition.setName(propertyName);
- newPropertyDefinition.setParentUniqueId(resource.getUniqueId());
- StorageOperationStatus status = getToscaElementOperation(resource).addToscaDataToToscaElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition, JsonPresentationFields.NAME);
- if (status != StorageOperationStatus.OK) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", propertyName, resource.getName(), status);
- result = Either.right(status);
- }
- if (result == null) {
- ComponentParametersView filter = new ComponentParametersView(true);
- filter.setIgnoreProperties(false);
- getUpdatedComponentRes = getToscaElement(resource.getUniqueId(), filter);
- if (getUpdatedComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", resource.getUniqueId(), getUpdatedComponentRes.right().value());
- result = Either.right(status);
- }
- }
- if (result == null) {
- PropertyDefinition newProperty = null;
- List<PropertyDefinition> properties = ((Resource) getUpdatedComponentRes.left().value()).getProperties();
- if (CollectionUtils.isNotEmpty(properties)) {
- Optional<PropertyDefinition> newPropertyOptional = properties.stream().filter(p -> p.getName().equals(propertyName)).findAny();
- if (newPropertyOptional.isPresent()) {
- newProperty = newPropertyOptional.get();
- }
- }
- if (newProperty == null) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", propertyName, resource.getUniqueId(), StorageOperationStatus.NOT_FOUND);
- result = Either.right(StorageOperationStatus.NOT_FOUND);
- } else {
- result = Either.left(newProperty);
- }
- }
- return result;
- }
-
- public StorageOperationStatus deletePropertyOfResource(Resource resource, String propertyName) {
- return getToscaElementOperation(resource).deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, propertyName, JsonPresentationFields.NAME);
- }
-
- public StorageOperationStatus deleteAttributeOfResource(Component component, String attributeName) {
- return getToscaElementOperation(component).deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, attributeName, JsonPresentationFields.NAME);
- }
-
- public StorageOperationStatus deleteInputOfResource(Component resource, String inputName) {
- return getToscaElementOperation(resource).deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputName, JsonPresentationFields.NAME);
- }
-
- public Either<PropertyDefinition, StorageOperationStatus> updatePropertyOfResource(Resource resource, PropertyDefinition newPropertyDefinition) {
-
- Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
- Either<PropertyDefinition, StorageOperationStatus> result = null;
- StorageOperationStatus status = getToscaElementOperation(resource).updateToscaDataOfToscaElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition, JsonPresentationFields.NAME);
- if (status != StorageOperationStatus.OK) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newPropertyDefinition.getName(), resource.getName(), status);
- result = Either.right(status);
- }
- if (result == null) {
- ComponentParametersView filter = new ComponentParametersView(true);
- filter.setIgnoreProperties(false);
- getUpdatedComponentRes = getToscaElement(resource.getUniqueId(), filter);
- if (getUpdatedComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", resource.getUniqueId(), getUpdatedComponentRes.right().value());
- result = Either.right(status);
- }
- }
- if (result == null) {
- Optional<PropertyDefinition> newProperty = ((Resource) getUpdatedComponentRes.left().value()).getProperties().stream().filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
- if (newProperty.isPresent()) {
- result = Either.left(newProperty.get());
- } else {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newPropertyDefinition.getName(), resource.getUniqueId(), StorageOperationStatus.NOT_FOUND);
- result = Either.right(StorageOperationStatus.NOT_FOUND);
- }
- }
- return result;
- }
-
- public Either<PropertyDefinition, StorageOperationStatus> addAttributeOfResource(Component component, PropertyDefinition newAttributeDef) {
-
- Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
- Either<PropertyDefinition, StorageOperationStatus> result = null;
- if (newAttributeDef.getUniqueId() == null || newAttributeDef.getUniqueId().isEmpty()) {
- String attUniqueId = UniqueIdBuilder.buildAttributeUid(component.getUniqueId(), newAttributeDef.getName());
- newAttributeDef.setUniqueId(attUniqueId);
- }
-
- StorageOperationStatus status = getToscaElementOperation(component).addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef, JsonPresentationFields.NAME);
- if (status != StorageOperationStatus.OK) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newAttributeDef.getName(), component.getName(), status);
- result = Either.right(status);
- }
- if (result == null) {
- ComponentParametersView filter = new ComponentParametersView(true);
- filter.setIgnoreAttributesFrom(false);
- getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
- if (getUpdatedComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
- result = Either.right(status);
- }
- }
- if (result == null) {
- Optional<PropertyDefinition> newAttribute = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream().filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
- if (newAttribute.isPresent()) {
- result = Either.left(newAttribute.get());
- } else {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
- result = Either.right(StorageOperationStatus.NOT_FOUND);
- }
- }
- return result;
- }
-
- public Either<PropertyDefinition, StorageOperationStatus> updateAttributeOfResource(Component component, PropertyDefinition newAttributeDef) {
-
- Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
- Either<PropertyDefinition, StorageOperationStatus> result = null;
- StorageOperationStatus status = getToscaElementOperation(component).updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef, JsonPresentationFields.NAME);
- if (status != StorageOperationStatus.OK) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newAttributeDef.getName(), component.getName(), status);
- result = Either.right(status);
- }
- if (result == null) {
- ComponentParametersView filter = new ComponentParametersView(true);
- filter.setIgnoreAttributesFrom(false);
- getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
- if (getUpdatedComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
- result = Either.right(status);
- }
- }
- if (result == null) {
- Optional<PropertyDefinition> newProperty = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream().filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
- if (newProperty.isPresent()) {
- result = Either.left(newProperty.get());
- } else {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
- result = Either.right(StorageOperationStatus.NOT_FOUND);
- }
- }
- return result;
- }
-
- public Either<InputDefinition, StorageOperationStatus> updateInputOfComponent(Component component, InputDefinition newInputDefinition) {
-
- Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
- Either<InputDefinition, StorageOperationStatus> result = null;
- StorageOperationStatus status = getToscaElementOperation(component).updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition, JsonPresentationFields.NAME);
- if (status != StorageOperationStatus.OK) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the input {} to the component {}. Status is {}. ", newInputDefinition.getName(), component.getName(), status);
- result = Either.right(status);
- }
- if (result == null) {
- ComponentParametersView filter = new ComponentParametersView(true);
- filter.setIgnoreInputs(false);
- getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
- if (getUpdatedComponentRes.isRight()) {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
- result = Either.right(status);
- }
- }
- if (result == null) {
- Optional<InputDefinition> updatedInput = getUpdatedComponentRes.left().value().getInputs().stream().filter(p -> p.getName().equals(newInputDefinition.getName())).findAny();
- if (updatedInput.isPresent()) {
- result = Either.left(updatedInput.get());
- } else {
- CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently updated inputs {} on the resource {}. Status is {}. ", newInputDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
- result = Either.right(StorageOperationStatus.NOT_FOUND);
- }
- }
- return result;
- }
-
- public StorageOperationStatus addGroupInstancesToComponentInstance(Component containerComponent, ComponentInstance componentInstance, List<GroupDefinition> groups, Map<String, List<ArtifactDefinition>> groupInstancesArtifacts) {
- return nodeTemplateOperation.addGroupInstancesToComponentInstance(containerComponent, componentInstance, groups, groupInstancesArtifacts);
- }
-
- public Either<List<GroupDefinition>, StorageOperationStatus> updateGroupsOnComponent(Component component, ComponentTypeEnum componentType, List<GroupDataDefinition> updatedGroups) {
- return groupsOperation.updateGroups(component, componentType, updatedGroups);
- }
-
- public Either<List<GroupInstance>, StorageOperationStatus> updateGroupInstancesOnComponent(Component component, ComponentTypeEnum componentType, String instanceId, List<GroupInstance> updatedGroupInstances) {
- return groupsOperation.updateGroupInstances(component, componentType, instanceId, updatedGroupInstances);
- }
-
- public StorageOperationStatus addGroupInstancesToComponentInstance(Component containerComponent, ComponentInstance componentInstance, List<GroupInstance> groupInstances) {
- return nodeTemplateOperation.addGroupInstancesToComponentInstance(containerComponent, componentInstance, groupInstances);
- }
-
- public StorageOperationStatus addDeploymentArtifactsToComponentInstance(Component containerComponent, ComponentInstance componentInstance, Map<String, ArtifactDefinition> deploymentArtifacts) {
- return nodeTemplateOperation.addDeploymentArtifactsToComponentInstance(containerComponent, componentInstance, deploymentArtifacts);
- }
-
- public StorageOperationStatus updateComponentInstanceProperty(Component containerComponent, String componentInstanceId, ComponentInstanceProperty property) {
- return nodeTemplateOperation.updateComponentInstanceProperty(containerComponent, componentInstanceId, property);
- }
-
- public StorageOperationStatus addComponentInstanceProperty(Component containerComponent, String componentInstanceId, ComponentInstanceProperty property) {
- return nodeTemplateOperation.addComponentInstanceProperty(containerComponent, componentInstanceId, property);
- }
-
- public StorageOperationStatus updateComponentInstanceInput(Component containerComponent, String componentInstanceId, ComponentInstanceInput property) {
- return nodeTemplateOperation.updateComponentInstanceInput(containerComponent, componentInstanceId, property);
- }
-
- public StorageOperationStatus addComponentInstanceInput(Component containerComponent, String componentInstanceId, ComponentInstanceInput property) {
- return nodeTemplateOperation.addComponentInstanceInput(containerComponent, componentInstanceId, property);
- }
-
- public void setNodeTypeOperation(NodeTypeOperation nodeTypeOperation) {
- this.nodeTypeOperation = nodeTypeOperation;
- }
-
- public void setTopologyTemplateOperation(TopologyTemplateOperation topologyTemplateOperation) {
- this.topologyTemplateOperation = topologyTemplateOperation;
+ return Either.left(latestComponents);
+ }
+
+ public Either<Component, StorageOperationStatus> getLatestComponentByUuid(String componentUuid) {
+
+ Either<List<Component>, StorageOperationStatus> latestVersionListEither = getLatestComponentListByUuid(componentUuid);
+
+ if (latestVersionListEither.isRight()) {
+ return Either.right(latestVersionListEither.right().value());
+ }
+
+ List<Component> latestVersionList = latestVersionListEither.left().value();
+
+ if (latestVersionList.isEmpty()) {
+ return Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ Component component = latestVersionList.size() == 1 ? latestVersionList.get(0) : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getVersion()), Double.parseDouble(c2.getVersion()))).get();
+
+ return Either.left(component);
+ }
+
+ public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean isAbstract, Boolean isHighest) {
+
+ List<Resource> resources = new ArrayList<>();
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+
+ propertiesToMatch.put(GraphPropertyEnum.IS_ABSTRACT, isAbstract);
+ if (isHighest != null) {
+ propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, isHighest.booleanValue());
+ }
+ propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getResourcesRes = titanDao.getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+
+ if (getResourcesRes.isRight()) {
+ log.debug("Failed to fetch all certified resources. Status is {}", getResourcesRes.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getResourcesRes.right().value()));
+ }
+ List<GraphVertex> resourceVerticies = getResourcesRes.left().value();
+ for (GraphVertex resourceV : resourceVerticies) {
+ Either<Resource, StorageOperationStatus> getResourceRes = getToscaElement(resourceV);
+ if (getResourceRes.isRight()) {
+ return Either.right(getResourceRes.right().value());
+ }
+ resources.add(getResourceRes.left().value());
+ }
+ return Either.left(resources);
+ }
+
+ public <T extends Component> Either<T, StorageOperationStatus> getLatestByNameAndVersion(String name, String version, JsonParseFlagEnum parseFlag) {
+ Either<T, StorageOperationStatus> result;
+
+ Map<GraphPropertyEnum, Object> hasProperties = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> hasNotProperties = new EnumMap<>(GraphPropertyEnum.class);
+
+ hasProperties.put(GraphPropertyEnum.NAME, name);
+ hasProperties.put(GraphPropertyEnum.VERSION, version);
+ hasProperties.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+
+ hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
+
+ Either<List<GraphVertex>, TitanOperationStatus> getResourceRes = titanDao.getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
+ if (getResourceRes.isRight()) {
+ TitanOperationStatus status = getResourceRes.right().value();
+ log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+ return getToscaElementByOperation(getResourceRes.left().value().get(0));
+ }
+
+ public Either<Resource, StorageOperationStatus> getLatestComponentByCsarOrName(ComponentTypeEnum componentType, String csarUUID, String systemName) {
+ return getLatestComponentByCsarOrName(componentType, csarUUID, systemName, false, JsonParseFlagEnum.ParseAll);
+ }
+
+ public Either<Resource, StorageOperationStatus> getLatestComponentByCsarOrName(ComponentTypeEnum componentType, String csarUUID, String systemName, boolean allowDeleted, JsonParseFlagEnum parseFlag) {
+ Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
+ props.put(GraphPropertyEnum.CSAR_UUID, csarUUID);
+ props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ if (componentType != null) {
+ props.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
+ }
+ Map<GraphPropertyEnum, Object> propsHasNot = new EnumMap<>(GraphPropertyEnum.class);
+ propsHasNot.put(GraphPropertyEnum.IS_DELETED, true);
+
+ GraphVertex resourceMetadataData = null;
+ List<GraphVertex> resourceMetadataDataList = null;
+ Either<List<GraphVertex>, TitanOperationStatus> byCsar = titanDao.getByCriteria(null, props, propsHasNot, JsonParseFlagEnum.ParseMetadata);
+ if (byCsar.isRight()) {
+ if (TitanOperationStatus.NOT_FOUND == byCsar.right().value()) {
+ // Fix Defect DE256036
+ if (StringUtils.isEmpty(systemName)) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND));
+ }
+
+ props.clear();
+ props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ props.put(GraphPropertyEnum.SYSTEM_NAME, systemName);
+ Either<List<GraphVertex>, TitanOperationStatus> bySystemname = titanDao.getByCriteria(null, props, JsonParseFlagEnum.ParseMetadata);
+ if (bySystemname.isRight()) {
+ log.debug("getLatestResourceByCsarOrName - Failed to find by system name {} error {} ", systemName, bySystemname.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(bySystemname.right().value()));
+ }
+ if (bySystemname.left().value().size() > 2) {
+ log.debug("getLatestResourceByCsarOrName - getByCriteria(by system name) must return only 2 latest version, but was returned - {}", bySystemname.left().value().size());
+ return Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }
+ resourceMetadataDataList = bySystemname.left().value();
+ if (resourceMetadataDataList.size() == 1) {
+ resourceMetadataData = resourceMetadataDataList.get(0);
+ } else {
+ for (GraphVertex curResource : resourceMetadataDataList) {
+ if (!((String) curResource.getJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE)).equals("CERTIFIED")) {
+ resourceMetadataData = curResource;
+ break;
+ }
+ }
+ }
+ if (resourceMetadataData == null) {
+ log.debug("getLatestResourceByCsarOrName - getByCriteria(by system name) returned 2 latest CERTIFIED versions");
+ return Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }
+ if (resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID) != null && !((String) resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID)).equals(csarUUID)) {
+ log.debug("getLatestResourceByCsarOrName - same system name {} but different csarUUID. exist {} and new {} ", systemName, resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID), csarUUID);
+ // correct error will be returned from create flow. with all
+ // correct audit records!!!!!
+ return Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ Either<Resource, StorageOperationStatus> resource = getToscaElement((String) resourceMetadataData.getUniqueId());
+ return resource;
+ }
+ } else {
+ resourceMetadataDataList = byCsar.left().value();
+ if (resourceMetadataDataList.size() > 2) {
+ log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) must return only 2 latest version, but was returned - {}", byCsar.left().value().size());
+ return Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }
+ if (resourceMetadataDataList.size() == 1) {
+ resourceMetadataData = resourceMetadataDataList.get(0);
+ } else {
+ for (GraphVertex curResource : resourceMetadataDataList) {
+ if (!((String) curResource.getJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE)).equals("CERTIFIED")) {
+ resourceMetadataData = curResource;
+ break;
+ }
+ }
+ }
+ if (resourceMetadataData == null) {
+ log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) returned 2 latest CERTIFIED versions");
+ return Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }
+ Either<Resource, StorageOperationStatus> resource = getToscaElement((String) resourceMetadataData.getJsonMetadataField(JsonPresentationFields.UNIQUE_ID), parseFlag);
+ return resource;
+ }
+ return null;
+ }
+
+ public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExtends(String templateNameCurrent, String templateNameExtends) {
+
+ String currentTemplateNameChecked = templateNameExtends;
+
+ while (currentTemplateNameChecked != null && !currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) {
+ Either<Resource, StorageOperationStatus> latestByToscaResourceName = getLatestByToscaResourceName(currentTemplateNameChecked);
+
+ if (latestByToscaResourceName.isRight()) {
+ return latestByToscaResourceName.right().value() == StorageOperationStatus.NOT_FOUND ? Either.left(false) : Either.right(latestByToscaResourceName.right().value());
+ }
+
+ Resource value = latestByToscaResourceName.left().value();
+
+ if (value.getDerivedFrom() != null) {
+ currentTemplateNameChecked = value.getDerivedFrom().get(0);
+ } else {
+ currentTemplateNameChecked = null;
+ }
+ }
+
+ return (currentTemplateNameChecked != null && currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) ? Either.left(true) : Either.left(false);
+ }
+
+ public Either<List<Component>, StorageOperationStatus> fetchByResourceType(String resourceType) {
+
+ Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
+ props.put(GraphPropertyEnum.RESOURCE_TYPE, resourceType);
+ props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ Either<List<GraphVertex>, TitanOperationStatus> resourcesByTypeEither = titanDao.getByCriteria(null, props);
+
+ if (resourcesByTypeEither.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resourcesByTypeEither.right().value()));
+ }
+
+ List<GraphVertex> vertexList = resourcesByTypeEither.left().value();
+ List<Component> components = new ArrayList<>();
+
+ for (GraphVertex vertex : vertexList) {
+ components.add(getToscaElementByOperation(vertex).left().value());
+ }
+
+ return Either.left(components);
+
+ }
+
+ public void commit() {
+ titanDao.commit();
+ }
+
+ public Either<Service, StorageOperationStatus> updateDistributionStatus(Service service, User user, DistributionStatusEnum distributionStatus) {
+ Either<GraphVertex, StorageOperationStatus> updateDistributionStatus = topologyTemplateOperation.updateDistributionStatus(service.getUniqueId(), user, distributionStatus);
+ if (updateDistributionStatus.isRight()) {
+ return Either.right(updateDistributionStatus.right().value());
+ }
+ GraphVertex serviceV = updateDistributionStatus.left().value();
+ service.setDistributionStatus(distributionStatus);
+ service.setLastUpdateDate((Long) serviceV.getJsonMetadataField(JsonPresentationFields.LAST_UPDATE_DATE));
+ return Either.left(service);
+ }
+
+ public Either<ComponentMetadataData, StorageOperationStatus> updateComponentLastUpdateDateOnGraph(Component component, Long modificationTime) {
+
+ Either<ComponentMetadataData, StorageOperationStatus> result = null;
+ GraphVertex serviceVertex;
+ Either<GraphVertex, TitanOperationStatus> updateRes = null;
+ Either<GraphVertex, TitanOperationStatus> getRes = titanDao.getVertexById(component.getUniqueId(), JsonParseFlagEnum.ParseMetadata);
+ if (getRes.isRight()) {
+ TitanOperationStatus status = getRes.right().value();
+ log.error("Failed to fetch component {}. status is {}", component.getUniqueId(), status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+ if (result == null) {
+ serviceVertex = getRes.left().value();
+ long lastUpdateDate = System.currentTimeMillis();
+ serviceVertex.setJsonMetadataField(JsonPresentationFields.LAST_UPDATE_DATE, lastUpdateDate);
+ component.setLastUpdateDate(lastUpdateDate);
+ updateRes = titanDao.updateVertex(serviceVertex);
+ if (updateRes.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateRes.right().value()));
+ }
+ }
+ if (result == null) {
+ result = Either.left(ModelConverter.convertToComponentMetadata(updateRes.left().value()));
+ }
+ return result;
+ }
+
+ public TitanDao getTitanDao() {
+ return titanDao;
+ }
+
+ public Either<List<Service>, StorageOperationStatus> getCertifiedServicesWithDistStatus(Set<DistributionStatusEnum> distStatus) {
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ propertiesToMatch.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+
+ return getServicesWithDistStatus(distStatus, propertiesToMatch);
+ }
+
+ public Either<List<Service>, StorageOperationStatus> getServicesWithDistStatus(Set<DistributionStatusEnum> distStatus, Map<GraphPropertyEnum, Object> additionalPropertiesToMatch) {
+
+ List<Service> servicesAll = new ArrayList<>();
+
+ Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+ Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
+
+ if (additionalPropertiesToMatch != null && !additionalPropertiesToMatch.isEmpty()) {
+ propertiesToMatch.putAll(additionalPropertiesToMatch);
+ }
+
+ propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+
+ propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
+
+ if (distStatus != null && !distStatus.isEmpty()) {
+ for (DistributionStatusEnum state : distStatus) {
+ propertiesToMatch.put(GraphPropertyEnum.DISTRIBUTION_STATUS, state.name());
+ Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria = fetchServicesByCriteria(servicesAll, propertiesToMatch, propertiesNotToMatch);
+ if (fetchServicesByCriteria.isRight()) {
+ return fetchServicesByCriteria;
+ } else {
+ servicesAll = fetchServicesByCriteria.left().value();
+ }
+ }
+ return Either.left(servicesAll);
+ } else {
+ return fetchServicesByCriteria(servicesAll, propertiesToMatch, propertiesNotToMatch);
+ }
+ }
+
+ // private Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria(List<Service> servicesAll, Map<GraphPropertyEnum, Object> propertiesToMatch, Map<GraphPropertyEnum, Object> propertiesNotToMatch) {
+ // Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+ // if (getRes.isRight()) {
+ // if (getRes.right().value() != TitanOperationStatus.NOT_FOUND) {
+ // CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch, propertiesNotToMatch, getRes.right().value());
+ // return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
+ // }
+ // } else {
+ // for (GraphVertex vertex : getRes.left().value()) {
+ // Either<Component, StorageOperationStatus> getServiceRes = getToscaElementByOperation(vertex);
+ // if (getServiceRes.isRight()) {
+ // CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified service {}. Status is {}. ", vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
+ // return Either.right(getServiceRes.right().value());
+ // } else {
+ // servicesAll.add((Service) getToscaElementByOperation(vertex).left().value());
+ // }
+ // }
+ // }
+ // return Either.left(servicesAll);
+ // }
+
+ private Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria(List<Service> servicesAll, Map<GraphPropertyEnum, Object> propertiesToMatch, Map<GraphPropertyEnum, Object> propertiesNotToMatch) {
+ Either<List<GraphVertex>, TitanOperationStatus> getRes = titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+ if (getRes.isRight()) {
+ if (getRes.right().value() != TitanOperationStatus.NOT_FOUND) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch, propertiesNotToMatch, getRes.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getRes.right().value()));
+ }
+ } else {
+ for (GraphVertex vertex : getRes.left().value()) {
+ // Either<Component, StorageOperationStatus> getServiceRes = getToscaElementByOperation(vertex);
+ Either<ToscaElement, StorageOperationStatus> getServiceRes = topologyTemplateOperation.getLightComponent(vertex, ComponentTypeEnum.SERVICE, new ComponentParametersView(true));
+
+ if (getServiceRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified service {}. Status is {}. ", vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
+ return Either.right(getServiceRes.right().value());
+ } else {
+ servicesAll.add(ModelConverter.convertFromToscaElement(getServiceRes.left().value()));
+ }
+ }
+ }
+ return Either.left(servicesAll);
+ }
+
+ public void rollback() {
+ titanDao.rollback();
+ }
+
+ public StorageOperationStatus addDeploymentArtifactsToInstance(String componentId, ComponentInstance componentInstance, Map<String, ArtifactDefinition> finalDeploymentArtifacts) {
+ Map<String, ArtifactDataDefinition> instDeplArtifacts = finalDeploymentArtifacts.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+
+ return nodeTemplateOperation.addDeploymentArtifactsToInstance(componentId, componentInstance.getUniqueId(), instDeplArtifacts);
+ }
+
+ public StorageOperationStatus generateCustomizationUUIDOnInstance(String componentId, String instanceId) {
+ return nodeTemplateOperation.generateCustomizationUUIDOnInstance(componentId, instanceId);
+ }
+
+ public StorageOperationStatus generateCustomizationUUIDOnInstanceGroup(String componentId, String instanceId, List<String> groupInstances) {
+ return nodeTemplateOperation.generateCustomizationUUIDOnInstanceGroup(componentId, instanceId, groupInstances);
+ }
+
+ public Either<PropertyDefinition, StorageOperationStatus> addPropertyToResource(String propertyName, PropertyDefinition newPropertyDefinition, Resource resource) {
+
+ Either<PropertyDefinition, StorageOperationStatus> result = null;
+ Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
+ newPropertyDefinition.setName(propertyName);
+ newPropertyDefinition.setParentUniqueId(resource.getUniqueId());
+ StorageOperationStatus status = getToscaElementOperation(resource).addToscaDataToToscaElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition, JsonPresentationFields.NAME);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", propertyName, resource.getName(), status);
+ result = Either.right(status);
+ }
+ if (result == null) {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreProperties(false);
+ getUpdatedComponentRes = getToscaElement(resource.getUniqueId(), filter);
+ if (getUpdatedComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", resource.getUniqueId(), getUpdatedComponentRes.right().value());
+ result = Either.right(status);
+ }
+ }
+ if (result == null) {
+ PropertyDefinition newProperty = null;
+ List<PropertyDefinition> properties = ((Resource) getUpdatedComponentRes.left().value()).getProperties();
+ if (CollectionUtils.isNotEmpty(properties)) {
+ Optional<PropertyDefinition> newPropertyOptional = properties.stream().filter(p -> p.getName().equals(propertyName)).findAny();
+ if (newPropertyOptional.isPresent()) {
+ newProperty = newPropertyOptional.get();
+ }
+ }
+ if (newProperty == null) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", propertyName, resource.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ } else {
+ result = Either.left(newProperty);
+ }
+ }
+ return result;
+ }
+
+ public StorageOperationStatus deletePropertyOfResource(Resource resource, String propertyName) {
+ return getToscaElementOperation(resource).deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, propertyName, JsonPresentationFields.NAME);
+ }
+
+ public StorageOperationStatus deleteAttributeOfResource(Component component, String attributeName) {
+ return getToscaElementOperation(component).deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, attributeName, JsonPresentationFields.NAME);
+ }
+
+ public StorageOperationStatus deleteInputOfResource(Component resource, String inputName) {
+ return getToscaElementOperation(resource).deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputName, JsonPresentationFields.NAME);
+ }
+
+ public Either<PropertyDefinition, StorageOperationStatus> updatePropertyOfResource(Resource resource, PropertyDefinition newPropertyDefinition) {
+
+ Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
+ Either<PropertyDefinition, StorageOperationStatus> result = null;
+ StorageOperationStatus status = getToscaElementOperation(resource).updateToscaDataOfToscaElement(resource.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition, JsonPresentationFields.NAME);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newPropertyDefinition.getName(), resource.getName(), status);
+ result = Either.right(status);
+ }
+ if (result == null) {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreProperties(false);
+ getUpdatedComponentRes = getToscaElement(resource.getUniqueId(), filter);
+ if (getUpdatedComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", resource.getUniqueId(), getUpdatedComponentRes.right().value());
+ result = Either.right(status);
+ }
+ }
+ if (result == null) {
+ Optional<PropertyDefinition> newProperty = ((Resource) getUpdatedComponentRes.left().value()).getProperties().stream().filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
+ if (newProperty.isPresent()) {
+ result = Either.left(newProperty.get());
+ } else {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newPropertyDefinition.getName(), resource.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ return result;
+ }
+
+ public Either<PropertyDefinition, StorageOperationStatus> addAttributeOfResource(Component component, PropertyDefinition newAttributeDef) {
+
+ Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
+ Either<PropertyDefinition, StorageOperationStatus> result = null;
+ if (newAttributeDef.getUniqueId() == null || newAttributeDef.getUniqueId().isEmpty()) {
+ String attUniqueId = UniqueIdBuilder.buildAttributeUid(component.getUniqueId(), newAttributeDef.getName());
+ newAttributeDef.setUniqueId(attUniqueId);
+ }
+
+ StorageOperationStatus status = getToscaElementOperation(component).addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef, JsonPresentationFields.NAME);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newAttributeDef.getName(), component.getName(), status);
+ result = Either.right(status);
+ }
+ if (result == null) {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreAttributesFrom(false);
+ getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
+ if (getUpdatedComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
+ result = Either.right(status);
+ }
+ }
+ if (result == null) {
+ Optional<PropertyDefinition> newAttribute = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream().filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
+ if (newAttribute.isPresent()) {
+ result = Either.left(newAttribute.get());
+ } else {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ return result;
+ }
+
+ public Either<PropertyDefinition, StorageOperationStatus> updateAttributeOfResource(Component component, PropertyDefinition newAttributeDef) {
+
+ Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
+ Either<PropertyDefinition, StorageOperationStatus> result = null;
+ StorageOperationStatus status = getToscaElementOperation(component).updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef, JsonPresentationFields.NAME);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the resource {}. Status is {}. ", newAttributeDef.getName(), component.getName(), status);
+ result = Either.right(status);
+ }
+ if (result == null) {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreAttributesFrom(false);
+ getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
+ if (getUpdatedComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
+ result = Either.right(status);
+ }
+ }
+ if (result == null) {
+ Optional<PropertyDefinition> newProperty = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream().filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
+ if (newProperty.isPresent()) {
+ result = Either.left(newProperty.get());
+ } else {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the resource {}. Status is {}. ", newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ return result;
+ }
+
+ public Either<InputDefinition, StorageOperationStatus> updateInputOfComponent(Component component, InputDefinition newInputDefinition) {
+
+ Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
+ Either<InputDefinition, StorageOperationStatus> result = null;
+ StorageOperationStatus status = getToscaElementOperation(component).updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition, JsonPresentationFields.NAME);
+ if (status != StorageOperationStatus.OK) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the input {} to the component {}. Status is {}. ", newInputDefinition.getName(), component.getName(), status);
+ result = Either.right(status);
+ }
+ if (result == null) {
+ ComponentParametersView filter = new ComponentParametersView(true);
+ filter.setIgnoreInputs(false);
+ getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
+ if (getUpdatedComponentRes.isRight()) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated resource {}. Status is {}. ", component.getUniqueId(), getUpdatedComponentRes.right().value());
+ result = Either.right(status);
+ }
+ }
+ if (result == null) {
+ Optional<InputDefinition> updatedInput = getUpdatedComponentRes.left().value().getInputs().stream().filter(p -> p.getName().equals(newInputDefinition.getName())).findAny();
+ if (updatedInput.isPresent()) {
+ result = Either.left(updatedInput.get());
+ } else {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently updated inputs {} on the resource {}. Status is {}. ", newInputDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * method - ename the group instances after referenced container name renamed
+ * flow - VF rename -(triggers)-> Group rename
+ *
+ * @param containerComponent - container such as service
+ * @param componentInstance - context component
+ * @param componentInstanceId - id
+ *
+ * @return - successfull/failed status
+ * **/
+ public Either<StorageOperationStatus,StorageOperationStatus> cleanAndAddGroupInstancesToComponentInstance(Component containerComponent, ComponentInstance componentInstance, String componentInstanceId){
+ String uniqueId = componentInstance.getUniqueId();
+ StorageOperationStatus status = nodeTemplateOperation.deleteToscaDataDeepElementsBlockToToscaElement( containerComponent.getUniqueId(), EdgeLabelEnum.INST_GROUPS, VertexTypeEnum.INST_GROUPS, uniqueId );
+ if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete group instances for container {}. error {] ", componentInstanceId, status);
+ return Either.right(status);
+ }
+ status = addGroupInstancesToComponentInstance( containerComponent , componentInstance, componentInstance.getGroupInstances() );
+ if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
+ CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add group instances for container {}. error {] ", componentInstanceId, status);
+ return Either.right(status);
+ }
+ return Either.left(status);
+ }
+
+ public StorageOperationStatus addGroupInstancesToComponentInstance(Component containerComponent, ComponentInstance componentInstance, List<GroupDefinition> groups, Map<String, List<ArtifactDefinition>> groupInstancesArtifacts) {
+ return nodeTemplateOperation.addGroupInstancesToComponentInstance(containerComponent, componentInstance, groups, groupInstancesArtifacts);
+ }
+
+ public Either<List<GroupDefinition>, StorageOperationStatus> updateGroupsOnComponent(Component component, ComponentTypeEnum componentType, List<GroupDataDefinition> updatedGroups) {
+ return groupsOperation.updateGroups(component, componentType, updatedGroups);
+ }
+
+ public Either<List<GroupInstance>, StorageOperationStatus> updateGroupInstancesOnComponent(Component component, ComponentTypeEnum componentType, String instanceId, List<GroupInstance> updatedGroupInstances) {
+ return groupsOperation.updateGroupInstances(component, componentType, instanceId, updatedGroupInstances);
+ }
+
+ public StorageOperationStatus addGroupInstancesToComponentInstance(Component containerComponent, ComponentInstance componentInstance, List<GroupInstance> groupInstances) {
+ return nodeTemplateOperation.addGroupInstancesToComponentInstance(containerComponent, componentInstance, groupInstances);
+ }
+
+ public StorageOperationStatus addDeploymentArtifactsToComponentInstance(Component containerComponent, ComponentInstance componentInstance, Map<String, ArtifactDefinition> deploymentArtifacts) {
+ return nodeTemplateOperation.addDeploymentArtifactsToComponentInstance(containerComponent, componentInstance, deploymentArtifacts);
+ }
+
+ public StorageOperationStatus updateComponentInstanceProperty(Component containerComponent, String componentInstanceId, ComponentInstanceProperty property) {
+ return nodeTemplateOperation.updateComponentInstanceProperty(containerComponent, componentInstanceId, property);
+ }
+
+ public StorageOperationStatus addComponentInstanceProperty(Component containerComponent, String componentInstanceId, ComponentInstanceProperty property) {
+ return nodeTemplateOperation.addComponentInstanceProperty(containerComponent, componentInstanceId, property);
+ }
+
+ public StorageOperationStatus updateComponentInstanceInput(Component containerComponent, String componentInstanceId, ComponentInstanceInput property) {
+ return nodeTemplateOperation.updateComponentInstanceInput(containerComponent, componentInstanceId, property);
+ }
+
+ public StorageOperationStatus addComponentInstanceInput(Component containerComponent, String componentInstanceId, ComponentInstanceInput property) {
+ return nodeTemplateOperation.addComponentInstanceInput(containerComponent, componentInstanceId, property);
+ }
+
+ public void setNodeTypeOperation(NodeTypeOperation nodeTypeOperation) {
+ this.nodeTypeOperation = nodeTypeOperation;
+ }
+
+ public void setTopologyTemplateOperation(TopologyTemplateOperation topologyTemplateOperation) {
+ this.topologyTemplateOperation = topologyTemplateOperation;
+ }
+
+ public StorageOperationStatus deleteComponentInstanceInputsFromTopologyTemplate(Component containerComponent, ComponentTypeEnum componentType, List<InputDefinition> inputsToDelete) {
+ return topologyTemplateOperation.deleteToscaDataElements(containerComponent.getUniqueId(), EdgeLabelEnum.INPUTS, inputsToDelete.stream().map(i -> i.getName()).collect(Collectors.toList()));
}
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/utils/ModelConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/utils/ModelConverter.java
index 0ac5a8dbe4..03a5f41d55 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/utils/ModelConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/utils/ModelConverter.java
@@ -117,8 +117,8 @@ public class ModelConverter {
return vertexType;
}
- private static boolean isAtomicComponent(ResourceTypeEnum resourceType) {
- if (resourceType == null || resourceType == ResourceTypeEnum.VF)
+ public static boolean isAtomicComponent(ResourceTypeEnum resourceType) {
+ if (resourceType == null || resourceType == ResourceTypeEnum.VF || resourceType == ResourceTypeEnum.PNF || resourceType == ResourceTypeEnum.CVFC)
return false;
return true;
}
@@ -302,7 +302,7 @@ public class ModelConverter {
relationshipPair.setId(relation.getUniqueId());
relationshipPair.setCapabilityOwnerId(relation.getCapabilityOwnerId());
- relationshipPair.setCapabilityUid(relation.getCapabiltyId());
+ relationshipPair.setCapabilityUid(relation.getCapabilityId());
relationshipPair.setRequirementOwnerId(relation.getRequirementOwnerId());
relationshipPair.setRequirementUid(relation.getRequirementId());
relationshipPair.setRequirement(relation.getRequirement());
@@ -326,7 +326,7 @@ public class ModelConverter {
requirementCapabilityRelDef.setToId(relation.getToNode());
requirementCapabilityRelDef.setUniqueId(p.getId());
requirementCapabilityRelDef.setCapabilityOwnerId(p.getCapabilityOwnerId());
- requirementCapabilityRelDef.setCapabiltyId(p.getCapabilityUid());
+ requirementCapabilityRelDef.setCapabilityId(p.getCapabilityUid());
requirementCapabilityRelDef.setRequirementOwnerId(p.getRequirementOwnerId());
requirementCapabilityRelDef.setRequirementId(p.getRequirementUid());
requirementCapabilityRelDef.setRequirement(p.getRequirement());
@@ -518,6 +518,24 @@ public class ModelConverter {
resource.setToscaResourceName((String) toscaElement.getMetadataValue(JsonPresentationFields.TOSCA_RESOURCE_NAME));
resource.setVendorName((String) toscaElement.getMetadataValue(JsonPresentationFields.VENDOR_NAME));
resource.setVendorRelease((String) toscaElement.getMetadataValue(JsonPresentationFields.VENDOR_RELEASE));
+ // field isn't mandatory , but shouldn't be null(should be an empty string instead)
+ if (((String) toscaElement.getMetadataValue(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER)) != null){
+ resource.setResourceVendorModelNumber(((String) toscaElement.getMetadataValue(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER)));
+ } else {
+ resource.setResourceVendorModelNumber("");
+ }
+ } else if (component.getComponentType() == ComponentTypeEnum.SERVICE) {
+ Service service = (Service) component;
+ if (((String) toscaElement.getMetadataValue(JsonPresentationFields.SERVICE_TYPE)) != null){
+ service.setServiceType(((String) toscaElement.getMetadataValue(JsonPresentationFields.SERVICE_TYPE)));
+ } else {
+ service.setServiceType("");
+ }
+ if (((String) toscaElement.getMetadataValue(JsonPresentationFields.SERVICE_ROLE)) != null){
+ service.setServiceRole(((String) toscaElement.getMetadataValue(JsonPresentationFields.SERVICE_ROLE)));
+ } else {
+ service.setServiceRole("");
+ }
}
component.setConformanceLevel((String) toscaElement.getMetadataValue(JsonPresentationFields.CONFORMANCE_LEVEL));
component.setIcon((String) toscaElement.getMetadataValue(JsonPresentationFields.ICON));
@@ -945,6 +963,24 @@ public class ModelConverter {
toscaElement.setMetadataValue(JsonPresentationFields.TOSCA_RESOURCE_NAME, ((Resource) component).getToscaResourceName());
toscaElement.setMetadataValue(JsonPresentationFields.VENDOR_NAME, ((Resource) component).getVendorName());
toscaElement.setMetadataValue(JsonPresentationFields.VENDOR_RELEASE, ((Resource) component).getVendorRelease());
+ // field isn't mandatory , but shouldn't be null(should be an empty string instead)
+ if (((Resource) component).getResourceVendorModelNumber() != null){
+ toscaElement.setMetadataValue(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER, ((Resource) component).getResourceVendorModelNumber());
+ } else {
+ toscaElement.setMetadataValue(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER, "");
+ }
+ } else if (component.getComponentType() == ComponentTypeEnum.SERVICE) {
+ // field isn't mandatory , but shouldn't be null(should be an empty string instead)
+ if (((Service) component).getServiceType() != null){
+ toscaElement.setMetadataValue(JsonPresentationFields.SERVICE_TYPE, ((Service) component).getServiceType());
+ } else {
+ toscaElement.setMetadataValue(JsonPresentationFields.SERVICE_TYPE, "");
+ }
+ if (((Service) component).getServiceRole() != null){
+ toscaElement.setMetadataValue(JsonPresentationFields.SERVICE_ROLE, ((Service) component).getServiceRole());
+ } else {
+ toscaElement.setMetadataValue(JsonPresentationFields.SERVICE_ROLE, "");
+ }
}
toscaElement.setMetadataValue(JsonPresentationFields.CONFORMANCE_LEVEL, component.getConformanceLevel());
toscaElement.setMetadataValue(JsonPresentationFields.IS_DELETED, component.getIsDeleted());
@@ -955,7 +991,7 @@ public class ModelConverter {
toscaElement.setMetadataValue(JsonPresentationFields.CONTACT_ID, component.getContactId());
}
- private static boolean isAtomicComponent(Component component) {
+ public static boolean isAtomicComponent(Component component) {
ComponentTypeEnum componentType = component.getComponentType();
if (!componentType.equals(ComponentTypeEnum.RESOURCE)) {
return false;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
index 386864a8b0..8b44229df1 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
@@ -43,8 +43,6 @@ public interface IInputsOperation {
Either<List<InputDefinition>, TitanOperationStatus> addInputsToGraph(String componentId, NodeTypeEnum nodeType, Map<String, InputDefinition> inputs, Map<String, DataTypeDefinition> dataTypes);
- Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(String resourceId, NodeTypeEnum nodeType, ComponentInstInputsMap componentInsInputs, Map<String, DataTypeDefinition> dataTypes);
-
TitanOperationStatus findNodeNonInheretedInputs(String uniqueId, List<InputDefinition> inputs);
Either<List<InputDefinition>, StorageOperationStatus> getInputsOfComponent(String compId, String fromName, int amount);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
index f08c52e0fa..51f21ce5b8 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
@@ -24,10 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.openecomp.sdc.be.model.DistributionStatusEnum;
-import org.openecomp.sdc.be.model.LifecycleStateEnum;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.*;
import fj.data.Either;
@@ -41,6 +38,8 @@ public interface IServiceOperation extends IComponentOperation {
public Either<Service, StorageOperationStatus> getService(String uniqueId, boolean inTransaction);
+ public Either<Service, StorageOperationStatus> getService(String uniqueId, ComponentParametersView componentParametersView, boolean inTransaction);
+
public Either<Service, StorageOperationStatus> deleteService(String uniqueId);
public Either<Service, StorageOperationStatus> deleteService(String uniqueId, boolean inTransaction);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
index 0f36f09ca8..f0e4056663 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
@@ -21,11 +21,11 @@
package org.openecomp.sdc.be.model.operations.impl;
import java.lang.reflect.Type;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -39,7 +39,6 @@ import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.IComplexDefaultValue;
import org.openecomp.sdc.be.model.PropertyConstraint;
@@ -50,8 +49,6 @@ import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
import org.openecomp.sdc.be.model.tosca.converters.PropertyValueConverter;
import org.openecomp.sdc.be.model.tosca.validators.DataTypeValidatorConverter;
import org.openecomp.sdc.be.model.tosca.validators.PropertyTypeValidator;
-import org.openecomp.sdc.be.resources.data.CapabilityInstData;
-import org.openecomp.sdc.be.resources.data.PropertyValueData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
import org.slf4j.Logger;
@@ -284,27 +281,15 @@ public abstract class AbstractOperation {
PropertyTypeValidator validator = type.getValidator();
- boolean isValid = validator.isValid(value, innerType, dataTypes);
- if (true == isValid) {
- return true;
- } else {
- return false;
- }
-
+ return validator.isValid(value, innerType, dataTypes);
}
public boolean isEmptyValue(String value) {
- if (value == null) {
- return true;
- }
- return false;
+ return value == null;
}
public boolean isNullParam(String value) {
- if (value == null) {
- return true;
- }
- return false;
+ return value == null;
}
protected StorageOperationStatus validateAndUpdateComplexValue(IComplexDefaultValue propertyDefinition, String propertyType,
@@ -339,14 +324,10 @@ public abstract class AbstractOperation {
if (jsonElement == null || jsonElement.isJsonNull()) {
value = EMPTY_VALUE;
} else {
- if (jsonElement.toString().isEmpty()) {
- value = "";
- } else {
- value = jsonElement.toString();
- }
+ value = jsonElement.toString();
}
- return value;
+ return value;
}
protected Either<String, TitanOperationStatus> getInnerType(ToscaPropertyType type, Supplier<SchemaDefinition> schemeGen) {
@@ -376,38 +357,25 @@ public abstract class AbstractOperation {
*/
public List<String> convertConstraintsToString(List<PropertyConstraint> constraints) {
- List<String> result = null;
-
- if (constraints != null && false == constraints.isEmpty()) {
- result = new ArrayList<String>();
- for (PropertyConstraint propertyConstraint : constraints) {
- String constraint = gson.toJson(propertyConstraint);
- result.add(constraint);
- }
-
+ if (constraints == null || constraints.isEmpty()) {
+ return null;
}
- return result;
+ return constraints.stream().map(gson::toJson).collect(Collectors.toList());
}
public List<PropertyConstraint> convertConstraints(List<String> constraints) {
- if (constraints == null || constraints.size() == 0) {
+ if (constraints == null || constraints.isEmpty()) {
return null;
}
- List<PropertyConstraint> list = new ArrayList<PropertyConstraint>();
Type constraintType = new TypeToken<PropertyConstraint>() {
}.getType();
Gson gson = new GsonBuilder().registerTypeAdapter(constraintType, new PropertyConstraintDeserialiser()).create();
- for (String constraintJson : constraints) {
- PropertyConstraint propertyConstraint = gson.fromJson(constraintJson, constraintType);
- list.add(propertyConstraint);
- }
-
- return list;
+ return constraints.stream().map(c -> gson.fromJson(c, PropertyConstraint.class)).collect(Collectors.toList());
}
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
index 43e4d0683b..cb9adeda3f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
@@ -710,6 +710,13 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
case VL:
componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.VL);
break;
+ case CVFC:
+ componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.CVFC);
+ break;
+ case PNF:
+ componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.PNF);
+ break;
+
}
break;
default:
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
index e06649bf77..9d9814efcb 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
@@ -1963,6 +1963,7 @@ public abstract class ComponentOperation {
case "service":
properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VFC.name()));
properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VFCMT.name()));
+ properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.CVFC.name()));
// properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VL.name()));
// hasNotPpropertiesToMatch.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(),
// ResourceTypeEnum.VFC.name());
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
index 2fcdf695be..413ce4c2fa 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
@@ -25,7 +25,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.function.Function;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -155,9 +154,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
@Override
public Either<GroupTypeDefinition, StorageOperationStatus> getGroupType(String uniqueId, boolean inTransaction) {
- Function<String, Either<GroupTypeDefinition, TitanOperationStatus>> groupTypeGetter = uId -> getGroupTypeByUid(uId);
- return getElementType(groupTypeGetter, uniqueId, inTransaction);
-
+ return getElementType(this::getGroupTypeByUid, uniqueId, inTransaction);
}
@Override
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
index dba4ff9b75..d3db95df65 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
@@ -1210,121 +1210,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
}
- public Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(String resourceId, NodeTypeEnum nodeType, ComponentInstInputsMap componentInsInputs, Map<String, DataTypeDefinition> dataTypes) {
- List<InputDefinition> resList = new ArrayList<InputDefinition>();
- Map<String, List<InputDefinition>> newInputsMap = componentInsInputs.getComponentInstanceInputsMap();
- if (newInputsMap != null && !newInputsMap.isEmpty()) {
- for (Entry<String, List<InputDefinition>> entry : newInputsMap.entrySet()) {
- String compInstId = entry.getKey();
- Either<TitanVertex, TitanOperationStatus> ciVertexEither = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), compInstId);
- if (ciVertexEither.isRight()) {
- log.debug("Failed to fetch vertex of resource instance for id {} error {}", compInstId, ciVertexEither.right().value());
- return Either.right( DaoStatusConverter.convertTitanStatusToStorageStatus(ciVertexEither.right().value()));
- }
- TitanVertex ciVertex = ciVertexEither.left().value();
-
-
- //String originType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.LABEL.getProperty());
- String compInstname = (String) titanGenericDao.getProperty(ciVertex, GraphPropertiesDictionary.NORMALIZED_NAME.getProperty());
-
- List<InputDefinition> inputs = entry.getValue();
-
- if (inputs != null && !inputs.isEmpty()) {
- for (InputDefinition input : inputs) {
-
-
- Either<Integer, StorageOperationStatus> counterRes = componentInstanceOperation.increaseAndGetResourceInstanceSpecificCounter(compInstId, GraphPropertiesDictionary.INPUT_COUNTER, true);
- if (counterRes.isRight()) {
- log.debug("increaseAndGetResourceInputCounter failed resource instance {}", compInstId);
- StorageOperationStatus status = counterRes.right().value();
- return Either.right(status);
- }
-
- Either<InputDefinition, TitanOperationStatus> oldInputEither = getInputFromGraph(input.getUniqueId(), true, true);
- if (oldInputEither.isRight()) {
- log.error("Failed to get input {} ", input.getUniqueId());
-
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(oldInputEither.right().value()));
- }
-
- InputDefinition oldInput = oldInputEither.left().value();
- String serviceInputName = compInstname + "_" + input.getName();
- input.setName(serviceInputName);
-
- JSONObject jobject = new JSONObject();
- jobject.put(GET_INPUT, input.getName());
-
- ComponentInstanceInput inputValue = new ComponentInstanceInput(oldInput, jobject.toJSONString(), null);
- Integer index = counterRes.left().value();
-
- Either<ComponentInstanceInput, StorageOperationStatus> eitherStatus = componentInstanceOperation.addInputValueToResourceInstance(inputValue, compInstId, index, true);
-
- if (eitherStatus.isRight()) {
- log.error("Failed to add input value {} to resource instance {} in Graph. status is {}", inputValue, compInstId, eitherStatus.right().value().name());
-
- return Either.right(eitherStatus.right().value());
- }
- ComponentInstanceInput inputValueData = eitherStatus.left().value();
-
- input.setSchema(oldInputEither.left().value().getSchema());
- input.setDefaultValue(oldInput.getDefaultValue());
- input.setConstraints(oldInput.getConstraints());
- input.setDescription(oldInput.getDescription());
- input.setHidden(oldInput.isHidden());
- input.setImmutable(oldInput.isImmutable());
- input.setDefinition(oldInput.isDefinition());
- input.setRequired(oldInput.isRequired());
-
- StorageOperationStatus validateAndUpdateProperty = validateAndUpdateProperty(input, dataTypes);
- if (validateAndUpdateProperty != StorageOperationStatus.OK) {
- log.error("Property {} is invalid. Status is {}", input, validateAndUpdateProperty);
- return Either.right(validateAndUpdateProperty);
- }
-
- Either<InputsData, TitanOperationStatus> addPropertyToGraph = addInputToGraph(serviceInputName, input, resourceId, nodeType);
- if (addPropertyToGraph.isRight()) {
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addPropertyToGraph.right().value()));
- }
- InputDefinition createdInputyDefinition = convertInputDataToInputDefinition(addPropertyToGraph.left().value());
- createdInputyDefinition.setName(serviceInputName);
- createdInputyDefinition.setParentUniqueId(resourceId);
-
- Map<String, Object> props = new HashMap<String, Object>();
- props.put(GraphEdgePropertiesDictionary.NAME.getProperty(), createdInputyDefinition.getName());
- props.put(GraphEdgePropertiesDictionary.OWNER_ID.getProperty(), compInstId);
-
- GraphNode propertyData = new UniqueIdData(NodeTypeEnum.InputValue, inputValueData.getValueUniqueUid());
-
- Either<GraphRelation, TitanOperationStatus> addPropRefResult = titanGenericDao.createRelation(addPropertyToGraph.left().value(), propertyData, GraphEdgeLabels.GET_INPUT, props);
-
- if (addPropRefResult.isRight()) {
- TitanOperationStatus status = addPropRefResult.right().value();
- String description = "Failed to associate input " + addPropertyToGraph.left().value().getUniqueId() + " to input value " + inputValueData.getUniqueId() + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ASSOCIATING_INPUT_TO_PROP, description, ErrorSeverity.ERROR);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- }
-
- resList.add(createdInputyDefinition);
-
- }
- }
-
- }
- }
- Map<String, List<ComponentInstancePropInput>> newInputsPropsMap = componentInsInputs.getComponentInstanceProperties();
- if (newInputsPropsMap != null && !newInputsPropsMap.isEmpty()) {
- Either<List<InputDefinition>, StorageOperationStatus> result = createInputsFromProperty(resourceId, nodeType, dataTypes, resList, newInputsPropsMap);
-
- if (result.isRight()) {
- log.debug("Failed to create inputs of resource for id {} error {}", resourceId, result.right().value());
- return result;
- }
- resList = result.left().value();
-
- }
- return Either.left(resList);
- }
private Either<List<InputDefinition>, StorageOperationStatus> createInputsFromProperty(String resourceId, NodeTypeEnum nodeType, Map<String, DataTypeDefinition> dataTypes, List<InputDefinition> resList, Map<String, List<ComponentInstancePropInput>> newInputsPropsMap) {
for (Entry<String, List<ComponentInstancePropInput>> entry : newInputsPropsMap.entrySet()) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
index 796fc8dd34..70efe12b86 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
@@ -23,7 +23,6 @@ package org.openecomp.sdc.be.model.operations.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.function.Function;
import javax.annotation.Resource;
@@ -167,9 +166,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
@Override
public Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyType(String uniqueId, boolean inTransaction) {
- Function<String, Either<PolicyTypeDefinition, TitanOperationStatus>> policyTypeGetter = uId -> getPolicyTypeByUid(uId);
- return getElementType(policyTypeGetter, uniqueId, inTransaction);
-
+ return getElementType(this::getPolicyTypeByUid, uniqueId, inTransaction);
}
private Either<PolicyTypeDefinition, TitanOperationStatus> getPolicyTypeByUid(String uniqueId) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
index c40c59facf..0673033546 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
@@ -188,6 +188,9 @@ public class ToscaMapValueConverter extends ToscaValueBaseConverter implements T
private Object convertDataTypeToToscaMap(String innerType, Map<String, DataTypeDefinition> dataTypes,
final boolean isScalarF, JsonElement entryValue) {
Object convertedValue;
+ if (entryValue.isJsonPrimitive()) {
+ return json2JavaPrimitive(entryValue.getAsJsonPrimitive());
+ }
JsonObject asJsonObjectIn = entryValue.getAsJsonObject();
DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatStringValidator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatStringValidator.java
index 0e7b7f6648..8c63090e03 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatStringValidator.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/HeatStringValidator.java
@@ -44,8 +44,8 @@ public class HeatStringValidator implements PropertyTypeValidator {
return true;
}
- String coverted = ValidationUtils.removeNoneUtf8Chars(value);
- return ValidationUtils.validateIsEnglish(coverted);
+ String converted = ValidationUtils.removeNoneUtf8Chars(value);
+ return ValidationUtils.validateIsEnglish(converted);
}
@Override
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/KeyValidator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/KeyValidator.java
index 4b11e26d05..73b5e939ef 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/KeyValidator.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/KeyValidator.java
@@ -49,8 +49,8 @@ public class KeyValidator implements PropertyTypeValidator {
if (value.length() > STRING_MAXIMUM_LENGTH) {
return false;
}
- String coverted = ValidationUtils.removeNoneUtf8Chars(value);
- return ValidationUtils.validateIsEnglish(coverted);
+ String converted = ValidationUtils.removeNoneUtf8Chars(value);
+ return ValidationUtils.validateIsEnglish(converted);
}
@Override
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/StringValidator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/StringValidator.java
index 750941cc0b..a096990ad7 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/StringValidator.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/validators/StringValidator.java
@@ -68,8 +68,8 @@ public class StringValidator implements PropertyTypeValidator {
log.debug("parameter String length {} is higher than configured({})", value.length(), STRING_MAXIMUM_LENGTH);
return false;
}
- String coverted = ValidationUtils.removeNoneUtf8Chars(value);
- boolean isValid = ValidationUtils.validateIsAscii(coverted);
+ String converted = ValidationUtils.removeNoneUtf8Chars(value);
+ boolean isValid = ValidationUtils.validateIsAscii(converted);
if (false == isValid && log.isDebugEnabled()) {
log.debug("parameter String value {} is not an ascii string.", value.substring(0, Math.min(value.length(), 20)));
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiResourceMetadata.java b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiResourceMetadata.java
index a2695f8c79..68abb4d749 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiResourceMetadata.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiResourceMetadata.java
@@ -29,6 +29,7 @@ public class UiResourceMetadata extends UiComponentMetadata {
private String vendorName;
private String vendorRelease;
+ private String resourceVendorModelNumber;
private ResourceTypeEnum resourceType = ResourceTypeEnum.VFC;
private Boolean isAbstract;
private String cost;
@@ -41,6 +42,7 @@ public class UiResourceMetadata extends UiComponentMetadata {
super(categories, metadata);
this.vendorName = metadata.getVendorName();
this.vendorRelease = metadata.getVendorRelease();
+ this.resourceVendorModelNumber = metadata.getResourceVendorModelNumber();
this.resourceType = metadata.getResourceType();
this.cost = metadata.getCost();
this.licenseType = metadata.getLicenseType();
@@ -75,6 +77,14 @@ public class UiResourceMetadata extends UiComponentMetadata {
public void setVendorRelease(String vendorRelease) {
this.vendorRelease = vendorRelease;
}
+
+ public String getResourceVendorModelNumber() {
+ return resourceVendorModelNumber;
+ }
+
+ public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
+ this.resourceVendorModelNumber = resourceVendorModelNumber;
+ }
public ResourceTypeEnum getResourceType() {
return resourceType;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiServiceMetadata.java b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiServiceMetadata.java
index 99d586afd2..9a79a26881 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiServiceMetadata.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/ui/model/UiServiceMetadata.java
@@ -30,12 +30,16 @@ public class UiServiceMetadata extends UiComponentMetadata {
private String distributionStatus;
private Boolean ecompGeneratedNaming;
private String namingPolicy;
+ private String serviceType;
+ private String serviceRole;
public UiServiceMetadata(List<CategoryDefinition> categories, ServiceMetadataDataDefinition metadata) {
super(categories, metadata);
this.distributionStatus = metadata.getDistributionStatus();
this.ecompGeneratedNaming = metadata.isEcompGeneratedNaming();
this.namingPolicy = metadata.getNamingPolicy();
+ this.serviceType = metadata.getServiceType();
+ this.serviceRole = metadata.getServiceRole();
}
public String getDistributionStatus() {
@@ -61,5 +65,21 @@ public class UiServiceMetadata extends UiComponentMetadata {
public void setNamingPolicy(String namingPolicy) {
this.namingPolicy = namingPolicy;
}
+
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ public void setServiceType(String serviceType) {
+ this.serviceType = serviceType;
+ }
+
+ public String getServiceRole() {
+ return serviceRole;
+ }
+
+ public void setServiceRole(String serviceRole) {
+ this.serviceRole = serviceRole;
+ }
}
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperationsTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperationsTest.java
new file mode 100644
index 0000000000..3f80806292
--- /dev/null
+++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ArtifactsOperationsTest.java
@@ -0,0 +1,85 @@
+package org.openecomp.sdc.be.model.jsontitan.operations;
+
+import fj.data.Either;
+import org.junit.Test;
+import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.*;
+
+public class ArtifactsOperationsTest {
+
+ private static final String SERVICE_ID = "serviceId";
+ private static final String INSTANCE_ID = "instanceId";
+ private ArtifactsOperations testInstance = mock(ArtifactsOperations.class, CALLS_REAL_METHODS);
+
+ @Test
+ public void getInstanceArtifacts_collectAllInstanceArtifacts() throws Exception {
+ Map<String, ToscaDataDefinition> instanceArtifacts = Collections.singletonMap(INSTANCE_ID, getArtifactsByInstance("name1"));
+
+ Map<String, ToscaDataDefinition> instanceDeploymentArtifacts = new HashMap<>();
+ instanceDeploymentArtifacts.put(INSTANCE_ID, getArtifactsByInstance("name2", "name3"));
+ instanceDeploymentArtifacts.put("instanceId2", getArtifactsByInstance("name4"));
+
+ doReturn(Either.left(instanceArtifacts)).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+ doReturn(Either.left(instanceDeploymentArtifacts)).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> allInstArtifacts = testInstance.getAllInstanceArtifacts(SERVICE_ID, INSTANCE_ID);
+
+ assertTrue(allInstArtifacts.isLeft());
+ assertEquals(allInstArtifacts.left().value().size(), 3);
+ assertTrue(allInstArtifacts.left().value().containsKey("name1"));
+ assertTrue(allInstArtifacts.left().value().containsKey("name2"));
+ assertTrue(allInstArtifacts.left().value().containsKey("name3"));
+ assertFalse(allInstArtifacts.left().value().containsKey("name4"));//this key is of different instance
+ }
+
+ @Test
+ public void getInstanceArtifacts_noArtifactsForInstance() throws Exception {
+ Map<String, ToscaDataDefinition> instanceArtifacts = Collections.singletonMap(INSTANCE_ID, getArtifactsByInstance("name1"));
+
+ doReturn(Either.left(instanceArtifacts)).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+ doReturn(Either.left(new HashMap<>())).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> allInstArtifacts = testInstance.getAllInstanceArtifacts(SERVICE_ID, "someOtherInstance");
+
+ assertTrue(allInstArtifacts.isLeft());
+ assertTrue(allInstArtifacts.left().value().isEmpty());
+ }
+
+ @Test
+ public void getInstanceArtifacts_errorGettingInstanceArtifacts() throws Exception {
+ doReturn(Either.right(TitanOperationStatus.GENERAL_ERROR)).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> allInstArtifacts = testInstance.getAllInstanceArtifacts(SERVICE_ID, INSTANCE_ID);
+ verify(testInstance, times(0)).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+ assertTrue(allInstArtifacts.isRight());
+ }
+
+ @Test
+ public void getAllInstanceArtifacts_errorGettingDeploymentArtifacts() throws Exception {
+ doReturn(Either.left(new HashMap<>())).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+ doReturn(Either.right(TitanOperationStatus.GENERAL_ERROR)).when(testInstance).getDataFromGraph(SERVICE_ID, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> allInstArtifacts = testInstance.getAllInstanceArtifacts(SERVICE_ID, INSTANCE_ID);
+ assertTrue(allInstArtifacts.isRight());
+ }
+
+ private ToscaDataDefinition getArtifactsByInstance(String ... artifactsNames) {
+ MapArtifactDataDefinition artifactsByInstance = new MapArtifactDataDefinition();
+ Map<String, ArtifactDataDefinition> artifactsByName = new HashMap<>();
+ for (String artifactName : artifactsNames) {
+ artifactsByName.put(artifactName, new ArtifactDataDefinition());
+ }
+ artifactsByInstance.setMapToscaDataDefinition(artifactsByName);
+ return artifactsByInstance;
+ }
+}
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTest.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTest.java
new file mode 100644
index 0000000000..339023f9a4
--- /dev/null
+++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTest.java
@@ -0,0 +1,344 @@
+package org.openecomp.sdc.be.model.jsontitan.operations;
+
+import fj.data.Either;
+import org.apache.cassandra.cql3.CQL3Type;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+import org.junit.runner.RunWith;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.ModelTestBase;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.utils.GraphTestUtils;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.util.*;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Created by chaya on 6/12/2017.
+ */
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("classpath:application-context-test.xml")
+public class ToscaElementOperationTest extends ModelTestBase{
+
+ private List<GraphVertex> allVertices = new ArrayList<>();
+ private boolean isInitialized = false;
+
+ @javax.annotation.Resource
+ ToscaElementOperationTestImpl toscaElementOperation;
+
+ @javax.annotation.Resource
+ TitanDao titanDao;
+
+ @BeforeClass
+ public static void initTest(){
+ ModelTestBase.init();
+
+ }
+
+ @Rule
+ public TestName testName = new TestName();
+
+ @Before
+ public void beforeTest() {
+ if (!isInitialized) {
+ GraphTestUtils.clearGraph(titanDao);
+ //exportGraphMl(titanDao.getGraph().left().value(),"");
+ initGraphForTest();
+ isInitialized = true;
+ }
+ }
+
+ @Test
+ public void testGetAllHighestResourcesNoFilter() {
+
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, null, true);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ }
+ }, null);
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ @Test
+ public void testGetAllResourcesCertifiedNoFilter() {
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, null, false);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ }, null);
+ highestResourcesExpectedCount += calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ });
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ @Test
+ public void testGetHighestResourcesExclude() {
+
+ // exclude VFCMT
+ List<ResourceTypeEnum> excludeList = Arrays.asList(ResourceTypeEnum.VFCMT);
+ assertTrue(genericTestGetResourcesWithExcludeList(excludeList));
+
+ // exclude CP & VL
+ excludeList = Arrays.asList(ResourceTypeEnum.VL, ResourceTypeEnum.CP);
+ assertTrue(genericTestGetResourcesWithExcludeList(excludeList));
+
+ // exclude CP & VL & VF & VFC
+ excludeList = Arrays.asList(ResourceTypeEnum.VL, ResourceTypeEnum.CP, ResourceTypeEnum.VF, ResourceTypeEnum.VFC);
+ assertTrue(genericTestGetResourcesWithExcludeList(excludeList));
+ }
+
+ @Test
+ public void testGetAllResourcesCertifiedExclude() {
+ // exclude VFCMT
+ List<ResourceTypeEnum> excludeList = Arrays.asList(ResourceTypeEnum.VFCMT);
+ assertTrue(genericTestGetCertifiedResourcesWithExcludeList(excludeList));
+
+ // exclude CP & VL
+ excludeList = Arrays.asList(ResourceTypeEnum.VL, ResourceTypeEnum.CP);
+ assertTrue(genericTestGetCertifiedResourcesWithExcludeList(excludeList));
+
+ // exclude CP & VL & VF & VFC
+ excludeList = Arrays.asList(ResourceTypeEnum.VL, ResourceTypeEnum.CP, ResourceTypeEnum.VF, ResourceTypeEnum.VFC);
+ assertTrue(genericTestGetCertifiedResourcesWithExcludeList(excludeList));
+ }
+
+ @Test
+ public void testGetAllHighestServicesNoFilter() {
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, null, true);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ }
+ }, null);
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ @Test
+ public void testGetAllCertifiedServicesNoFilter() {
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, null, false);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ }, null);
+ highestResourcesExpectedCount += calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ });
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ @Test
+ public void testGetServicesExcludeList() {
+ List<ResourceTypeEnum> excludeList = Arrays.asList(ResourceTypeEnum.VF, ResourceTypeEnum.VFCMT);
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, excludeList, true);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ }
+ }, null);
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ @Test
+ public void testGetCertifiedServicesExcludeList() {
+ List<ResourceTypeEnum> excludeList = Arrays.asList(ResourceTypeEnum.VL);
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.SERVICE, excludeList, false);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ }, null);
+ highestResourcesExpectedCount += calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ });
+ assertEquals(highestResources.stream().count(), highestResourcesExpectedCount);
+ }
+
+ private boolean genericTestGetResourcesWithExcludeList(List<ResourceTypeEnum> excludeList) {
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE,excludeList, true);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.RESOURCE_TYPE, excludeList);
+ }
+ });
+ return highestResources.stream().count() == (highestResourcesExpectedCount);
+ }
+
+ private boolean genericTestGetCertifiedResourcesWithExcludeList(List<ResourceTypeEnum> excludeList) {
+ Either<List<ToscaElement>, StorageOperationStatus> highestResourcesRes = toscaElementOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, excludeList, false);
+ assertTrue(highestResourcesRes.isLeft());
+ List<ToscaElement> highestResources = highestResourcesRes.left().value();
+ // calculate expected count value
+ long highestResourcesExpectedCount = calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.RESOURCE_TYPE, excludeList);
+ }
+ });
+ highestResourcesExpectedCount += calculateCount(new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ }, new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.RESOURCE_TYPE, excludeList);
+ }
+ });
+ return highestResources.stream().count() == highestResourcesExpectedCount;
+ }
+
+ private void initGraphForTest() {
+ Map<GraphPropertyEnum, Object> highstVerticesProps = new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ }
+ };
+
+ Map<GraphPropertyEnum, Object> certifiedVerticesProps = new HashMap<GraphPropertyEnum, Object>() {
+ {
+ put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
+ put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+ }
+ };
+
+ // add vertices with higestVersion = true
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, highstVerticesProps, ResourceTypeEnum.VF));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, highstVerticesProps, ResourceTypeEnum.VFC));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, highstVerticesProps, ResourceTypeEnum.VFCMT));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, highstVerticesProps, ResourceTypeEnum.VL));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, highstVerticesProps, ResourceTypeEnum.CP));
+ allVertices.add(GraphTestUtils.createServiceVertex(titanDao, highstVerticesProps));
+
+ // add vertices with non-additional properties
+ for (int i=0 ; i<2 ; i++) {
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, new HashMap<>(), ResourceTypeEnum.VF));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, new HashMap<>(), ResourceTypeEnum.VFC));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, new HashMap<>(), ResourceTypeEnum.VFCMT));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, new HashMap<>(), ResourceTypeEnum.VL));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, new HashMap<>(), ResourceTypeEnum.CP));
+ allVertices.add(GraphTestUtils.createServiceVertex(titanDao, new HashMap<>()));
+ }
+
+ // add certified vertices
+ for (int i=0; i<3; i++) {
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, certifiedVerticesProps, ResourceTypeEnum.VF));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, certifiedVerticesProps, ResourceTypeEnum.VFC));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, certifiedVerticesProps, ResourceTypeEnum.VFCMT));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, certifiedVerticesProps, ResourceTypeEnum.VL));
+ allVertices.add(GraphTestUtils.createResourceVertex(titanDao, certifiedVerticesProps, ResourceTypeEnum.CP));
+ allVertices.add(GraphTestUtils.createServiceVertex(titanDao, certifiedVerticesProps));
+ }
+ //allVertices.stream().forEach( v -> System.out.println("type: "+v.getMetadataProperty(GraphPropertyEnum.COMPONENT_TYPE)));
+ //String result = GraphTestUtils.exportGraphMl(titanDao.getGraph().left().value(), "");
+ //System.out.println("graph is: " + result);
+ }
+
+ private long calculateCount(HashMap<GraphPropertyEnum, Object> hasProps, Map<GraphPropertyEnum, Object> doesntHaveProps){
+ return allVertices.stream().
+ filter(v -> {
+ Map<GraphPropertyEnum, Object> vertexProps = v.getMetadataProperties();
+ if (hasProps != null) {
+ for (Map.Entry<GraphPropertyEnum, Object> prop: hasProps.entrySet()){
+ Object value = vertexProps.get(prop.getKey());
+ if ( value == null || !value.equals(prop.getValue())) {
+ return false;
+ }
+ }
+ }
+
+ if (doesntHaveProps != null) {
+ for (Map.Entry<GraphPropertyEnum, Object> prop : doesntHaveProps.entrySet()) {
+ Object value = vertexProps.get(prop.getKey());
+ Object propValue = prop.getValue();
+ if ( value != null && propValue != null && propValue instanceof List ) {
+ for (ResourceTypeEnum propVal : (List<ResourceTypeEnum>)propValue) {
+ if (propVal.name().equals(value)) {
+ return false;
+ }
+ }
+ }
+ else if (value != null && value.equals(propValue)){
+ return false;
+ }
+ }
+ }
+ return true;
+ }).count();
+ }
+}
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTestImpl.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTestImpl.java
new file mode 100644
index 0000000000..27fbce4776
--- /dev/null
+++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/operations/ToscaElementOperationTestImpl.java
@@ -0,0 +1,74 @@
+package org.openecomp.sdc.be.model.jsontitan.operations;
+
+import fj.data.Either;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.model.ComponentParametersView;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+
+/**
+ * Created by cb478c on 6/13/2017.
+ */
+@org.springframework.stereotype.Component("test-tosca-element-operation")
+public class ToscaElementOperationTestImpl extends ToscaElementOperation {
+
+ @Override
+ protected <T extends ToscaElement> Either<T, StorageOperationStatus> getLightComponent(GraphVertex vertexComponent, ComponentTypeEnum nodeType, ComponentParametersView parametersFilter) {
+ titanDao.parseVertexProperties(vertexComponent, JsonParseFlagEnum.ParseMetadata);
+ T toscaElement = convertToComponent(vertexComponent);
+ return Either.left(toscaElement);
+ }
+
+ @Override
+ public <T extends ToscaElement> Either<T, StorageOperationStatus> getToscaElement(String uniqueId, ComponentParametersView componentParametersView) {
+ return null;
+ }
+
+ @Override
+ public <T extends ToscaElement> Either<T, StorageOperationStatus> getToscaElement(GraphVertex toscaElementVertex, ComponentParametersView componentParametersView) {
+ return null;
+ }
+
+ @Override
+ public <T extends ToscaElement> Either<T, StorageOperationStatus> deleteToscaElement(GraphVertex toscaElementVertex) {
+ return null;
+ }
+
+ @Override
+ public <T extends ToscaElement> Either<T, StorageOperationStatus> createToscaElement(ToscaElement toscaElement) {
+ return null;
+ }
+
+ @Override
+ protected <T extends ToscaElement> TitanOperationStatus setCategoriesFromGraph(GraphVertex vertexComponent, T toscaElement) {
+ return null;
+ }
+
+ @Override
+ protected <T extends ToscaElement> TitanOperationStatus setCapabilitiesFromGraph(GraphVertex componentV, T toscaElement) {
+ return null;
+ }
+
+ @Override
+ protected <T extends ToscaElement> TitanOperationStatus setRequirementsFromGraph(GraphVertex componentV, T toscaElement) {
+ return null;
+ }
+
+ @Override
+ protected <T extends ToscaElement> StorageOperationStatus validateCategories(T toscaElementToUpdate, GraphVertex elementV) {
+ return null;
+ }
+
+ @Override
+ protected <T extends ToscaElement> StorageOperationStatus updateDerived(T toscaElementToUpdate, GraphVertex updateElementV) {
+ return null;
+ }
+
+ @Override
+ public <T extends ToscaElement> void fillToscaElementVertexData(GraphVertex elementV, T toscaElementToUpdate, JsonParseFlagEnum flag) {
+
+ }
+}
diff --git a/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/utils/GraphTestUtils.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/utils/GraphTestUtils.java
new file mode 100644
index 0000000000..8e2a283559
--- /dev/null
+++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/jsontitan/utils/GraphTestUtils.java
@@ -0,0 +1,114 @@
+/*-
+ * ============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.be.model.jsontitan.utils;
+
+import com.thinkaurelius.titan.core.TitanGraph;
+import com.thinkaurelius.titan.core.TitanVertex;
+import fj.data.Either;
+import org.apache.tinkerpop.gremlin.structure.io.IoCore;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
+
+public final class GraphTestUtils {
+
+ public static GraphVertex createResourceVertex(TitanDao titanDao, Map<GraphPropertyEnum,Object> metadataProps, ResourceTypeEnum type) {
+ GraphVertex vertex = new GraphVertex();
+ if (type == ResourceTypeEnum.VF) {
+ vertex.setLabel(VertexTypeEnum.TOPOLOGY_TEMPLATE);
+ vertex.addMetadataProperty(GraphPropertyEnum.LABEL, VertexTypeEnum.TOPOLOGY_TEMPLATE);
+ } else {
+ vertex.setLabel(VertexTypeEnum.NODE_TYPE);
+ vertex.addMetadataProperty(GraphPropertyEnum.LABEL, VertexTypeEnum.NODE_TYPE);
+ }
+ String uuid = UUID.randomUUID().toString();
+ vertex.setUniqueId(uuid);
+
+ vertex.addMetadataProperty(GraphPropertyEnum.UNIQUE_ID, uuid);
+ vertex.addMetadataProperty(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+ vertex.addMetadataProperty(GraphPropertyEnum.RESOURCE_TYPE, type.name());
+ vertex.addMetadataProperty(GraphPropertyEnum.IS_ABSTRACT, false);
+ for (Map.Entry<GraphPropertyEnum, Object> prop : metadataProps.entrySet()) {
+ vertex.addMetadataProperty(prop.getKey(), prop.getValue());
+ }
+ titanDao.createVertex(vertex);
+ titanDao.commit();
+ return vertex;
+ }
+
+ public static GraphVertex createServiceVertex(TitanDao titanDao, Map<GraphPropertyEnum, Object> metadataProps){
+ GraphVertex vertex = new GraphVertex(VertexTypeEnum.TOPOLOGY_TEMPLATE);
+ String uuid = UUID.randomUUID().toString();
+ vertex.setUniqueId(uuid);
+ vertex.addMetadataProperty(GraphPropertyEnum.LABEL, VertexTypeEnum.TOPOLOGY_TEMPLATE);
+ vertex.addMetadataProperty(GraphPropertyEnum.UNIQUE_ID, uuid);
+ vertex.addMetadataProperty(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+ for (Map.Entry<GraphPropertyEnum, Object> prop : metadataProps.entrySet()) {
+ vertex.addMetadataProperty(prop.getKey(), prop.getValue());
+ }
+ titanDao.createVertex(vertex);
+ titanDao.commit();
+ return vertex;
+ }
+
+ public static void clearGraph(TitanDao titanDao) {
+ Either<TitanGraph, TitanOperationStatus> graphResult = titanDao.getGraph();
+ TitanGraph graph = graphResult.left().value();
+
+ Iterable<TitanVertex> vertices = graph.query().vertices();
+ if (vertices != null) {
+ Iterator<TitanVertex> iterator = vertices.iterator();
+ while (iterator.hasNext()) {
+ TitanVertex vertex = iterator.next();
+ vertex.remove();
+ }
+ }
+ titanDao.commit();
+ }
+
+ public static String exportGraphMl(TitanGraph graph, String outputDirectory) {
+ String result = null;
+ String outputFile = outputDirectory + File.separator + "exportGraph." + System.currentTimeMillis() + ".graphml";
+ try {
+ try (final OutputStream os = new BufferedOutputStream(new FileOutputStream(outputFile))) {
+ graph.io(IoCore.graphml()).writer().normalize(true).create().writeGraph(os, graph);
+ }
+ result = outputFile;
+ graph.tx().commit();
+ } catch (Exception e) {
+ graph.tx().rollback();
+ e.printStackTrace();
+ }
+ return result;
+ }
+}
diff --git a/catalog-ui/configurations/MenuReadMe.txt b/catalog-ui/configurations/MenuReadMe.txt
index 660427e5c9..16a7d0f0b7 100644
--- a/catalog-ui/configurations/MenuReadMe.txt
+++ b/catalog-ui/configurations/MenuReadMe.txt
@@ -8,8 +8,6 @@ Supported roles:
-----------------------------
ADMIN
DESIGNER
-PRODUCT_STRATEGIST
-PRODUCT_MANAGER
TESTER
OPS
GOVERNOR
diff --git a/catalog-ui/configurations/dev.js b/catalog-ui/configurations/dev.js
index 4058071183..b68842c3fc 100644
--- a/catalog-ui/configurations/dev.js
+++ b/catalog-ui/configurations/dev.js
@@ -55,21 +55,13 @@ const SDC_CONFIG = {
"POST_change_instance_version": "/v1/catalog/:entityType/:entityId/resourceInstance/:id/changeVersion",
"GET_requirements_capabilities": "/v1/catalog/requirmentsCapabilities/:type/:id",
"GET_resource_artifact_types": "/v1/artifactTypes",
- "GET_product_catalog": "/v1/productScreen",
- "GET_product_category": "/v1/productCategories",
- "GET_product_category_temp": "/v1/artifactTypes",
- "POST_product": "/v1/catalog/products/:id/metadata",
- "GET_product_validate_name": "/v1/catalog/services/validate-name/:name",
- "GET_product": "/v1/catalog/products/:id",
- "GET_product_sub_category": "/v1/productSubCategories",
"GET_onboarding": "/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/packages",
"GET_component_from_csar_uuid": "/v1/catalog/resources/csar/:csar_uuid",
"kibana": "/sdc1/kibanaProxy/"
},
"resourceTypesFilter":{
"resource":["CP","VFC","VL"],
- "service":["CP","VF","VL"],
- "product":[]
+ "service":["CP","VF","VL", "PNF","CVFC"]
},
"logConfig": {
"minLogLevel": "debug",
@@ -104,7 +96,7 @@ const SDC_CONFIG = {
"default": "DL-ASDCL1-4ServiceCertificationTeam;DL-ASDCL4-7ServiceCertificationTeam"
}
},
- "roles": ["ADMIN", "TESTER", "GOVERNOR", "OPS", "DESIGNER", "PRODUCT_MANAGER", "PRODUCT_STRATEGIST"],
+ "roles": ["ADMIN", "TESTER", "GOVERNOR", "OPS", "DESIGNER"],
"tutorial": {
"tabs": [
{
@@ -428,4 +420,4 @@ const SDC_CONFIG = {
}
};
-module.exports = SDC_CONFIG; \ No newline at end of file
+module.exports = SDC_CONFIG;
diff --git a/catalog-ui/configurations/menu.js b/catalog-ui/configurations/menu.js
index 12dda2d78b..36f9d8076a 100644
--- a/catalog-ui/configurations/menu.js
+++ b/catalog-ui/configurations/menu.js
@@ -32,8 +32,7 @@ const SDC_MENU_CONFIG = {
"title": "Designer's Workspace",
"pages":[],
"dashboard": {
- "showCreateNew": true,
- "showCreateNewProduct": false
+ "showCreateNew": true
},
"changeLifecycleStateButtons":{
"NOT_CERTIFIED_CHECKOUT":{ "submitForTesting": {"text":"Submit for Testing", "url":"lifecycleState/certificationRequest", "emailModal": "lifecycleState/CERTIFICATIONREQUEST"},
@@ -81,99 +80,11 @@ const SDC_MENU_CONFIG = {
]
},
- "PRODUCT_STRATEGIST":{
- "title": "Product Strategist's Workspace",
- "pages":[],
- "dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": false
- },
- "changeLifecycleStateButtons":{},
-
- "states":{
- "NOT_CERTIFIED_CHECKOUT":{
- "ANY":[
- ]
- },
- "NOT_CERTIFIED_CHECKIN": {
- "ANY": [
- ]
- },
- "READY_FOR_CERTIFICATION": {
- "ANY":[
- ]
- },
- "CERTIFICATION_IN_PROGRESS":{
- "ANY":[
- ]
- },
- "CERTIFIED":{
- "ANY":[
- ]
- }
- },
- "folder":[
- {"text": "Active Projects", "groupname": "IN_PROGRESS" },
- {"text": "Check Out", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKOUT"},
- {"text": "Check In", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKIN"},
- {"text": "Followed Projects", "groupname": "FOLLOWING" },
- {"text": "Ready For Testing", "group": "FOLLOWING", "state": "READY_FOR_CERTIFICATION"},
- {"text": "In Testing", "group": "FOLLOWING", "state": "CERTIFICATION_IN_PROGRESS"},
- {"text": "Certified", "group": "FOLLOWING", "state": "CERTIFIED"}
- ]
- },
- "PRODUCT_MANAGER":{
- "title": "Product Manager Workspace",
- "pages":[],
- "dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": true
- },
- "changeLifecycleStateButtons":{
- "NOT_CERTIFIED_CHECKOUT":{ "checkIn": {"text":"Check in", "url":"lifecycleState/CHECKIN", "confirmationModal": "lifecycleState/CHECKIN"},
- "deleteVersion":{"text":"Delete Version", "url":"lifecycleState/UNDOCHECKOUT", "alertModal": "lifecycleState/UNDOCHECKOUT"}
- },
- "NOT_CERTIFIED_CHECKIN":{ "checkOut": {"text":"Check Out", "url":"lifecycleState/CHECKOUT"}
- }
- },
- "states":{
- "NOT_CERTIFIED_CHECKOUT":{
- "ANY":[
- ]
- },
- "NOT_CERTIFIED_CHECKIN": {
- "ANY": [
- ]
- },
- "READY_FOR_CERTIFICATION": {
- "ANY":[
- ]
- },
- "CERTIFICATION_IN_PROGRESS":{
- "ANY":[
- ]
- },
- "CERTIFIED":{
- "ANY":[
- ]
- }
- },
- "folder":[
- {"text": "Active Projects", "groupname": "IN_PROGRESS" },
- {"text": "Check Out", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKOUT"},
- {"text": "Check In", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKIN"},
- {"text": "Followed Projects", "groupname": "FOLLOWING" },
- {"text": "Ready For Testing", "group": "FOLLOWING", "state": "READY_FOR_CERTIFICATION"},
- {"text": "In Testing", "group": "FOLLOWING", "state": "CERTIFICATION_IN_PROGRESS"},
- {"text": "Certified", "group": "FOLLOWING", "state": "CERTIFIED"}
- ]
- },
"TESTER":{
"title": "Tester's Workspace",
"pages":[],
"dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": false
+ "showCreateNew": false
},
"changeLifecycleStateButtons":{
"READY_FOR_CERTIFICATION":{ "startTesting": {"text":"Start Testing", "url":"lifecycleState/startCertification"}
@@ -208,8 +119,7 @@ const SDC_MENU_CONFIG = {
"title": "Operations Workspace",
"pages":[],
"dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": false
+ "showCreateNew": false
},
"changeLifecycleStateButtons":{
"DISTRIBUTION_APPROVED":{ "distribute": {"text":"Distribute", "url":"distribution/PROD/activate", "conformanceLevelModal": { "url":"distribution-state/reject", "confirmationModal": "distribution-state/reject" }},
@@ -240,8 +150,7 @@ const SDC_MENU_CONFIG = {
"title": "Governance Rep's Workspace",
"pages":[],
"dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": false
+ "showCreateNew": false
},
"changeLifecycleStateButtons":{
"DISTRIBUTION_NOT_APPROVED":{ "approve": {"text":"Approve", "url":"distribution-state/approve", "confirmationModal": "distribution-state/approve", "conformanceLevelModal": { "url":"distribution-state/reject", "confirmationModal": "distribution-state/reject" }},
@@ -358,82 +267,6 @@ const SDC_MENU_CONFIG = {
}
},
- "PRODUCT_MANAGER":{
- "states":{
- "NOT_CERTIFIED_CHECKOUT":{
- "ANY":[
- ],
- "NOT_OWNER":[
- ]
- },
- "NOT_CERTIFIED_CHECKIN": {
- "ANY": [
- ]
- },
- "READY_FOR_CERTIFICATION": {
- "ANY":[
- ]
- },
- "CERTIFICATION_IN_PROGRESS":{
- "ANY":[
- ]
- },
- "CERTIFIED":{
- "ANY":[
- ]
- }
- },
- "folder":[
- {"text": "Active Projects", "groupname": "IN_PROGRESS" },
- {"text": "Check Out", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKOUT"},
- {"text": "Check In", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKIN"},
- {"text": "Followed Projects", "groupname": "FOLLOWING" },
- {"text": "Ready For Testing", "group": "FOLLOWING", "state": "READY_FOR_CERTIFICATION"},
- {"text": "In Testing", "group": "FOLLOWING", "state": "CERTIFICATION_IN_PROGRESS"},
- {"text": "Certified", "group": "FOLLOWING", "state": "CERTIFIED"}
- ]
- },
- "PRODUCT_STRATEGIST":{
- "title": "Product Strategist's Workspace",
- "pages":[],
- "dashboard": {
- "showCreateNew": false,
- "showCreateNewProduct": true
- },
- "states":{
- "NOT_CERTIFIED_CHECKOUT":{
- "ANY":[
- ],
- "NOT_OWNER":[
- ]
- },
- "NOT_CERTIFIED_CHECKIN": {
- "ANY": [
- ]
- },
- "READY_FOR_CERTIFICATION": {
- "ANY":[
- ]
- },
- "CERTIFICATION_IN_PROGRESS":{
- "ANY":[
- ]
- },
- "CERTIFIED":{
- "ANY":[
- ]
- }
- },
- "folder":[
- {"text": "Active Projects", "groupname": "IN_PROGRESS" },
- {"text": "Check Out", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKOUT"},
- {"text": "Check In", "group": "IN_PROGRESS", "state": "NOT_CERTIFIED_CHECKIN"},
- {"text": "Followed Projects", "groupname": "FOLLOWING" },
- {"text": "Ready For Testing", "group": "FOLLOWING", "state": "READY_FOR_CERTIFICATION"},
- {"text": "In Testing", "group": "FOLLOWING", "state": "CERTIFICATION_IN_PROGRESS"},
- {"text": "Certified", "group": "FOLLOWING", "state": "CERTIFIED"}
- ]
- },
"OTHER":{
"states":{
"ANY":{
@@ -465,7 +298,6 @@ const SDC_MENU_CONFIG = {
"component_workspace_menu_option": {
"VFC":[
{"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
{"text":"Deployment Artifact", "action":"onMenuItemPressed", "state": "workspace.deployment_artifacts"},
{"text":"Information Artifact", "action":"onMenuItemPressed", "state": "workspace.information_artifacts"},
{"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
@@ -476,7 +308,6 @@ const SDC_MENU_CONFIG = {
],
"VL":[
{"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
{"text":"Deployment Artifact", "action":"onMenuItemPressed", "state": "workspace.deployment_artifacts"},
{"text":"Information Artifact", "action":"onMenuItemPressed", "state": "workspace.information_artifacts"},
{"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
@@ -487,7 +318,6 @@ const SDC_MENU_CONFIG = {
],
"CP":[
{"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
{"text":"Deployment Artifact", "action":"onMenuItemPressed", "state": "workspace.deployment_artifacts"},
{"text":"Information Artifact", "action":"onMenuItemPressed", "state": "workspace.information_artifacts"},
{"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
@@ -498,7 +328,6 @@ const SDC_MENU_CONFIG = {
],
"VF":[
{"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
{"text":"Deployment Artifact", "action":"onMenuItemPressed", "state": "workspace.deployment_artifacts"},
{"text":"Information Artifact", "action":"onMenuItemPressed", "state": "workspace.information_artifacts"},
{"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
@@ -509,24 +338,25 @@ const SDC_MENU_CONFIG = {
// {"text":"Inputs", "action":"onMenuItemPressed", "state": "workspace.resource_inputs"},
{"text":"Properties Assignment", "action":"onMenuItemPressed", "state": "workspace.properties_assignment"}
],
+ "PNF":[
+ {"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
+ {"text":"Information Artifact", "action":"onMenuItemPressed", "state": "workspace.information_artifacts"},
+ {"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
+ {"text":"Composition", "action":"onMenuItemPressed", "state": "workspace.composition.details"},
+ {"text":"Activity Log", "action":"onMenuItemPressed", "state": "workspace.activity_log"},
+ {"text":"Properties Assignment", "action":"onMenuItemPressed", "state": "workspace.properties_assignment"}
+ ],
"SERVICE":[
{"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
{"text":"TOSCA Artifacts", "action":"onMenuItemPressed", "state": "workspace.tosca_artifacts"},
{"text":"Composition", "action":"onMenuItemPressed", "state": "workspace.composition.details"},
{"text":"Activity Log", "action":"onMenuItemPressed", "state": "workspace.activity_log"},
{"text":"Management Workflow", "action":"onMenuItemPressed", "state": "workspace.management_workflow"},
{"text":"Network Call Flow ", "action":"onMenuItemPressed", "state": "workspace.network_call_flow"},
- {"text":"Monitor ", "action":"onMenuItemPressed", "state": "workspace.distribution", "disabledRoles": ["ADMIN", "TESTER", "GOVERNOR", "DESIGNER", "PRODUCT_MANAGER", "PRODUCT_STRATEGIST"]},
+ {"text":"Monitor ", "action":"onMenuItemPressed", "state": "workspace.distribution", "disabledRoles": ["ADMIN", "TESTER", "GOVERNOR", "DESIGNER"]},
{"text":"Deployment", "action":"onMenuItemPressed", "state": "workspace.deployment"},
// {"text":"Inputs", "action":"onMenuItemPressed", "state": "workspace.service_inputs"},
{"text":"Properties Assignment", "action":"onMenuItemPressed", "state": "workspace.properties_assignment"}
- ],
- "PRODUCT":[
- {"text":"General", "action":"onMenuItemPressed", "state": "workspace.general"},
- {"text":"Hierarchy", "action":"onMenuItemPressed", "state": "workspace.hierarchy"},
- {"text":"Icon", "action":"onMenuItemPressed", "state": "workspace.icons"},
- {"text":"Composition", "action":"onMenuItemPressed", "state": "workspace.composition.details"}
]
}
diff --git a/catalog-ui/configurations/mock.json b/catalog-ui/configurations/mock.json
index 2abcbe0ce2..0ce1fbbb5d 100644
--- a/catalog-ui/configurations/mock.json
+++ b/catalog-ui/configurations/mock.json
@@ -77,20 +77,6 @@
"firstName": "op",
"lastName": "ss",
"xEcompRequestId": "ccccc"
- },
- "product_strategist": {
- "userId": "ps0001",
- "email": "product_strategist@sdc.com",
- "firstName": "Orit",
- "lastName": "Barda",
- "xEcompRequestId": "ccccc"
- },
- "product_manager": {
- "userId": "pm0001",
- "email": "product_manager@sdc.com",
- "firstName": "Orit",
- "lastName": "Barda",
- "xEcompRequestId": "ccccc"
}
},
"statuses": {
diff --git a/catalog-ui/configurations/prod.js b/catalog-ui/configurations/prod.js
index 30cb3f2146..971263b710 100644
--- a/catalog-ui/configurations/prod.js
+++ b/catalog-ui/configurations/prod.js
@@ -55,21 +55,13 @@ const SDC_CONFIG = {
"POST_change_instance_version": "/v1/catalog/:entityType/:entityId/resourceInstance/:id/changeVersion",
"GET_requirements_capabilities": "/v1/catalog/requirmentsCapabilities/:type/:id",
"GET_resource_artifact_types": "/v1/artifactTypes",
- "GET_product_catalog": "/v1/productScreen",
- "GET_product_category": "/v1/productCategories",
- "GET_product_category_temp": "/v1/artifactTypes",
- "POST_product": "/v1/catalog/products/:id/metadata",
- "GET_product_validate_name": "/v1/catalog/services/validate-name/:name",
- "GET_product": "/v1/catalog/products/:id",
- "GET_product_sub_category": "/v1/productSubCategories",
"GET_onboarding": "/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/packages",
"GET_component_from_csar_uuid": "/v1/catalog/resources/csar/:csar_uuid",
"kibana": "/sdc1/kibanaProxy/"
},
"resourceTypesFilter":{
"resource":["CP","VFC","VL"],
- "service":["CP","VF","VL"],
- "product":[]
+ "service":["CP","VF","VL", "PNF","CVFC"]
},
"logConfig": {
"minLogLevel": "debug",
@@ -104,7 +96,7 @@ const SDC_CONFIG = {
"default": "DL-ASDCL1-4ServiceCertificationTeam;DL-ASDCL4-7ServiceCertificationTeam"
}
},
- "roles": ["ADMIN", "TESTER", "GOVERNOR", "OPS", "DESIGNER", "PRODUCT_MANAGER", "PRODUCT_STRATEGIST"],
+ "roles": ["ADMIN", "TESTER", "GOVERNOR", "OPS", "DESIGNER"],
"tutorial": {
"tabs": [
{
@@ -426,7 +418,6 @@ const SDC_CONFIG = {
]
}
-
};
module.exports = SDC_CONFIG;
diff --git a/catalog-ui/pom.xml b/catalog-ui/pom.xml
index 0505d91cba..737ed33a41 100644
--- a/catalog-ui/pom.xml
+++ b/catalog-ui/pom.xml
@@ -47,9 +47,6 @@
</excludes>
<followSymlinks>false</followSymlinks>
</fileset>
- <fileset>
- <directory>${basedir}/node_modules</directory>
- </fileset>
</filesets>
</configuration>
</execution>
@@ -100,11 +97,11 @@
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.4</version>
-
+
<configuration>
<installDirectory>${project.parent.basedir}</installDirectory>
</configuration>
-
+
<executions>
<execution>
<id>install node and npm</id>
@@ -117,7 +114,7 @@
<npmVersion>3.10.10</npmVersion>
</configuration>
</execution>
-
+
<execution>
<id>npm set progress off</id>
<goals>
diff --git a/catalog-ui/src/app/app.ts b/catalog-ui/src/app/app.ts
index 50b99e8ab9..805e5f0b5d 100644
--- a/catalog-ui/src/app/app.ts
+++ b/catalog-ui/src/app/app.ts
@@ -53,6 +53,7 @@ import {downgradeComponent} from "@angular/upgrade/static";
import {AppModule} from './ng2/app.module';
import {PropertiesAssignmentComponent} from "./ng2/pages/properties-assignment/properties-assignment.page.component";
+import { SearchWithAutoCompleteComponent } from "./ng2/shared/search-with-autocomplete/search-with-autocomplete.component";
import {Component} from "./models/components/component";
import {ComponentServiceNg2} from "./ng2/services/component-services/component.service";
import {ComponentMetadata} from "./models/component-metadata";
@@ -145,6 +146,13 @@ _.each(hostedApplications, (hostedApp)=> {
export const ng1appModule:ng.IModule = angular.module(moduleName, dependentModules);
angular.module('sdcApp').directive('propertiesAssignment', downgradeComponent({component: PropertiesAssignmentComponent}) as angular.IDirectiveFactory);
+angular.module('sdcApp').directive('ng2SearchWithAutocomplete',
+ downgradeComponent({
+ component: SearchWithAutoCompleteComponent,
+ inputs: ['searchPlaceholder', 'searchBarClass', 'autoCompleteValues'],
+ outputs: ['searchChanged', 'searchButtonClicked']
+ }) as angular.IDirectiveFactory);
+
ng1appModule.config([
'$stateProvider',
@@ -161,7 +169,7 @@ ng1appModule.config([
NotificationProvider:any):void => {
NotificationProvider.setOptions({
- delay: 10000,
+ delay: 5000,
startTop: 10,
startRight: 10,
closeOnClick: true,
@@ -170,6 +178,7 @@ ng1appModule.config([
positionX: 'right',
positionY: 'top'
});
+ NotificationProvider.options.templateUrl = 'notification-custom-template.html';
$translateProvider.useStaticFilesLoader({
prefix: pathPrefix + 'assets/languages/',
@@ -245,17 +254,6 @@ ng1appModule.config([
data: {unsavedChanges: false, bodyClass: 'general'}
}
);
- //
- $stateProvider.state(
- States.WORKSPACE_ICONS, {
- url: 'icons',
- parent: 'workspace',
- controller: viewModelsModuleName + '.IconsViewModel',
- templateUrl: './view-models/workspace/tabs/icons/icons-view.html',
- data: {unsavedChanges: false, bodyClass: 'icons'}
-
- }
- );
$stateProvider.state(
States.WORKSPACE_ACTIVITY_LOG, {
@@ -280,17 +278,6 @@ ng1appModule.config([
);
$stateProvider.state(
- States.WORKSPACE_HIERARCHY, {
- url: 'hierarchy',
- parent: 'workspace',
- controller: viewModelsModuleName + '.ProductHierarchyViewModel',
- templateUrl: './view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html',
- data: {unsavedChanges: false}
-
- }
- );
-
- $stateProvider.state(
States.WORKSPACE_INFORMATION_ARTIFACTS, {
url: 'information_artifacts',
parent: 'workspace',
@@ -602,7 +589,7 @@ ng1appModule.value('ValidationPattern', /^[\s\w\&_.:-]{1,1024}$/);
ng1appModule.value('ComponentNameValidationPattern', /^(?=.*[^. ])[\s\w\&_.:-]{1,1024}$/); //DE250513 - same as ValidationPattern above, plus requirement that name not consist of dots and/or spaces alone.
ng1appModule.value('PropertyNameValidationPattern', /^[a-zA-Z0-9_:-]{1,50}$/);// DE210977
ng1appModule.value('TagValidationPattern', /^[\s\w_.-]{1,50}$/);
-ng1appModule.value('VendorValidationPattern', /^[\x20-\x21\x23-\x29\x2B-\x2E\x30-\x39\x3B\x3D\x40-\x5B\x5D-\x7B\x7D-\xFF]{1,25}$/);
+ng1appModule.value('VendorReleaseValidationPattern', /^[\x20-\x21\x23-\x29\x2B-\x2E\x30-\x39\x3B\x3D\x40-\x5B\x5D-\x7B\x7D-\xFF]{1,25}$/);
ng1appModule.value('VendorNameValidationPattern', /^[\x20-\x21\x23-\x29\x2B-\x2E\x30-\x39\x3B\x3D\x40-\x5B\x5D-\x7B\x7D-\xFF]{1,60}$/);
ng1appModule.value('VendorModelNumberValidationPattern', /^[\x20-\x21\x23-\x29\x2B-\x2E\x30-\x39\x3B\x3D\x40-\x5B\x5D-\x7B\x7D-\xFF]{1,65}$/);
ng1appModule.value('ContactIdValidationPattern', /^[\s\w-]{1,50}$/);
@@ -639,6 +626,7 @@ ng1appModule.run([
'LeftPaletteLoaderService',
'Sdc.Services.DataTypesService',
'AngularJSBridge',
+ '$templateCache',
($http:ng.IHttpService,
cacheService:CacheService,
cookieService:CookieService,
@@ -654,8 +642,9 @@ ng1appModule.run([
ecompHeaderService:EcompHeaderService,
LeftPaletteLoaderService:LeftPaletteLoaderService,
DataTypesService:DataTypesService,
- AngularJSBridge):void => {
-
+ AngularJSBridge,
+ $templateCache:ng.ITemplateCacheService):void => {
+ $templateCache.put('notification-custom-template.html', require('./view-models/shared/notification-custom-template.html'));
//handle cache data - version
let initAsdcVersion:Function = ():void => {
@@ -696,7 +685,6 @@ ng1appModule.run([
categoryResourceService.getAllCategories((categories: Categories):void => {
cacheService.set('serviceCategories', categories.serviceCategories);
cacheService.set('resourceCategories', categories.resourceCategories);
- cacheService.set('productCategories', categories.productCategories);
}, onError);
};
diff --git a/catalog-ui/src/app/directives/graphs-v2/common/style/component-instances-nodes-style.ts b/catalog-ui/src/app/directives/graphs-v2/common/style/component-instances-nodes-style.ts
index 0a13ebd799..64197594e2 100644
--- a/catalog-ui/src/app/directives/graphs-v2/common/style/component-instances-nodes-style.ts
+++ b/catalog-ui/src/app/directives/graphs-v2/common/style/component-instances-nodes-style.ts
@@ -7,9 +7,9 @@
* 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.
@@ -44,7 +44,8 @@ export class ComponentInstanceNodesStyle {
{
selector: 'node',
css: {
- 'font-family': 'omnes-regular,sans-serif',
+ 'font-family': 'OpenSans-Regular,sans-serif',
+
'font-size': 14,
'events': 'yes',
'text-events': 'yes',
@@ -230,7 +231,7 @@ export class ComponentInstanceNodesStyle {
public static getBasicNodeHanlde = () => {
return {
- positionX: "center",
+ positionX: "right",
positionY: "top",
offsetX: 15,
offsetY: -20,
@@ -247,7 +248,7 @@ export class ComponentInstanceNodesStyle {
public static getBasicSmallNodeHandle = () => {
return {
- positionX: "center",
+ positionX: "right",
positionY: "top",
offsetX: 3,
offsetY: -25,
diff --git a/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.directive.ts b/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.directive.ts
index 651a4281fa..9aa7941272 100644
--- a/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.directive.ts
+++ b/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.directive.ts
@@ -47,7 +47,8 @@ interface ICompositionGraphScope extends ng.IScope {
component:Component;
isLoading: boolean;
- isViewOnly:boolean;
+ isViewOnly: boolean;
+ withSidebar: boolean;
// Link menu - create link menu
relationMenuDirectiveObj:RelationMenuDirectiveObj;
isLinkMenuOpen:boolean;
@@ -65,6 +66,14 @@ interface ICompositionGraphScope extends ng.IScope {
//Links menus
deleteRelation(link:Cy.CollectionEdges):void;
hideRelationMenu();
+
+ //search,zoom in/out/all
+ componentInstanceNames: Array<string>; //id, name
+ zoom(zoomIn: boolean): void;
+ zoomAll(nodes?:Cy.CollectionNodes): void;
+ getAutoCompleteValues(searchTerm: string):void;
+ highlightSearchMatches(searchTerm: string): void;
+
/*//asset popover menu
assetPopoverObj:AssetPopoverObj;
assetPopoverOpen:boolean;
@@ -101,7 +110,8 @@ export class CompositionGraph implements ng.IDirective {
template = require('./composition-graph.html');
scope = {
component: '=',
- isViewOnly: '='
+ isViewOnly: '=',
+ withSidebar: '='
};
link = (scope:ICompositionGraphScope, el:JQuery) => {
@@ -147,7 +157,11 @@ export class CompositionGraph implements ng.IDirective {
this._cy = cytoscape({
container: graphEl,
style: ComponentInstanceNodesStyle.getCompositionGraphStyle(),
- zoomingEnabled: false,
+ zoomingEnabled: true,
+ maxZoom: 2.5,
+ minZoom: .1,
+ userZoomingEnabled: false,
+ userPanningEnabled: true,
selectionType: 'single',
boxSelectionEnabled: true,
autolock: isViewOnly,
@@ -270,6 +284,40 @@ export class CompositionGraph implements ng.IDirective {
this.loadGraphData(scope);
});
+ scope.zoom = (zoomIn: boolean):void => {
+ let currentZoom: number = this._cy.zoom();
+ if (zoomIn) {
+ this.GeneralGraphUtils.zoomGraphTo(this._cy, currentZoom + .1);
+ } else {
+ this.GeneralGraphUtils.zoomGraphTo(this._cy, currentZoom - .1);
+ }
+ }
+
+ //Zooms to fit all of the nodes in the collection passed in. If no nodes are passed in, will zoom to fit all nodes on graph
+ scope.zoomAll = (nodes?:Cy.CollectionNodes) => {
+ scope.withSidebar = false;
+ this._cy.animate({
+ fit: { eles: nodes, padding: 20 },
+ center: { eles: nodes }
+ }, { duration: 400 });
+ };
+
+ scope.getAutoCompleteValues = (searchTerm: string) => {
+ if (searchTerm.length > 1) { //US requirement: only display search results after 2nd letter typed.
+ let nodes: Cy.CollectionNodes = this.NodesGraphUtils.getMatchingNodesByName(this._cy, searchTerm);
+ scope.componentInstanceNames = _.map(nodes, node => node.data('name'));
+ } else {
+ scope.componentInstanceNames = [];
+ }
+ };
+
+ scope.highlightSearchMatches = (searchTerm: string) => {
+ if (searchTerm === undefined) return; //dont zoom & highlight if click on Search initially (searchTerm will be undefined). However, allow highlights to be cleared after subsequent search (searchTerm will be "")
+
+ this.NodesGraphUtils.highlightMatchingNodesByName(this._cy, searchTerm);
+ let matchingNodes: Cy.CollectionNodes = this.NodesGraphUtils.getMatchingNodesByName(this._cy, searchTerm);
+ scope.zoomAll(matchingNodes);
+ };
scope.createLinkFromMenu = (chosenMatch:MatchBase):void => {
scope.isLinkMenuOpen = false;
@@ -367,7 +415,7 @@ export class CompositionGraph implements ng.IDirective {
});*/
this._cy.on('handlemouseover', (event, payload) => {
- if (payload.node.grabbed() /* || this._cy.scratch('_edge_editation_highlights') === true*/) { //no need to add opacity while we are dragging and hovering othe nodes- or if opacity was already calculated for these nodes
+ if (payload.node.grabbed() || this._cy.scratch('_edge_editation_highlights') === true) { //no need to add opacity while we are dragging and hovering othe nodes- or if opacity was already calculated for these nodes
return;
}
let nodesData = this.NodesGraphUtils.getAllNodesData(this._cy.nodes());
@@ -377,9 +425,9 @@ export class CompositionGraph implements ng.IDirective {
let filteredNodesData = this.matchCapabilitiesRequirementsUtils.findByMatchingCapabilitiesToRequirements(payload.node.data().componentInstance, linkableNodes, nodesLinks);
this.matchCapabilitiesRequirementsUtils.highlightMatchingComponents(filteredNodesData, this._cy);
this.matchCapabilitiesRequirementsUtils.fadeNonMachingComponents(filteredNodesData, nodesData, this._cy, payload.node.data());
- /*
+
this._cy.scratch()._edge_editation_highlights = true;
- scope.hideAssetPopover();*/
+ /*scope.hideAssetPopover();*/
});
this._cy.on('handlemouseout', () => {
diff --git a/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.html b/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.html
index 1e69d3384a..248f19fb70 100644
--- a/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.html
+++ b/catalog-ui/src/app/directives/graphs-v2/composition-graph/composition-graph.html
@@ -20,4 +20,11 @@
</div>
+ <div class="w-sdc-search-menu" data-ng-class="{'with-sidebar': withSidebar}">
+ <ng2-search-with-autocomplete [search-placeholder]="'Type to search'" [auto-complete-values]="componentInstanceNames" (search-changed)="getAutoCompleteValues($event)" (search-button-clicked)="highlightSearchMatches($event)"
+ [search-bar-class]="'composition-search'"></ng2-search-with-autocomplete>
+ <div class="zoom-icons sprite-new canvas-fit-all" data-ng-click="zoomAll()"></div>
+ <div class="zoom-icons sprite-new zoom-plus" data-ng-click="zoom(true)"></div>
+ <div class="zoom-icons sprite-new zoom-minus" data-ng-click="zoom(false)"></div>
+ </div>
<!--<asset-popover ng-if="assetPopoverOpen" asset-popover-obj="assetPopoverObj" delete-asset="deleteNode(assetPopoverObj.nodeId)"></asset-popover>-->
diff --git a/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts
index 608031430b..0ea38af825 100644
--- a/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts
+++ b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts
@@ -64,6 +64,14 @@ export class CompositionGraphGeneralUtils {
};
+ public zoomGraphTo = (cy:Cy.Instance, zoomLevel: number):void => {
+ let zy = cy.height() / 2;
+ let zx = cy.width() / 2;
+ cy.zoom({
+ level: zoomLevel,
+ renderedPosition: { x: zx, y: zy }
+ });
+ }
/**
* will return true/false if two nodes overlapping
*
diff --git a/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts
index feb6ac9a54..449d551cc0 100644
--- a/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts
+++ b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts
@@ -48,6 +48,21 @@ export class CompositionGraphNodesUtils {
})
};
+
+ public highlightMatchingNodesByName = (cy: Cy.Instance, nameToMatch: string) => {
+
+ cy.batch(() => {
+ cy.nodes("[name !@^= '" + nameToMatch + "']").style({ 'background-image-opacity': 0.4 });
+ cy.nodes("[name @^= '" + nameToMatch + "']").style({ 'background-image-opacity': 1 });
+ })
+
+ }
+
+ //Returns all nodes whose name starts with searchTerm
+ public getMatchingNodesByName = (cy: Cy.Instance, nameToMatch: string): Cy.CollectionNodes => {
+ return cy.nodes("[name @^= '" + nameToMatch + "']");
+ };
+
/**
* Deletes component instances on server and then removes it from the graph as well
* @param cy
diff --git a/catalog-ui/src/app/directives/graphs-v2/palette/palette.directive.ts b/catalog-ui/src/app/directives/graphs-v2/palette/palette.directive.ts
index f1c3405cfa..f46dc6c939 100644
--- a/catalog-ui/src/app/directives/graphs-v2/palette/palette.directive.ts
+++ b/catalog-ui/src/app/directives/graphs-v2/palette/palette.directive.ts
@@ -17,21 +17,14 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
-import {
- Component,
- IAppMenu,
- LeftPanelModel,
- NodesFactory,
- LeftPaletteComponent,
- CompositionCiNodeBase,
- ComponentInstance
-} from "app/models";
+import {Component, IAppMenu, LeftPanelModel, NodesFactory, LeftPaletteComponent, CompositionCiNodeBase, ComponentInstance} from "app/models";
import {CompositionGraphGeneralUtils} from "../composition-graph/utils/composition-graph-general-utils";
import {EventListenerService} from "app/services";
import {ResourceType, GRAPH_EVENTS, EVENTS, ComponentInstanceFactory, ModalsHandler} from "app/utils";
import 'sdc-angular-dragdrop';
import {LeftPaletteLoaderService} from "../../../services/components/utils/composition-left-palette-service";
+import {Resource} from "app/models/components/resource";
+import {ComponentType} from "app/utils/constants";
interface IPaletteScope {
components:Array<LeftPaletteComponent>;
@@ -92,7 +85,7 @@ export class Palette implements ng.IDirective {
el.append(this.nodeHtmlSubstitute);
this.registerEventListenerForLeftPalette(scope);
// this.LeftPaletteLoaderService.loadLeftPanel(scope.currentComponent.componentType);
-
+
this.initComponents(scope);
this.initEvents(scope);
this.initDragEvents(scope);
@@ -103,34 +96,31 @@ export class Palette implements ng.IDirective {
});
};
- private registerEventListenerForLeftPalette = (scope:IPaletteScope):void => {
- if (scope.currentComponent.isResource()) {
- this.EventListenerService.registerObserverCallback(EVENTS.RESOURCE_LEFT_PALETTE_UPDATE_EVENT, () => {
- this.updateLeftPanelDisplay(scope);
- });
- }
- if (scope.currentComponent.isService()) {
- this.EventListenerService.registerObserverCallback(EVENTS.SERVICE_LEFT_PALETTE_UPDATE_EVENT, () => {
- this.updateLeftPanelDisplay(scope);
- });
- }
- if (scope.currentComponent.isProduct()) {
- this.EventListenerService.registerObserverCallback(EVENTS.PRODUCT_LEFT_PALETTE_UPDATE_EVENT, () => {
- this.updateLeftPanelDisplay(scope);
- });
+ private getUpdateLeftPaletteEventName = (component:Component):string => {
+ switch (component.componentType) {
+ case ComponentType.SERVICE:
+ return EVENTS.SERVICE_LEFT_PALETTE_UPDATE_EVENT;
+ case ComponentType.RESOURCE:
+ if((<Resource>component).resourceType == ResourceType.PNF){
+ return EVENTS.RESOURCE_PNF_LEFT_PALETTE_UPDATE_EVENT;
+ }else{
+ return EVENTS.RESOURCE_LEFT_PALETTE_UPDATE_EVENT;
+ }
+ default:
+ console.log('ERROR: Component type '+ component.componentType + ' is not exists');
}
};
+ private registerEventListenerForLeftPalette = (scope:IPaletteScope):void => {
+ let updateEventName:string = this.getUpdateLeftPaletteEventName(scope.currentComponent);
+ this.EventListenerService.registerObserverCallback(updateEventName, () => {
+ this.updateLeftPanelDisplay(scope);
+ });
+ };
+
private unRegisterEventListenerForLeftPalette = (scope:IPaletteScope):void => {
- if (scope.currentComponent.isResource()) {
- this.EventListenerService.unRegisterObserver(EVENTS.RESOURCE_LEFT_PALETTE_UPDATE_EVENT);
- }
- if (scope.currentComponent.isService()) {
- this.EventListenerService.unRegisterObserver(EVENTS.SERVICE_LEFT_PALETTE_UPDATE_EVENT);
- }
- if (scope.currentComponent.isProduct()) {
- this.EventListenerService.unRegisterObserver(EVENTS.PRODUCT_LEFT_PALETTE_UPDATE_EVENT);
- }
+ let updateEventName:string = this.getUpdateLeftPaletteEventName(scope.currentComponent);
+ this.EventListenerService.unRegisterObserver(updateEventName);
};
private leftPanelResourceFilter(resourcesNotAbstract:Array<LeftPaletteComponent>, resourceFilterTypes:Array<string>):Array<LeftPaletteComponent> {
@@ -236,7 +226,7 @@ export class Palette implements ng.IDirective {
private updateLeftPanelDisplay(scope:IPaletteScope) {
let entityType:string = scope.currentComponent.componentType.toLowerCase();
let resourceFilterTypes:Array<string> = this.sdcConfig.resourceTypesFilter[entityType];
- scope.components = this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent.componentType);
+ scope.components = this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent);
scope.model = this.initLeftPanel(scope.components, resourceFilterTypes);
scope.displaySortedCategories = angular.copy(scope.model.sortedCategories);
};
@@ -267,7 +257,7 @@ export class Palette implements ng.IDirective {
return;
}
- let component = _.find(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent.componentType), (componentFullData:LeftPaletteComponent) => {
+ let component = _.find(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent), (componentFullData:LeftPaletteComponent) => {
return displayComponent.uniqueId === componentFullData.uniqueId;
});
this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_START, scope.dragElement, component);
@@ -287,7 +277,7 @@ export class Palette implements ng.IDirective {
this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_ACTION, event);
};
scope.setElementTemplate = (e) => {
- let dragComponent:LeftPaletteComponent = _.find(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent.componentType),
+ let dragComponent:LeftPaletteComponent = _.find(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent),
(fullComponent:LeftPaletteComponent) => {
return (<any>angular.element(e.currentTarget).scope()).component.uniqueId === fullComponent.uniqueId;
});
diff --git a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html
index 3a4720676c..ec9aaf1f7f 100644
--- a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html
+++ b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.html
@@ -56,7 +56,7 @@
</div>
<div data-ng-if="isSchemaTypeDataType" class="i-sdc-form-item map-item-field">
<label class="i-sdc-form-label">Value</label>
- <fields-structure value-obj-ref="valueObjRef[mapKeys[$index]]"
+ <fields-structure value-obj-ref="valueObjRef[mapKeysStatic[$index]]"
type-name="schemaProperty.type"
parent-form-obj="parentFormObj"
fields-prefix-name="'mapValue'+fieldsPrefixName+''+$index"
diff --git a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts
index a2274654c8..5718cdd9b5 100644
--- a/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts
+++ b/catalog-ui/src/app/directives/property-types/type-map/type-map-directive.ts
@@ -33,6 +33,7 @@ export interface ITypeMapScope extends ng.IScope {
isSchemaTypeDataType:boolean;
valueObjRef:any;
mapKeys:Array<string>;//array of map keys
+ mapKeysStatic:Array<string>;
MapKeyValidationPattern:RegExp;
fieldsPrefixName:string;
readOnly:boolean;
@@ -82,6 +83,8 @@ export class TypeMapDirective implements ng.IDirective {
scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty);
if (scope.valueObjRef) {
scope.mapKeys = Object.keys(scope.valueObjRef);
+ //keeping another copy of the keys, as the mapKeys gets overridden sometimes
+ scope.mapKeysStatic = Object.keys(scope.valueObjRef);
}
});
@@ -91,6 +94,8 @@ export class TypeMapDirective implements ng.IDirective {
scope.valueObjRef = {};
}
scope.mapKeys = Object.keys(scope.valueObjRef);
+ //keeping another copy of the keys, as the mapKeys gets overridden sometimes
+ scope.mapKeysStatic = Object.keys(scope.valueObjRef);
if ($attr.defaultValue) {
scope.mapDefaultValue = JSON.parse($attr.defaultValue);
diff --git a/catalog-ui/src/app/directives/structure-tree/structure-tree-directive.html b/catalog-ui/src/app/directives/structure-tree/structure-tree-directive.html
index 7d8a883b33..706dbefb80 100644
--- a/catalog-ui/src/app/directives/structure-tree/structure-tree-directive.html
+++ b/catalog-ui/src/app/directives/structure-tree/structure-tree-directive.html
@@ -6,7 +6,7 @@
<ul>
<li data-ng-repeat="firstLevelResourcesInstances in structureTree.serviceRoot.resourceInstancesList">
<div class="component-container">
- <div class="small {{firstLevelResourcesInstances.icon}}" ng-class="{'sprite-resource-icons': !component.isProduct(), 'sprite-services-icons': component.isProduct()}">
+ <div class="small sprite-resource-icons {{firstLevelResourcesInstances.icon}}">
<div data-ng-class="{'non-certified':!firstLevelResourcesInstances.certified}"
tooltips tooltip-side="top" tooltip-content="Not certified">
</div>
diff --git a/catalog-ui/src/app/directives/utils/sdc-tags/sdc-tags.less b/catalog-ui/src/app/directives/utils/sdc-tags/sdc-tags.less
index 942196e663..af24776cd3 100644
--- a/catalog-ui/src/app/directives/utils/sdc-tags/sdc-tags.less
+++ b/catalog-ui/src/app/directives/utils/sdc-tags/sdc-tags.less
@@ -1,10 +1,10 @@
.tags-box {
- height: 297px;
+ height: 100px;
.bg_c;
.perfect-scrollbar {
- height: 265px;
+ height: 70px;
}
.new-tag-input {
diff --git a/catalog-ui/src/app/models.ts b/catalog-ui/src/app/models.ts
index c7b7577268..f3eb5d5fa6 100644
--- a/catalog-ui/src/app/models.ts
+++ b/catalog-ui/src/app/models.ts
@@ -35,11 +35,9 @@ export * from './models/category';
export * from './models/comments';
export * from './models/components/component';
export * from './models/components/displayComponent';
-export * from './models/components/product';
export * from './models/components/resource';
export * from './models/components/service';
export * from './models/componentsInstances/componentInstance';
-export * from './models/componentsInstances/productInstance';
export * from './models/componentsInstances/resourceInstance';
export * from './models/componentsInstances/serviceInstance';
export * from './models/csar-component';
@@ -102,7 +100,7 @@ export * from './models/tooltip-data';
export * from './models/user';
export * from './models/validate';
export * from './models/component-metadata';
-
+export * from './models/modal';
export * from './models/button';
export * from './models/filter-properties-assignment-data'
export * from './models/properties-inputs/input-be-model'
diff --git a/catalog-ui/src/app/models/app-config.ts b/catalog-ui/src/app/models/app-config.ts
index ef6c195731..40eb18b8b4 100644
--- a/catalog-ui/src/app/models/app-config.ts
+++ b/catalog-ui/src/app/models/app-config.ts
@@ -54,10 +54,7 @@ export interface IApi {
GET_activity_log:string;
GET_configuration_ui:string;
GET_service:string;
- PUT_product:string;
- GET_product:string;
GET_ecomp_menu_items:string;
- GET_product_validate_name:string;
GET_service_validate_name:string;
GET_service_distributions:string;
GET_service_distributions_components:string;
@@ -85,13 +82,6 @@ export interface IApi {
GET_onboarding:string;
GET_component_from_csar_uuid:string;
kibana:string;
-
- //Added by Ikram -- starts
- GET_product_category:string;
- GET_product_category_temp:string;
- GET_product_sub_category:string;
- //Added by Ikram -- ends
-
}
export interface ILogConfig {
@@ -132,8 +122,6 @@ export interface IConfigRoles {
TESTER:IConfigRole;
OPS:IConfigRole;
GOVERNOR:IConfigRole;
- PRODUCT_MANAGER:IConfigRole;
- PRODUCT_STRATEGIST:IConfigRole;
}
export interface IConfigRole {
diff --git a/catalog-ui/src/app/models/categories.ts b/catalog-ui/src/app/models/categories.ts
index b46c3a6612..0921ca158b 100644
--- a/catalog-ui/src/app/models/categories.ts
+++ b/catalog-ui/src/app/models/categories.ts
@@ -25,6 +25,5 @@ import {IMainCategory} from "./category";
export class Categories {
resourceCategories:Array<IMainCategory>;
- productCategories:Array<IMainCategory>;
serviceCategories:Array<IMainCategory>;
}
diff --git a/catalog-ui/src/app/models/component-metadata.ts b/catalog-ui/src/app/models/component-metadata.ts
index 2501f0bab5..8c6ed5593d 100644
--- a/catalog-ui/src/app/models/component-metadata.ts
+++ b/catalog-ui/src/app/models/component-metadata.ts
@@ -56,12 +56,15 @@ export class ComponentMetadata {
public vendorName:string;
public vendorRelease:string;
public derivedFrom: Array<string>;
+ public resourceVendorModelNumber:string;
//Service only
public projectCode:string;
public distributionStatus:string;
public ecompGeneratedNaming: boolean;
public namingPolicy: string;
+ public serviceType:string;
+ public serviceRole:string;
//backend lifecycleState
@@ -103,6 +106,9 @@ export class ComponentMetadata {
this.ecompGeneratedNaming = response.ecompGeneratedNaming;
this.namingPolicy = response.namingPolicy;
this.derivedFrom = response.derivedFrom;
+ this.resourceVendorModelNumber = response.resourceVendorModelNumber;
+ this.serviceType = response.serviceType;
+ this.serviceRole = response.serviceRole;
return this;
}
diff --git a/catalog-ui/src/app/models/components/component.ts b/catalog-ui/src/app/models/components/component.ts
index 0c47cc4cb2..53e8f05cbe 100644
--- a/catalog-ui/src/app/models/components/component.ts
+++ b/catalog-ui/src/app/models/components/component.ts
@@ -22,7 +22,7 @@
import {AsdcComment, ArtifactModel, ArtifactGroupModel, IFileDownload, PropertyModel, PropertiesGroup, AttributeModel, AttributesGroup, ComponentInstance,
InputModel, DisplayModule, Module, IValidate, RelationshipModel, IMainCategory, RequirementsGroup, CapabilitiesGroup, AdditionalInformationModel,
- Resource, IAppMenu, Product, Service} from "../../models";
+ Resource, IAppMenu, Service} from "../../models";
import {IComponentService} from "../../services/components/component-service";
import {CommonUtils} from "../../utils/common-utils";
@@ -92,7 +92,6 @@ export interface IComponent {
getComponentSubType():string;
isAlreadyCertified():boolean;
- isProduct():boolean;
isService():boolean;
isResource():boolean;
isComplex():boolean;
@@ -797,10 +796,6 @@ export abstract class Component implements IComponent {
//------------------------------------------ Help Functions ----------------------------------------------------------------//
- public isProduct = ():boolean => {
- return this instanceof Product;
- };
-
public isService = ():boolean => {
return this instanceof Service;
};
@@ -928,16 +923,17 @@ export abstract class Component implements IComponent {
}
public toJSON = ():any => {
- this.componentService = undefined;
- this.filterTerm = undefined;
- this.iconSprite = undefined;
- this.mainCategory = undefined;
- this.subCategory = undefined;
- this.selectedInstance = undefined;
- this.showMenu = undefined;
- this.$q = undefined;
- this.selectedCategory = undefined;
- return this;
+ let temp = angular.copy(this);
+ temp.componentService = undefined;
+ temp.filterTerm = undefined;
+ temp.iconSprite = undefined;
+ temp.mainCategory = undefined;
+ temp.subCategory = undefined;
+ temp.selectedInstance = undefined;
+ temp.showMenu = undefined;
+ temp.$q = undefined;
+ temp.selectedCategory = undefined;
+ return temp;
};
}
diff --git a/catalog-ui/src/app/models/components/displayComponent.ts b/catalog-ui/src/app/models/components/displayComponent.ts
index a5407e6d17..3a9cbfdaf3 100644
--- a/catalog-ui/src/app/models/components/displayComponent.ts
+++ b/catalog-ui/src/app/models/components/displayComponent.ts
@@ -97,9 +97,6 @@ export class LeftPaletteComponent {
case ComponentType.SERVICE:
this.iconClass = "sprite-services-icons " + icon;
break;
- case ComponentType.PRODUCT:
- this.iconClass = "sprite-product-icons " + icon;
- break;
default:
this.iconClass = "sprite-resource-icons " + icon;
}
diff --git a/catalog-ui/src/app/models/components/product.ts b/catalog-ui/src/app/models/components/product.ts
deleted file mode 100644
index dfb429b971..0000000000
--- a/catalog-ui/src/app/models/components/product.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Created by obarda on 2/4/2016.
- */
-'use strict';
-import {Component} from "./component";
-import {IProductService} from "../../services/components/product-service";
-import {IGroup, ISubCategory, IMainCategory, ICategoryBase} from "../category";
-import {ComponentMetadata} from "../component-metadata";
-
-export class Product extends Component {
-
- public contacts:Array<string>;
- public componentService:IProductService;
- public fullName:string;
-
- constructor(componentService:IProductService, $q:ng.IQService, component?:Product) {
- super(componentService, $q, component);
-
- if (component) {
- this.fullName = component.fullName;
- this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version;
- this.contacts = component.contacts;
- }
- this.componentService = componentService;
- this.iconSprite = "sprite-product-icons";
- }
-
- public deleteGroup = (uniqueId:string):void => {
- _.forEach(this.categories, (category:IMainCategory) => {
- _.forEach(category.subcategories, (subcategory:ISubCategory) => {
- subcategory.groupings = _.reject(subcategory.groupings, (group:IGroup) => {
- return group.uniqueId === uniqueId;
- });
- if (subcategory.groupings.length == 0) { // if there is no groups, delete the subcategory
- category.subcategories = _.reject(category.subcategories, (subcategoryObj:ISubCategory) => {
- return subcategoryObj.uniqueId === subcategory.uniqueId;
- });
- if (category.subcategories.length == 0) { // if there is no subcategory, delete the category
- this.categories = _.reject(this.categories, (categoryObj:IMainCategory) => {
- return categoryObj.uniqueId === category.uniqueId;
- });
- }
- }
- });
- });
- };
-
- private getCategoryObjectById = (categoriesArray:Array<ICategoryBase>, categoryUniqueId:string):ICategoryBase => {
- let categorySelected = _.find(categoriesArray, (category) => {
- return category.uniqueId === categoryUniqueId;
- });
- return categorySelected;
- };
-
- public addGroup = (category:IMainCategory, subcategory:ISubCategory, group:IGroup):void => {
- if (!this.categories) {
- this.categories = new Array<IMainCategory>();
- }
- let existingCategory:IMainCategory = <IMainCategory>this.getCategoryObjectById(this.categories, category.uniqueId);
- let newGroup = angular.copy(group);
- newGroup.filterTerms = undefined;
- newGroup.isDisabled = undefined;
- if (!existingCategory) {
- let newCategory:IMainCategory = angular.copy(category);
- newCategory.filteredGroup = undefined;
- newCategory.subcategories = [];
- let newSubcategory:ISubCategory = angular.copy(subcategory);
- newSubcategory.groupings = [];
- newSubcategory.groupings.push(newGroup);
- newCategory.subcategories.push(newSubcategory);
- this.categories.push(newCategory);
- }
- else {
- let existingSubcategory:ISubCategory = <ISubCategory> this.getCategoryObjectById(existingCategory.subcategories, subcategory.uniqueId);
- if (!existingSubcategory) {
- let newSubcategory:ISubCategory = angular.copy(subcategory);
- newSubcategory.groupings = [];
- newSubcategory.groupings.push(newGroup);
- existingCategory.subcategories.push(newSubcategory);
-
- } else {
- let existingGroup:IGroup = <IGroup> this.getCategoryObjectById(existingSubcategory.groupings, group.uniqueId);
- if (!existingGroup) {
- existingSubcategory.groupings.push(newGroup);
- }
- }
- }
- };
-
- getTypeUrl():string {
- return 'products/';
- }
-
- public setComponentMetadata(componentMetadata:ComponentMetadata) {
- super.setComponentMetadata(componentMetadata);
- this.setComponentDisplayData();
- };
-
- setComponentDisplayData():void {
- this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version;
- this.iconSprite = "sprite-product-icons";
- }
-}
-
-
diff --git a/catalog-ui/src/app/models/components/resource.ts b/catalog-ui/src/app/models/components/resource.ts
index 9f7a123486..cd839786c5 100644
--- a/catalog-ui/src/app/models/components/resource.ts
+++ b/catalog-ui/src/app/models/components/resource.ts
@@ -41,6 +41,7 @@ export class Resource extends Component {
public payloadData:string;
public payloadName:string;
public importedFile:FileUploadModel;
+ public resourceVendorModelNumber:string;
// Onboarding parameters
public csarUUID:string;
@@ -59,6 +60,7 @@ export class Resource extends Component {
this.resourceType = component.resourceType;
this.csarUUID = component.csarUUID;
this.csarVersion = component.csarVersion;
+ this.resourceVendorModelNumber = component.resourceVendorModelNumber;
this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version + ' ' + this.resourceType;
if (component.categories && component.categories[0] && component.categories[0].subcategories && component.categories[0].subcategories[0]) {
component.mainCategory = component.categories[0].name;
@@ -80,6 +82,7 @@ export class Resource extends Component {
this.csarUUID = componentMetadata.csarUUID;
this.csarVersion = componentMetadata.csarVersion;
this.derivedFrom = componentMetadata.derivedFrom;
+ this.resourceVendorModelNumber = componentMetadata.resourceVendorModelNumber;
this.setComponentDisplayData();
};
@@ -88,7 +91,7 @@ export class Resource extends Component {
};
public isComplex = ():boolean => {
- return this.resourceType === ResourceType.VF;
+ return this.resourceType === ResourceType.VF || this.resourceType === ResourceType.PNF || this.resourceType === ResourceType.CVFC;
};
public isVl = ():boolean => {
@@ -160,17 +163,18 @@ export class Resource extends Component {
};
public toJSON = ():any => {
- this.componentService = undefined;
- this.filterTerm = undefined;
- this.iconSprite = undefined;
- this.mainCategory = undefined;
- this.subCategory = undefined;
- this.selectedInstance = undefined;
- this.showMenu = undefined;
- this.$q = undefined;
- this.selectedCategory = undefined;
- this.importedFile = undefined;
- return this;
+ let temp = angular.copy(this);
+ temp.componentService = undefined;
+ temp.filterTerm = undefined;
+ temp.iconSprite = undefined;
+ temp.mainCategory = undefined;
+ temp.subCategory = undefined;
+ temp.selectedInstance = undefined;
+ temp.showMenu = undefined;
+ temp.$q = undefined;
+ temp.selectedCategory = undefined;
+ temp.importedFile = undefined;
+ return temp;
};
}
diff --git a/catalog-ui/src/app/models/components/service.ts b/catalog-ui/src/app/models/components/service.ts
index fbe32519c3..90a38e895b 100644
--- a/catalog-ui/src/app/models/components/service.ts
+++ b/catalog-ui/src/app/models/components/service.ts
@@ -34,6 +34,8 @@ export class Service extends Component {
public componentService:IServiceService;
public ecompGeneratedNaming:boolean;
public namingPolicy:string;
+ public serviceType:string;
+ public serviceRole:string;
constructor(componentService:IServiceService, $q:ng.IQService, component?:Service) {
super(componentService, $q, component);
@@ -43,6 +45,8 @@ export class Service extends Component {
this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version;
this.ecompGeneratedNaming = component.ecompGeneratedNaming;
this.namingPolicy = component.namingPolicy;
+ this.serviceType = component.serviceType;
+ this.serviceRole = component.serviceRole;
if (component.categories && component.categories[0]) {
this.mainCategory = component.categories[0].name;
this.selectedCategory = this.mainCategory;
@@ -155,6 +159,8 @@ export class Service extends Component {
super.setComponentMetadata(componentMetadata);
this.ecompGeneratedNaming = componentMetadata.ecompGeneratedNaming;
this.namingPolicy = componentMetadata.namingPolicy;
+ this.serviceType = componentMetadata.serviceType;
+ this.serviceRole = componentMetadata.serviceRole;
this.setComponentDisplayData();
}
diff --git a/catalog-ui/src/app/models/componentsInstances/componentInstance.ts b/catalog-ui/src/app/models/componentsInstances/componentInstance.ts
index 726e3382ba..06939a7a9e 100644
--- a/catalog-ui/src/app/models/componentsInstances/componentInstance.ts
+++ b/catalog-ui/src/app/models/componentsInstances/componentInstance.ts
@@ -52,6 +52,7 @@ export class ComponentInstance {
public inputs:Array<InputModel>;
public properties:Array<PropertyModel>;
public groupInstances:Array<Module>;
+ public invariantName:string;
constructor(componentInstance?:ComponentInstance) {
@@ -77,6 +78,7 @@ export class ComponentInstance {
this.customizationUUID = componentInstance.customizationUUID;
this.updatePosition(componentInstance.posX, componentInstance.posY);
this.groupInstances = componentInstance.groupInstances;
+ this.invariantName = componentInstance.invariantName;
}
}
@@ -92,7 +94,7 @@ export class ComponentInstance {
};
public isComplex = () : boolean => {
- return this.originType === ResourceType.VF;
+ return this.originType === ResourceType.VF || this.originType === ResourceType.PNF || this.originType === ResourceType.CVFC ;
}
public setInstanceRC = ():void=> {
diff --git a/catalog-ui/src/app/models/modal.ts b/catalog-ui/src/app/models/modal.ts
new file mode 100644
index 0000000000..51aa5e19a7
--- /dev/null
+++ b/catalog-ui/src/app/models/modal.ts
@@ -0,0 +1,16 @@
+import { ButtonModel } from 'app/models';
+
+export class ModalModel {
+ size: string; 'xl|l|md|sm|xsm'
+ title: string;
+ content: any;
+ buttons: Array<ButtonModel>;
+
+ constructor(size?: string, title?: string, content?: any, buttons?: Array<ButtonModel>) {
+ this.size = size;
+ this.title = title;
+ this.content = content;
+ this.buttons = buttons;
+ }
+}
+
diff --git a/catalog-ui/src/app/models/properties-inputs/input-fe-model.ts b/catalog-ui/src/app/models/properties-inputs/input-fe-model.ts
index 04a224bff7..630374aac3 100644
--- a/catalog-ui/src/app/models/properties-inputs/input-fe-model.ts
+++ b/catalog-ui/src/app/models/properties-inputs/input-fe-model.ts
@@ -40,4 +40,4 @@ export class InputFEModel extends InputBEModel {
}
}
-}
+} \ No newline at end of file
diff --git a/catalog-ui/src/app/models/properties-inputs/property-fe-model.ts b/catalog-ui/src/app/models/properties-inputs/property-fe-model.ts
index 78d01d9af2..b35bb27b65 100644
--- a/catalog-ui/src/app/models/properties-inputs/property-fe-model.ts
+++ b/catalog-ui/src/app/models/properties-inputs/property-fe-model.ts
@@ -55,7 +55,7 @@ export class PropertyFEModel extends PropertyBEModel {
} catch (e){}
}
- return (this.derivedDataType == DerivedPropertyType.SIMPLE) ? this.valueObj : JSON.stringify(this.valueObj);
+ return (this.derivedDataType == DerivedPropertyType.SIMPLE) ? this.valueObj : JSON.stringify(this.valueObj);
}
public setNonDeclared = (childPath?: string): void => {
@@ -101,16 +101,16 @@ export class PropertyFEModel extends PropertyBEModel {
// this.flattenedChildren.filter(prop => prop.parentName == item.parentName).map(prop => prop.propertiesName).indexOf(item.propertiesName)
// }
- /* Updates parent valueObj when a child prop's value has changed */
- public childPropUpdated = (childProp: DerivedFEProperty): void => {
+ /* Updates parent valueObj when a child prop's value has changed */
+ public childPropUpdated = (childProp: DerivedFEProperty): void => {
let parentNames = this.getParentNamesArray(childProp.propertiesName, []);
if (parentNames.length) {
_.set(this.valueObj, parentNames.join('.'), childProp.valueObj);
}
};
- /* Returns array of individual parents for given prop path, with list/map UUIDs replaced with index/mapkey */
- private getParentNamesArray = (parentPropName: string, parentNames?: Array<string>): Array<string> => {
+ /* Returns array of individual parents for given prop path, with list/map UUIDs replaced with index/mapkey */
+ public getParentNamesArray = (parentPropName: string, parentNames?: Array<string>): Array<string> => {
if (parentPropName.indexOf("#") == -1) { return parentNames; } //finished recursing parents. return
let parentProp: DerivedFEProperty = this.flattenedChildren.find(prop => prop.propertiesName === parentPropName);
diff --git a/catalog-ui/src/app/models/user.ts b/catalog-ui/src/app/models/user.ts
index ec42aed553..54ddf1e5f6 100644
--- a/catalog-ui/src/app/models/user.ts
+++ b/catalog-ui/src/app/models/user.ts
@@ -26,9 +26,7 @@ export enum UserRole {
DESIGNER,
TESTER,
GOVERNOR,
- OPS,
- PRODUCT_MANAGER,
- PRODUCT_STRATEGIST
+ OPS
}
export interface IUserManager {
@@ -99,12 +97,6 @@ export class User implements IUser {
case UserRole.OPS:
role = UserRole.OPS;
break;
- case UserRole.PRODUCT_MANAGER:
- role = UserRole.PRODUCT_MANAGER;
- break;
- case UserRole.PRODUCT_STRATEGIST:
- role = UserRole.PRODUCT_STRATEGIST;
- break;
}
return role;
}
diff --git a/catalog-ui/src/app/modules/service-module.ts b/catalog-ui/src/app/modules/service-module.ts
index bf9ebce749..99624ada45 100644
--- a/catalog-ui/src/app/modules/service-module.ts
+++ b/catalog-ui/src/app/modules/service-module.ts
@@ -35,7 +35,6 @@ import {DataTypesService} from "../services/data-types-service";
import {ComponentService} from "../services/components/component-service";
import {ServiceService} from "../services/components/service-service";
import {ResourceService} from "../services/components/resource-service";
-import {ProductService} from "../services/components/product-service";
import {LeftPaletteLoaderService} from "../services/components/utils/composition-left-palette-service";
import {EventListenerService} from "../services/event-listener-service";
import {ProgressService} from "../services/progress-service";
@@ -69,7 +68,6 @@ serviceModule.service('Sdc.Services.DataTypesService', DataTypesService);
serviceModule.service('Sdc.Services.Components.ComponentService', ComponentService);
serviceModule.service('Sdc.Services.Components.ServiceService',ServiceService);
serviceModule.service('Sdc.Services.Components.ResourceService', ResourceService);
-serviceModule.service('Sdc.Services.Components.ProductService', ProductService);
serviceModule.service('LeftPaletteLoaderService', LeftPaletteLoaderService);
serviceModule.service('EventListenerService', EventListenerService);
serviceModule.service('Sdc.Services.ProgressService', ProgressService);
diff --git a/catalog-ui/src/app/modules/view-model-module.ts b/catalog-ui/src/app/modules/view-model-module.ts
index de7bc5ac1f..f94bfc3218 100644
--- a/catalog-ui/src/app/modules/view-model-module.ts
+++ b/catalog-ui/src/app/modules/view-model-module.ts
@@ -56,13 +56,12 @@ import {OnboardingModalViewModel} from "../view-models/modals/onboarding-modal/o
import {DistributionStatusModalViewModel} from "../view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view-model";
import {DcaeAppViewModel} from "../view-models/dcae-app/dcae-app-view-model";
import {GeneralViewModel} from "../view-models/workspace/tabs/general/general-view-model";
-import {IconsViewModel} from "../view-models/workspace/tabs/icons/icons-view-model";
+import {IconsModalViewModel} from "../view-models/modals/icons-modal/icons-modal-view";
import {DeploymentArtifactsViewModel} from "../view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model";
import {InformationArtifactsViewModel} from "../view-models/workspace/tabs/information-artifacts/information-artifacts-view-model";
import {ToscaArtifactsViewModel} from "../view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view-model";
import {PropertiesViewModel} from "../view-models/workspace/tabs/properties/properties-view-model";
import {AttributesViewModel} from "../view-models/workspace/tabs/attributes/attributes-view-model";
-import {ProductHierarchyViewModel} from "../view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model";
import {ActivityLogViewModel} from "../view-models/workspace/tabs/activity-log/activity-log";
import {ManagementWorkflowViewModel} from "../view-models/workspace/tabs/management-workflow/management-workflow-view-model";
import {NetworkCallFlowViewModel} from "../view-models/workspace/tabs/network-call-flow/network-call-flow-view-model";
@@ -114,6 +113,7 @@ viewModelModule
.controller(moduleName + '.UserManagementViewModel', UserManagementViewModel)
.controller(moduleName + '.CategoryManagementViewModel', CategoryManagementViewModel)
.controller(moduleName + '.OnboardingModalViewModel', OnboardingModalViewModel)
+ .controller(moduleName + '.IconsModalViewModel', IconsModalViewModel)
.controller(moduleName + '.DistributionStatusModalViewModel', DistributionStatusModalViewModel)
.controller(moduleName + '.DcaeAppViewModel', DcaeAppViewModel)
//
@@ -122,13 +122,11 @@ viewModelModule
.controller(moduleName + '.ConformanceLevelModalViewModel', ConformanceLevelModalViewModel)
.controller(moduleName + '.CompositionViewModel', CompositionViewModel)
.controller(moduleName + '.GeneralViewModel', GeneralViewModel)
- .controller(moduleName + '.IconsViewModel', IconsViewModel)
.controller(moduleName + '.DeploymentArtifactsViewModel', DeploymentArtifactsViewModel)
.controller(moduleName + '.InformationArtifactsViewModel', InformationArtifactsViewModel)
.controller(moduleName + '.ToscaArtifactsViewModel', ToscaArtifactsViewModel)
.controller(moduleName + '.PropertiesViewModel', PropertiesViewModel)
.controller(moduleName + '.AttributesViewModel', AttributesViewModel)
- .controller(moduleName + '.ProductHierarchyViewModel', ProductHierarchyViewModel)
.controller(moduleName + '.ActivityLogViewModel', ActivityLogViewModel)
.controller(moduleName + '.ManagementWorkflowViewModel', ManagementWorkflowViewModel)
.controller(moduleName + '.NetworkCallFlowViewModel', NetworkCallFlowViewModel)
diff --git a/catalog-ui/src/app/ng2/app.component.ts b/catalog-ui/src/app/ng2/app.component.ts
index 58f483ae11..cb10581c93 100644
--- a/catalog-ui/src/app/ng2/app.component.ts
+++ b/catalog-ui/src/app/ng2/app.component.ts
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-import { Component, Inject } from '@angular/core';
+import { Component, Inject, ViewContainerRef } from '@angular/core';
import { AuthenticationService } from './services/authentication.service';
@Component({
@@ -28,7 +28,7 @@ import { AuthenticationService } from './services/authentication.service';
})
export class AppComponent {
- constructor(auth:AuthenticationService){
+ constructor(auth:AuthenticationService, public viewContainerRef:ViewContainerRef){
}
diff --git a/catalog-ui/src/app/ng2/app.module.ts b/catalog-ui/src/app/ng2/app.module.ts
index 09b40e920f..57adb8fd66 100644
--- a/catalog-ui/src/app/ng2/app.module.ts
+++ b/catalog-ui/src/app/ng2/app.module.ts
@@ -40,6 +40,8 @@ import {ComponentInstanceServiceNg2} from "./services/component-instance-service
import { InterceptorService } from 'ng2-interceptors';
import { XHRBackend, RequestOptions } from '@angular/http';
import {HttpInterceptor} from "./services/http.interceptor.service";
+import { SearchBarComponent } from './shared/search-bar/search-bar.component';
+import { SearchWithAutoCompleteComponent } from './shared/search-with-autocomplete/search-with-autocomplete.component';
export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
@@ -60,7 +62,9 @@ export function interceptorFactory(xhrBackend: XHRBackend, requestOptions: Reque
@NgModule({
declarations: [
- AppComponent
+ AppComponent,
+ SearchBarComponent,
+ SearchWithAutoCompleteComponent
],
imports: [
BrowserModule,
@@ -70,7 +74,7 @@ export function interceptorFactory(xhrBackend: XHRBackend, requestOptions: Reque
PropertiesAssignmentModule
],
exports: [],
- entryComponents: [],
+ entryComponents: [SearchWithAutoCompleteComponent],
providers: [
DataTypesServiceProvider,
SharingServiceProvider,
diff --git a/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.html b/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.html
deleted file mode 100644
index 7fdd95b304..0000000000
--- a/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<modal #confirmationModal title="Delete Input" size="sm" [buttons]="footerButtons">
- Are you sure you want to delete this input?
-</modal>
diff --git a/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.ts b/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.ts
deleted file mode 100644
index f73692f525..0000000000
--- a/catalog-ui/src/app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Created by rc2122 on 6/1/2017.
- */
-import {Component, Output, EventEmitter, ViewChild} from "@angular/core";
-import {ButtonsModelMap, ButtonModel} from "app/models/button";
-import {ModalComponent} from "app/ng2/components/modal/modal.component";
-
-@Component({
- selector: 'confirm-delete-input',
- templateUrl: './confirmation-delete-input.component.html'
-})
-export class ConfirmationDeleteInputComponent {
-
- @Output() deleteInput: EventEmitter<any> = new EventEmitter<any>();
- @ViewChild ('confirmationModal') confirmationModal:ModalComponent;
- footerButtons:ButtonsModelMap = {};
-
- constructor (){
- }
-
- ngOnInit() {
- this.footerButtons['Delete'] = new ButtonModel('Delete', 'blue', this.onDeleteInput);
- this.footerButtons['Close'] = new ButtonModel('Close', 'grey', this.closeModal);
- }
-
- onDeleteInput = (input) => {
- this.deleteInput.emit(input);
- this.closeModal();
- };
-
- openModal = () => {
- this.confirmationModal.open();
- }
-
- closeModal = () => {
- this.confirmationModal.close();
- }
-}
diff --git a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.html b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.html
index 331415c26f..38de3ce649 100644
--- a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.html
+++ b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.html
@@ -45,6 +45,5 @@
</div>
</div>
</div>
-<confirm-delete-input #deleteInputConfirmation (deleteInput)="onDeleteInput()"></confirm-delete-input>
diff --git a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.less b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.less
index 05378f0eb9..89c7287449 100644
--- a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.less
+++ b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.less
@@ -85,7 +85,7 @@
border-right:#d2d2d2 solid 1px;
}
&.col1 {
- flex: 0 0 300px;
+ flex: 1 0 200px;
max-width:300px;
display: flex;
justify-content: space-between;
diff --git a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.ts b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.ts
index 526f5de360..30cdb89d8e 100644
--- a/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.ts
+++ b/catalog-ui/src/app/ng2/components/inputs-table/inputs-table.component.ts
@@ -23,7 +23,9 @@
*/
import {Component, Input, Output, EventEmitter, ViewChild} from "@angular/core";
import {InputFEModel} from "app/models";
-import {ConfirmationDeleteInputComponent} from "./confirmation-delete-input/confirmation-delete-input.component";
+import { ModalService } from 'app/ng2/services/modal.service';
+
+
@Component({
selector: 'inputs-table',
@@ -38,11 +40,10 @@ export class InputsTableComponent {
@Input() isLoading:boolean;
@Output() inputValueChanged: EventEmitter<any> = new EventEmitter<any>();
@Output() deleteInput: EventEmitter<any> = new EventEmitter<any>();
- @ViewChild ('deleteInputConfirmation') deleteInputConfirmation:ConfirmationDeleteInputComponent;
selectedInputToDelete:InputFEModel;
- constructor (){
+ constructor(private modalService: ModalService){
}
onInputValueChanged = (input) => {
@@ -51,11 +52,12 @@ export class InputsTableComponent {
onDeleteInput = () => {
this.deleteInput.emit(this.selectedInputToDelete);
+ this.modalService.closeCurrentModal();
};
openDeleteModal = (input:InputFEModel) => {
this.selectedInputToDelete = input;
- this.deleteInputConfirmation.openModal();
+ this.modalService.openActionModal("Delete Input", "Are you sure you want to delete this input?", "Delete", this.onDeleteInput, "Close");
}
}
diff --git a/catalog-ui/src/app/ng2/components/modal/modal.component.html b/catalog-ui/src/app/ng2/components/modal/modal.component.html
index 4882449596..cc411bc751 100644
--- a/catalog-ui/src/app/ng2/components/modal/modal.component.html
+++ b/catalog-ui/src/app/ng2/components/modal/modal.component.html
@@ -1,17 +1,15 @@
-<div class="custom-modal {{size}}">
+<div class="custom-modal {{input.size}}">
<div class="ng2-modal-content">
<div class="ng2-modal-header">
- <span class="title">{{ title }}</span>
+ <span class="title">{{ input.title }}</span>
<span class="close-button" (click)="close()"></span>
</div>
- <div class="ng2-modal-body">
- <ng-content></ng-content>
- </div>
+ <div class="ng2-modal-body" >{{input.content}}</div>
<div class="ng2-modal-footer">
- <button *ngFor="let buttonName of buttonsNames"
- class="tlv-btn {{buttons[buttonName].cssClass}}"
- [disabled] = "buttons[buttonName].getDisabled && buttons[buttonName].getDisabled()"
- (click) = "buttons[buttonName].callback()">{{buttons[buttonName].text}}</button>
+ <button *ngFor="let button of input.buttons"
+ class="tlv-btn {{button.cssClass}}"
+ [disabled] = "button.getDisabled && button.getDisabled()"
+ (click) = "button.callback()">{{button.text}}</button>
</div>
</div>
</div>
diff --git a/catalog-ui/src/app/ng2/components/modal/modal.component.ts b/catalog-ui/src/app/ng2/components/modal/modal.component.ts
index e432a6fde0..09fb9abdd1 100644
--- a/catalog-ui/src/app/ng2/components/modal/modal.component.ts
+++ b/catalog-ui/src/app/ng2/components/modal/modal.component.ts
@@ -22,8 +22,9 @@
* Created by rc2122 on 6/1/2017.
*/
import { Component, ElementRef, Input, OnInit, OnDestroy } from '@angular/core';
+//import {ViewContainerRef, ViewChild} from '@angular/core';
import * as $ from 'jquery';
-import {ButtonsModelMap} from "app/models/button";
+import { ButtonsModelMap, ModalModel } from 'app/models';
@Component({
selector: 'modal',
@@ -32,22 +33,17 @@ import {ButtonsModelMap} from "app/models/button";
})
export class ModalComponent implements OnInit, OnDestroy {
- @Input() size: string; 'xl|l|md|sm|xsm'
- @Input() title: string;
- @Input() public buttons:ButtonsModelMap;
+ @Input() input: ModalModel;
private modalElement: JQuery;
- private buttonsNames:Array<string>;
+ //@ViewChild('modalBody', { read: ViewContainerRef }) modalContainer: ViewContainerRef; //TODO: allow for custom component as body instead of simple message
+
constructor( el: ElementRef ) {
this.modalElement = $(el.nativeElement);
}
ngOnInit(): void {
- let modal = this;
this.modalElement.appendTo('body');
- if(this.buttons){
- this.buttonsNames = Object.keys(this.buttons);
- }
}
ngOnDestroy(): void {
diff --git a/catalog-ui/src/app/ng2/components/modal/modal.module.ts b/catalog-ui/src/app/ng2/components/modal/modal.module.ts
new file mode 100644
index 0000000000..d77be2cd23
--- /dev/null
+++ b/catalog-ui/src/app/ng2/components/modal/modal.module.ts
@@ -0,0 +1,19 @@
+import { NgModule } from "@angular/core";
+import { CommonModule } from '@angular/common';
+import { ModalService } from 'app/ng2/services/modal.service';
+import { ModalComponent } from "app/ng2/components/modal/modal.component"
+
+@NgModule({
+ declarations: [
+ ModalComponent,
+ ],
+ imports: [CommonModule],
+ exports: [],
+ entryComponents: [
+ ModalComponent
+ ],
+ providers: [ModalService]
+})
+export class ModalModule {
+
+} \ No newline at end of file
diff --git a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.html b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.html
index 92948b3b0d..95cc79dce9 100644
--- a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.html
+++ b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.html
@@ -5,12 +5,12 @@
<!-- LEFT CELL -->
<ng-container *ngIf="!isPropertyFEModel">
<div class="table-cell" *ngIf="canBeDeclared" [ngClass]="{'filtered':property.name === propertyNameSearchText}" [class.round-checkbox]="property.isDeclared"> <!-- simple children of complex type [@checkEffect]="property.isDeclared"-->
- <checkbox [(checked)]="property.isSelected" [disabled]="property.isDisabled ||property.isDeclared || readonly" (checkedChange)="checkProperty.emit(property.propertiesName)" ></checkbox>
+ <checkbox [(checked)]="property.isSelected" [disabled]="property.isDisabled ||property.isDeclared || readonly" (checkedChange)="checkProperty.emit(property.propertiesName)" ></checkbox>
<div class="inner-cell-div" tooltip="{{property.name}}"><span>{{property.name}}</span></div>
</div>
<div class="table-cell" *ngIf="!canBeDeclared && !property.isChildOfListOrMap">{{property.name}}</div> <!-- simple children of complex type within map or list -->
<div class="table-cell map-entry" *ngIf="property.isChildOfListOrMap && propType == derivedPropertyTypes.MAP"><!-- map left cell -->
- <input [value]="property.mapKey" #mapKey (change)="mapKeyChanged.emit(mapKey.value)" [readonly]="readonly" type="text" [ngClass]="{'disabled':readonly}" />
+ <input [value]="property.mapKey" #mapKey (change)="mapKeyChanged.emit(mapKey)" [readonly]="readonly" type="text" [ngClass]="{'disabled':readonly, 'error':!mapKey.validity.valid}" />
</div>
</ng-container>
<!-- RIGHT CELL OR FULL WIDTH CELL-->
@@ -36,7 +36,7 @@
</ng-container>
<!-- ICONS: add, delete, and expand -->
<ng-container *ngIf="!property.isDeclared">
- <a *ngIf="(propType == derivedPropertyTypes.LIST || propType == derivedPropertyTypes.MAP) && !property.isChildOfListOrMap" class="property-icon add-item" (click)="createNewChildProperty();" [ngClass]="{'disabled':readonly}">Add value to list</a>
+ <a *ngIf="(propType == derivedPropertyTypes.LIST || propType == derivedPropertyTypes.MAP) && !property.isChildOfListOrMap" class="property-icon add-item" (click)="createNewChildProperty();" [ngClass]="{'disabled':readonly || preventInsertItem(property)}">Add value to list</a>
<span *ngIf="property.isChildOfListOrMap" (click)="deleteItem.emit(property);" class="property-icon sprite-new delete-item-icon" [ngClass]="{'disabled':readonly}"></span>
<span *ngIf="!isPropertyFEModel && (propType == derivedPropertyTypes.COMPLEX || ((propType == derivedPropertyTypes.LIST || propType == derivedPropertyTypes.MAP) && hasChildren()))" (click)="expandChildById(propPath)" class="property-icon sprite-new round-expand-icon" [class.open]="expandedChildId.indexOf(propPath) == 0"></span>
</ng-container>
diff --git a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.less b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.less
index 4da98ec736..48d3d035d0 100644
--- a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.less
+++ b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.less
@@ -1,3 +1,4 @@
+@import '../../../../../assets/styles/variables.less';
.flat-children-container {
.dynamic-property-row {
/*create nested left border classes for up to 10 levels of nesting*/
@@ -64,4 +65,10 @@
overflow: hidden;
display: inline;
padding-left: 8px;
-} \ No newline at end of file
+}
+.error {
+ border: solid 1px @func_color_q;
+ color: @func_color_q;
+ outline: none;
+ box-sizing: border-box;
+}
diff --git a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.ts b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.ts
index e078b74d65..59811b582d 100644
--- a/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.ts
+++ b/catalog-ui/src/app/ng2/components/properties-table/dynamic-property/dynamic-property.component.ts
@@ -88,7 +88,7 @@ export class DynamicPropertyComponent {
}
createNewChildProperty = (): void => {
-
+
let newProps: Array<DerivedFEProperty> = this.propertiesUtils.createListOrMapChildren(this.property, "", undefined);
if (this.property instanceof PropertyFEModel) {
this.addChildProps(newProps, this.property.name);
@@ -98,11 +98,22 @@ export class DynamicPropertyComponent {
}
addChildProps = (newProps: Array<DerivedFEProperty>, childPropName: string) => {
-
+
if (this.property instanceof PropertyFEModel) {
- let insertIndex: number = this.property.getIndexOfChild(childPropName) + this.property.getCountOfChildren(childPropName); //insert after parent prop and existing children
- this.property.flattenedChildren.splice(insertIndex, 0, ...newProps); //using ES6 spread operator
+ let insertIndex: number = this.property.getIndexOfChild(childPropName) + this.property.getCountOfChildren(childPropName); //insert after parent prop and existing children
+ this.property.flattenedChildren.splice(insertIndex, 0, ...newProps); //using ES6 spread operator
this.expandChildById(newProps[0].propertiesName);
+
+
+ if(!newProps[0].schema.property.isSimpleType){
+ angular.forEach(newProps, (prop:DerivedFEProperty):void => { //Update parent PropertyFEModel with value for each child, including nested props
+ (<PropertyFEModel>this.property).childPropUpdated(prop);
+ },this);
+ //grab the cumulative value for the new item from parent PropertyFEModel and assign that value to DerivedFEProp[0] (which is the list or map parent with UUID of the set we just added)
+ let parentNames = (<PropertyFEModel>this.property).getParentNamesArray(newProps[0].propertiesName, []);
+ newProps[0].valueObj = _.get(this.property.valueObj, parentNames.join('.'));
+ this.valueChanged.emit(this.property.name);
+ }
}
}
@@ -113,7 +124,7 @@ export class DynamicPropertyComponent {
this.dataTypeService.checkForCustomBehavior(this.property);
this.valueChanged.emit(this.property.name);
}
- }
+ }
deleteListOrMapItem = (item: DerivedFEProperty) => {
if (this.property instanceof PropertyFEModel) {
@@ -123,15 +134,22 @@ export class DynamicPropertyComponent {
}
}
- removeValueFromParent = (item: DerivedFEProperty, replaceKey?: string) => {
+ removeValueFromParent = (item: DerivedFEProperty, target?: any) => {
if (this.property instanceof PropertyFEModel) {
let itemParent = (item.parentName == this.property.name) ? this.property : this.property.flattenedChildren.find(prop => prop.propertiesName == item.parentName);
if (item.derivedDataType == DerivedPropertyType.MAP) {
let oldKey = item.mapKey;
- if (typeof replaceKey == 'string') { //allow saving empty string
- _.set(itemParent.valueObj, replaceKey, itemParent.valueObj[oldKey]);
- item.mapKey = replaceKey;
+ if (target && typeof target.value == 'string') { //allow saving empty string
+ let replaceKey:string = target.value;
+ if(Object.keys(itemParent.valueObj).indexOf(replaceKey) > -1){//the key is exists
+ target.setCustomValidity('This key is already exists.');
+ return;
+ }else {
+ target.setCustomValidity('');
+ _.set(itemParent.valueObj, replaceKey, itemParent.valueObj[oldKey]);
+ item.mapKey = replaceKey;
+ }
}
delete itemParent.valueObj[oldKey];
} else {
@@ -147,4 +165,11 @@ export class DynamicPropertyComponent {
}
}
+ preventInsertItem = (property:DerivedFEProperty):boolean => {
+ if(property.type == PROPERTY_TYPES.MAP && Object.keys(property.valueObj).indexOf('') > -1 ){
+ return true;
+ }
+ return false;
+ }
+
}
diff --git a/catalog-ui/src/app/ng2/components/properties-table/properties-table.component.less b/catalog-ui/src/app/ng2/components/properties-table/properties-table.component.less
index 3eb7e960ab..9ede84faff 100644
--- a/catalog-ui/src/app/ng2/components/properties-table/properties-table.component.less
+++ b/catalog-ui/src/app/ng2/components/properties-table/properties-table.component.less
@@ -91,7 +91,7 @@
border-right:#d2d2d2 solid 1px;
}
&.col1 {
- flex: 0 0 300px;
+ flex: 1 0 210px;
max-width:300px;
display: flex;
justify-content: space-between;
@@ -100,7 +100,7 @@
.property-name {
flex: 1;
display: flex;
- max-width: 270px;
+ max-width: 90%;
}
.property-description-icon {
@@ -123,7 +123,7 @@
}
&.valueCol {
- flex: 1 0 350px;
+ flex: 2 0 300px;
display: flex;
@media @smaller-screen { flex: 1 0 40%;}
}
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.module.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.module.ts
index 1e09c9e4c6..3a5daba711 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.module.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.module.ts
@@ -37,14 +37,13 @@ import { HierarchyNavService } from './../../services/hierarchy-nav.service';
import { PropertiesUtils } from './properties.utils';
import { DynamicElementModule } from 'app/ng2/components/dynamic-element/dynamic-element.module';
import { DynamicPropertyComponent } from './../../components/properties-table/dynamic-property/dynamic-property.component';
-import {ConfirmationDeleteInputComponent} from "app/ng2/components/inputs-table/confirmation-delete-input/confirmation-delete-input.component"
-import { PopoverModule } from "../../components/popover/popover.module"
+import { PopoverModule } from "../../components/popover/popover.module";
+import { ModalModule } from "../../components/modal/modal.module";
import { FilterPropertiesAssignmentComponent } from "./../../components/filter-properties-assignment/filter-properties-assignment.component";
import { GroupByPipe } from 'app/ng2/pipes/groupBy.pipe';
import { KeysPipe } from 'app/ng2/pipes/keys.pipe';
import {TooltipModule} from "../../components/tooltip/tooltip.module";
import { ComponentModeService } from "app/ng2/services/component-mode.service"
-import { ModalComponent } from "app/ng2/components/modal/modal.component"
import {LoaderComponent} from "app/ng2/components/loader/loader.component"
import {HttpInterceptor} from "../../services/http.interceptor.service";
@@ -63,8 +62,6 @@ import {HttpInterceptor} from "../../services/http.interceptor.service";
// PopoverContentComponent,
// PopoverComponent,
FilterPropertiesAssignmentComponent,
- ModalComponent,
- ConfirmationDeleteInputComponent,
LoaderComponent
],
imports: [
@@ -75,7 +72,8 @@ import {HttpInterceptor} from "../../services/http.interceptor.service";
CheckboxModule,
DynamicElementModule,
PopoverModule,
- TooltipModule
+ TooltipModule,
+ ModalModule
],
entryComponents: [PropertiesAssignmentComponent],
exports: [
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.less b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.less
index ab059b1240..8151d001e8 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.less
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.less
@@ -27,7 +27,6 @@
.left-column {
flex: 1 0 500px;
position: relative;
- margin: 0 0 1em 0;
/deep/ .tabs {
width:33%;
@@ -119,7 +118,7 @@
display:flex;
flex:0 0 350px;
flex-direction:column;
- margin: 45px 0 1em 1em;
+ margin: 45px 0 0 1em;
overflow-x:auto;
/deep/ .tabs {
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
index 30ba6c0755..6782b72fa2 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/properties-assignment.page.component.ts
@@ -170,6 +170,10 @@ export class PropertiesAssignmentComponent {
});
}
+ if(resourceInstance.componentName === "vnfConfiguration") {
+ this.isReadonly = true;
+ }
+
if( this.searchPropertyName ){
this.clearSearch();
}
@@ -298,7 +302,7 @@ export class PropertiesAssignmentComponent {
angular.forEach(instancesIds, (instanceId: string): void => {
let selectedInstanceData: ResourceInstance = this.instances.find(instance => instance.uniqueId == instanceId);
- let originType: string = (selectedInstanceData) ? selectedInstanceData.originType : this.selectedInstanceType;
+ let originType: string = (selectedInstanceData) ? selectedInstanceData.originType : this.selectedInstanceType;
if (!this.isInput(originType)) {
selectedProperties[instanceId] = this.propertiesService.getCheckedProperties(this.instanceFePropertiesMap[instanceId]);
} else {
@@ -408,7 +412,7 @@ export class PropertiesAssignmentComponent {
};
private isInput = (instanceType:string):boolean =>{
- return instanceType === ResourceType.VF || instanceType === ResourceType.PNF;
+ return instanceType === ResourceType.VF || instanceType === ResourceType.PNF || instanceType === ResourceType.CVFC;
}
}
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/properties.utils.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/properties.utils.ts
index a3507feb6f..a04d23a16a 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/properties.utils.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/properties.utils.ts
@@ -56,21 +56,21 @@ export class PropertiesUtils {
if (newFEProp.getInputValues && newFEProp.getInputValues.length) { //if this prop (or any children) are declared, set isDeclared and disable checkbox on parents/children
newFEProp.getInputValues.forEach(propInputDetail => {
let inputPath = propInputDetail.inputPath;
- if (!isVF && !inputPath) { //TODO: this is a workaround until Marina adds inputPath
+ if (!inputPath) { //TODO: this is a workaround until Marina adds inputPath
let input = inputs.find(input => input.uniqueId == propInputDetail.inputId);
if (!input) { console.log("CANNOT FIND INPUT FOR " + propInputDetail.inputId); return; }
else inputPath = input.inputPath;
}
- if (isVF || inputPath == newFEProp.name) inputPath = undefined;
+ if (inputPath == newFEProp.name) inputPath = undefined; // if not complex we need to remove the inputPath from FEModel so we not look for a child
newFEProp.setAsDeclared(inputPath); //if a path is sent, its a child prop. this param is optional
this.propertiesService.disableRelatedProperties(newFEProp, inputPath);
});
- }
+ }
this.initValueObjectRef(newFEProp); //initialize valueObj.
propertyFeArray.push(newFEProp);
newFEProp.updateExpandedChildPropertyId(newFEProp.name); //display only the first level of children
this.dataTypeService.checkForCustomBehavior(newFEProp);
- }
+ }
});
instanceFePropertiesMap[instanceId] = propertyFeArray;
@@ -101,8 +101,8 @@ export class PropertiesUtils {
this.dataTypeService.getDerivedDataTypeProperties(dataTypeObj, tempProps, parentName);
return tempProps;
}
-
- /* Sets the valueObj of parent property and its children.
+
+ /* Sets the valueObj of parent property and its children.
* Note: This logic is different than assignflattenedchildrenvalues - here we merge values, there we pick either the parents value, props value, or default value - without merging.
*/
public initValueObjectRef = (property: PropertyFEModel): void => {
@@ -138,9 +138,12 @@ export class PropertiesUtils {
let propNameInObj = prop.propertiesName.substring(prop.propertiesName.indexOf(parentName) + parentName.length + 1).split('#').join('.'); //extract everything after parent name
prop.valueObj = _.get(parentValueJSON, propNameInObj, prop.value || prop.defaultValue); //assign value -first value of parent if exists. If not, prop.value if not, prop.defaultvalue
-
- if ((prop.derivedDataType == DerivedPropertyType.SIMPLE || prop.isDeclared) && typeof prop.valueObj == 'object') { //Stringify objects that should be strings
+
+ if ( prop.isDeclared && typeof prop.valueObj == 'object') { //Stringify objects of items that are declared
prop.valueObj = JSON.stringify(prop.valueObj);
+ } else if(typeof prop.valueObj == PROPERTY_TYPES.STRING
+ && (prop.type == PROPERTY_TYPES.INTEGER || prop.type == PROPERTY_TYPES.FLOAT || prop.type == PROPERTY_TYPES.BOOLEAN)){ //parse ints and non-string simple types
+ prop.valueObj = JSON.parse(prop.valueObj);
} else { //parse strings that should be objects
if (prop.derivedDataType == DerivedPropertyType.COMPLEX && typeof prop.valueObj != 'object') {
prop.valueObj = JSON.parse(prop.valueObj || '{}');
@@ -148,7 +151,7 @@ export class PropertiesUtils {
prop.valueObj = JSON.parse(prop.valueObj || '[]');
} else if (prop.derivedDataType == DerivedPropertyType.MAP && typeof prop.valueObj != 'object' && (!prop.isChildOfListOrMap || !prop.schema.property.isSimpleType)) { //dont parse values for children of map of simple
prop.valueObj = JSON.parse(prop.valueObj || '{}');
- }
+ }
if ((prop.derivedDataType == DerivedPropertyType.LIST || prop.derivedDataType == DerivedPropertyType.MAP) && typeof prop.valueObj == 'object' && Object.keys(prop.valueObj).length) {
let newProps: Array<DerivedFEProperty> = [];
Object.keys(prop.valueObj).forEach((key) => {
diff --git a/catalog-ui/src/app/ng2/services/component-services/component.service.ts b/catalog-ui/src/app/ng2/services/component-services/component.service.ts
index c6865fde9d..cd593d5e3e 100644
--- a/catalog-ui/src/app/ng2/services/component-services/component.service.ts
+++ b/catalog-ui/src/app/ng2/services/component-services/component.service.ts
@@ -59,8 +59,6 @@ export class ComponentServiceNg2 {
private getServerTypeUrl = (componentType:string):string => {
switch (componentType) {
- case ComponentType.PRODUCT:
- return ServerTypeUrl.PRODUCTS;
case ComponentType.SERVICE:
return ServerTypeUrl.SERVICES;
default:
diff --git a/catalog-ui/src/app/ng2/services/http.interceptor.service.ts b/catalog-ui/src/app/ng2/services/http.interceptor.service.ts
index e1653cf0bc..c90bfd2848 100644
--- a/catalog-ui/src/app/ng2/services/http.interceptor.service.ts
+++ b/catalog-ui/src/app/ng2/services/http.interceptor.service.ts
@@ -7,9 +7,9 @@
* 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.
@@ -21,8 +21,8 @@
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import 'rxjs/Rx';
-import { sdc2Config } from './../../../main';
-import { Interceptor, InterceptedRequest, InterceptedResponse } from 'ng2-interceptors';
+import {sdc2Config} from './../../../main';
+import {Interceptor, InterceptedRequest, InterceptedResponse} from 'ng2-interceptors';
import {SharingService} from "../../services/sharing-service";
import {ReflectiveInjector} from '@angular/core';
import {Cookie2Service} from "./cookie.service";
@@ -31,23 +31,23 @@ import {Dictionary} from "../../utils/dictionary/dictionary";
import {SEVERITY} from "../../utils/constants";
import {IServerMessageModalModel} from "../../view-models/modals/message-modal/message-server-modal/server-message-modal-view-model";
+
export class HttpInterceptor implements Interceptor {
- private cookieService: Cookie2Service;
+ private cookieService:Cookie2Service;
private sharingService:SharingService;
+
constructor() {
- let injector = ReflectiveInjector.resolveAndCreate([Cookie2Service,SharingService]);
+ let injector = ReflectiveInjector.resolveAndCreate([Cookie2Service, SharingService]);
this.cookieService = injector.get(Cookie2Service);
this.sharingService = injector.get(SharingService);
}
- public interceptBefore(request: InterceptedRequest): InterceptedRequest {
-
+ public interceptBefore(request:InterceptedRequest):InterceptedRequest {
/**
* For every request to the server, that the service id, or resource id is sent in the URL, need to pass UUID in the header.
* Check if the unique id exists in uuidMap, and if so get the UUID and add it to the header.
*/
-
request.options.headers.append(this.cookieService.getUserIdSuffix(), this.cookieService.getUserId());
request.options.withCredentials = true;
var uuidValue = this.getUuidValue(request.url);
@@ -56,7 +56,6 @@ export class HttpInterceptor implements Interceptor {
}
request.options.headers.set('X-ECOMP-RequestID', UUID.UUID());
return request;
-
}
public interceptAfter(response:InterceptedResponse):InterceptedResponse {
@@ -66,10 +65,9 @@ export class HttpInterceptor implements Interceptor {
//console.log("Error from BE:",response);
}
return response;
-
}
- private getUuidValue = (url: string) :string => {
+ private getUuidValue = (url:string):string => {
let map:Dictionary<string, string> = this.sharingService.getUuidMap();
if (map && url.indexOf(sdc2Config.api.root) > 0) {
map.forEach((key:string) => {
@@ -158,9 +156,7 @@ export class HttpInterceptor implements Interceptor {
severity: SEVERITY.ERROR
};
}
- // let modalsHandler = this.$injector.get('ModalsHandler');
- // this.modalsHandler.openServerMessageModal(data);
console.error('ERROR data',data);
}
}
diff --git a/catalog-ui/src/app/ng2/services/modal.service.ts b/catalog-ui/src/app/ng2/services/modal.service.ts
new file mode 100644
index 0000000000..32192f40c2
--- /dev/null
+++ b/catalog-ui/src/app/ng2/services/modal.service.ts
@@ -0,0 +1,73 @@
+import { Injectable, Type, ViewContainerRef, ApplicationRef, ComponentFactory, ComponentFactoryResolver, ComponentRef } from '@angular/core';
+import { ModalModel, ButtonModel } from 'app/models';
+import { ModalComponent } from 'app/ng2/components/modal/modal.component';
+
+
+@Injectable()
+export class ModalService {
+ currentModal: ComponentRef<any>;
+
+
+ constructor(private componentFactoryResolver: ComponentFactoryResolver, private applicationRef: ApplicationRef) { }
+
+
+ /* Shortcut method to open a simple modal with title, message, and close button that simply closes the modal. */
+ public openAlertModal(title: string, message: string, closeButtonText?:string) {
+ let closeButton: ButtonModel = new ButtonModel(closeButtonText || 'Close', 'grey', this.closeCurrentModal);
+ let modalModel: ModalModel = new ModalModel('sm', title, message, [closeButton]);
+ this.createCustomModal(modalModel).instance.open();
+ }
+
+
+ /**
+ * Shortcut method to open a basic modal with title, message, and an action button with callback, as well as close button.
+ * NOTE: To close the modal from within the callback, use modalService.closeCurrentModal() //if you run into zone issues with callbacks see:https://stackoverflow.com/questions/36566698/how-to-dynamically-create-bootstrap-modals-as-angular2-components
+ * @param title Heading for modal
+ * @param message Message for modal
+ * @param actionButtonText Blue call to action button
+ * @param actionButtonCallback function to invoke when button is clicked
+ * @param cancelButtonText text for close/cancel button
+ */
+ public openActionModal = (title:string, message:string, actionButtonText:string, actionButtonCallback:Function, cancelButtonText:string) => {
+ let actionButton: ButtonModel = new ButtonModel(actionButtonText, 'blue', actionButtonCallback);
+ let cancelButton: ButtonModel = new ButtonModel(cancelButtonText, 'grey', this.closeCurrentModal);
+ let modalModel: ModalModel = new ModalModel('sm', title, message, [actionButton, cancelButton]);
+ this.createCustomModal(modalModel).instance.open();
+ }
+
+
+ /* Use this method to create a modal with title, message, and completely custom buttons. Use response.instance.open() to open */
+ public createCustomModal = (customModalData: ModalModel): ComponentRef<ModalComponent> => {
+ let customModal: ComponentRef<ModalComponent> = this.createDynamicComponent(ModalComponent);
+ customModal.instance.input = customModalData;
+ this.currentModal = customModal;
+
+ return customModal;
+ }
+
+
+ public closeCurrentModal = () => {
+ if (!this.currentModal) return;
+ this.currentModal.instance.close();
+ this.currentModal.destroy();
+ }
+
+
+ //Creates a component dynamically (aka during runtime). If a view container is not specified, it will append the new component to the app root.
+ //To subscribe to an event from invoking component: componentRef.instance.clicked.subscribe((m) => console.log(m.name));
+ private createDynamicComponent<T>(componentType: Type<T>, viewContainerRef?:ViewContainerRef): ComponentRef<any> {
+
+ viewContainerRef = viewContainerRef || this.getRootViewContainerRef();
+ viewContainerRef.clear();
+
+ let factory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(componentType); //Ref: https://angular.io/guide/dynamic-component-loader
+ let componentRef = viewContainerRef.createComponent(factory);
+
+ return componentRef;
+ }
+
+
+ private getRootViewContainerRef(): ViewContainerRef {
+ return this.applicationRef.components[0].instance.viewContainerRef;
+ }
+} \ No newline at end of file
diff --git a/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.html b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.html
new file mode 100644
index 0000000000..36629594b0
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.html
@@ -0,0 +1,5 @@
+<div class="search-bar-container {{class}}">
+ <input class="search-bar-input" type="text" [placeholder]="placeholder" [(ngModel)]="searchQuery" (ngModelChange)="searchQueryChange($event)"/>
+ <span class="clear-search-x" *ngIf="searchQuery" (click)="clearSearchQuery()">x</span>
+ <button class="search-bar-button" (click)="searchButtonClick()"></button>
+</div> \ No newline at end of file
diff --git a/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.less b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.less
new file mode 100644
index 0000000000..cfeb8d3b01
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.less
@@ -0,0 +1,58 @@
+.search-bar-container {
+ display:flex;
+ border-radius: 4px;
+ box-shadow: 0px 2px 3.88px 0.12px rgba(0, 0, 0, 0.29);
+
+ .search-bar-input {
+ border: 1px solid #cdcdcd;
+ border-radius: 4px;
+ border-right:none;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ outline:none;
+ padding:2px 50px 2px 10px;
+ color: #5a5a5a;
+ font-size: 1em;
+ font-style: italic;
+ }
+
+ .clear-search-x {
+ position:absolute;
+ right:40px;
+ top:5px;
+ padding: 0 5px;
+
+ &:hover {
+ border-radius:2px;
+ background-color: #ebebeb;
+ cursor:pointer;
+ }
+ }
+
+ .search-bar-button {
+ //background: url('../../../../assets/styles/svg/source/search-magnify.svg') no-repeat 50%;
+ background: url('../../../../assets/styles/images/sprites/sprite-global.png') no-repeat -206px -1275px;
+ background-color: rgba(234, 234, 234, 0.88);
+ width: 30px;
+ height: 30px;
+ padding: 0;
+ cursor:pointer;
+ border:solid 1px #cdcdcd;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+
+ &:hover {
+ background-position:-126px -1275px;
+ }
+
+ &:active {
+ background-color: rgba(31, 171, 223, 0.88);
+ background-position:-45px -1275px;
+ border-left:none;
+ }
+ &:focus {
+ outline:none;
+ }
+
+ }
+}
diff --git a/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.ts b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.ts
new file mode 100644
index 0000000000..2835d20ba4
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-bar/search-bar.component.ts
@@ -0,0 +1,30 @@
+import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
+
+@Component({
+ selector: 'search-bar',
+ templateUrl: './search-bar.component.html',
+ styleUrls: ['./search-bar.component.less'],
+ encapsulation: ViewEncapsulation.None
+})
+export class SearchBarComponent {
+
+ @Input() placeholder: string;
+ @Input() class: string;
+ @Input() searchQuery: string;
+ @Output() searchChanged: EventEmitter<any> = new EventEmitter<any>();
+ @Output() searchButtonClicked: EventEmitter<string> = new EventEmitter<string>();
+
+ searchButtonClick = (): void => {
+ this.searchButtonClicked.emit(this.searchQuery);
+ }
+
+ searchQueryChange = ($event): void => {
+ this.searchChanged.emit($event);
+ }
+
+ private clearSearchQuery = (): void => {
+ this.searchQuery = "";
+ this.searchButtonClick();
+ }
+}
+
diff --git a/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.html b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.html
new file mode 100644
index 0000000000..c9769ba5ae
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.html
@@ -0,0 +1,6 @@
+<div class="search-with-autocomplete-container {{searchBarClass}}" [class.autocomplete-visible]="autoCompleteValues && autoCompleteValues.length" [class.active]="searchQuery && searchQuery.length">
+ <search-bar [placeholder]="searchPlaceholder" [searchQuery]="searchQuery" (searchButtonClicked)="updateSearch($event)" (searchChanged)="searchChange($event)"></search-bar>
+ <div class="autocomplete-results">
+ <div *ngFor="let item of autoCompleteValues" class="autocomplete-result-item" (click)="updateSearch(item)">{{item}}</div>
+ </div>
+</div> \ No newline at end of file
diff --git a/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.less b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.less
new file mode 100644
index 0000000000..92b054cd85
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.less
@@ -0,0 +1,35 @@
+
+.search-with-autocomplete-container{
+ &.autocomplete-visible {
+
+ .search-bar-input {
+ border-bottom-left-radius: 0;
+ }
+ .search-bar-button {
+ border-bottom-right-radius: 0;
+ }
+ .autocomplete-results {
+ border: solid 1px #d2d2d2;
+ border-top:none;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ background-color: #fff;
+ padding: 10px 20px;
+ width:100%;
+ position:absolute;
+ max-height: 200px;
+ overflow-y: scroll;
+ }
+
+ .autocomplete-result-item {
+ color:#5a5a5a;
+ padding: 5px 0;
+ cursor:pointer;
+
+ &:hover {
+ color: #999;
+ }
+ }
+ }
+}
+
diff --git a/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.ts b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.ts
new file mode 100644
index 0000000000..ced056d1fc
--- /dev/null
+++ b/catalog-ui/src/app/ng2/shared/search-with-autocomplete/search-with-autocomplete.component.ts
@@ -0,0 +1,30 @@
+import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
+import { SearchBarComponent } from '../search-bar/search-bar.component';
+
+@Component({
+ selector: 'search-with-autocomplete',
+ templateUrl: './search-with-autocomplete.component.html',
+ styleUrls: ['./search-with-autocomplete.component.less'],
+ encapsulation: ViewEncapsulation.None
+})
+export class SearchWithAutoCompleteComponent {
+
+ @Input() searchPlaceholder: string;
+ @Input() searchBarClass: string;
+ @Input() searchQuery: string;
+ @Input() autoCompleteValues: Array<string>;
+ @Output() searchChanged: EventEmitter<any> = new EventEmitter<any>();
+ @Output() searchButtonClicked: EventEmitter<string> = new EventEmitter<string>();
+
+ searchChange = (searchTerm: string) => {
+ this.searchQuery = searchTerm;
+ this.searchChanged.emit(searchTerm);
+ }
+
+ updateSearch = (searchTerm: string) => {
+ this.searchQuery = searchTerm;
+ this.searchButtonClicked.emit(searchTerm);
+ this.autoCompleteValues = [];
+ }
+}
+
diff --git a/catalog-ui/src/app/services.ts b/catalog-ui/src/app/services.ts
index ce4a8e32d3..5dd08c2d20 100644
--- a/catalog-ui/src/app/services.ts
+++ b/catalog-ui/src/app/services.ts
@@ -27,7 +27,6 @@ export * from './services/cache-service';
export * from './services/configuration-ui-service';
export * from './services/category-resource-service';
export * from './services/components/component-service';
-export * from './services/components/product-service';
export * from './services/components/resource-service';
export * from './services/components/service-service';
export * from './services/components/resource-service';
diff --git a/catalog-ui/src/app/services/available-icons-service.ts b/catalog-ui/src/app/services/available-icons-service.ts
index ebb6c5ff77..13b6caea2a 100644
--- a/catalog-ui/src/app/services/available-icons-service.ts
+++ b/catalog-ui/src/app/services/available-icons-service.ts
@@ -81,23 +81,6 @@ export class AvailableIconsService implements IAvailableIconsService {
'firewall'
];
break;
-
- case ComponentType.PRODUCT:
- icons = [
- 'vfw',
- 'network',
- 'security',
- 'cloud',
- 'setting',
- 'orphan',
- 'wanx',
- 'vrouter',
- 'ucpe',
- 'mobility'
-
- ];
- break;
-
}
return icons;
}
diff --git a/catalog-ui/src/app/services/components/product-service.ts b/catalog-ui/src/app/services/components/product-service.ts
deleted file mode 100644
index 09199ea172..0000000000
--- a/catalog-ui/src/app/services/components/product-service.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Created by obarda on 2/8/2016.
- */
-'use strict';
-import {IComponentService, ComponentService} from "./component-service";
-import {SharingService} from "../sharing-service";
-import {Product, Component, IAppConfigurtaion} from "../../models";
-
-export interface IProductService extends IComponentService {
-
-}
-
-export class ProductService extends ComponentService implements IProductService {
-
- static '$inject' = [
- 'Restangular',
- 'sdcConfig',
- 'Sdc.Services.SharingService',
- '$q',
- '$base64'
- ];
-
- constructor(protected restangular:restangular.IElement,
- protected sdcConfig:IAppConfigurtaion,
- protected sharingService:SharingService,
- protected $q:ng.IQService,
- protected $base64:any) {
- super(restangular, sdcConfig, sharingService, $q, $base64);
- this.restangular = restangular.one("products");
- }
-
- createComponentObject = (component:Component):Component => {
- return new Product(this, this.$q, <Product>component);
- };
-}
diff --git a/catalog-ui/src/app/services/components/utils/composition-left-palette-service.ts b/catalog-ui/src/app/services/components/utils/composition-left-palette-service.ts
index 52cb78f6d5..a1fa65159f 100644
--- a/catalog-ui/src/app/services/components/utils/composition-left-palette-service.ts
+++ b/catalog-ui/src/app/services/components/utils/composition-left-palette-service.ts
@@ -28,6 +28,7 @@ import {ComponentFactory} from "../../../utils/component-factory";
import {IAppConfigurtaion} from "../../../models/app-config";
import {ResourceType, ComponentType, EVENTS} from "../../../utils/constants";
import {ComponentMetadata} from "../../../models/component-metadata";
+import {Resource} from "app/models/components/resource";
export class LeftPaletteDataObject {
displayLeftPanelComponents:Array<LeftPaletteComponent>;
@@ -58,24 +59,27 @@ export class LeftPaletteLoaderService {
protected EventListenerService:EventListenerService) {
this.restangular.setBaseUrl(sdcConfig.api.root + sdcConfig.api.component_api_root);
-
+
}
private serviceLeftPaletteData:LeftPaletteDataObject;
private resourceLeftPaletteData:LeftPaletteDataObject;
- private productLeftPaletteData:LeftPaletteDataObject;
+ private resourcePNFLeftPaletteData:LeftPaletteDataObject;
private vlData:LeftPaletteDataObject;
- public loadLeftPanel = (componentType: string):void => {
+ public loadLeftPanel = (component:Component):void => {
this.serviceLeftPaletteData = new LeftPaletteDataObject(EVENTS.SERVICE_LEFT_PALETTE_UPDATE_EVENT);
this.resourceLeftPaletteData = new LeftPaletteDataObject(EVENTS.RESOURCE_LEFT_PALETTE_UPDATE_EVENT);
- this.updateComponentLeftPalette(componentType);
+ this.resourcePNFLeftPaletteData = new LeftPaletteDataObject(EVENTS.RESOURCE_PNF_LEFT_PALETTE_UPDATE_EVENT);
+ this.updateComponentLeftPalette(component);
}
-
- private getTypeUrl = (componentType:string):string => {
- return ComponentType.PRODUCT === componentType ? "services" : "resources";
- };
+ private getResourceLeftPaletteDataByResourceType = (resourceType:string):LeftPaletteDataObject => {
+ if(resourceType == ResourceType.PNF) {
+ return this.resourcePNFLeftPaletteData;
+ }
+ return this.resourceLeftPaletteData;
+ }
private onFinishLoading = (componentType:string, leftPaletteData:LeftPaletteDataObject):void => {
this.EventListenerService.notifyObservers(leftPaletteData.onFinishLoadingEvent);
@@ -83,7 +87,7 @@ export class LeftPaletteLoaderService {
private updateLeftPalette = (componentType, componentInternalType:string, leftPaletteData:LeftPaletteDataObject):void => {
- this.restangular.one(this.getTypeUrl(componentType)).one('/latestversion/notabstract/metadata').get({'internalComponentType': componentInternalType}).then((leftPaletteComponentMetadata:Array<ComponentMetadata>) => {
+ this.restangular.one("resources").one('/latestversion/notabstract/metadata').get({'internalComponentType': componentInternalType}).then((leftPaletteComponentMetadata:Array<ComponentMetadata>) => {
_.forEach(leftPaletteComponentMetadata, (componentMetadata:ComponentMetadata) => {
leftPaletteData.displayLeftPanelComponents.push(new LeftPaletteComponent(componentMetadata));
});
@@ -91,30 +95,25 @@ export class LeftPaletteLoaderService {
});
};
- public getLeftPanelComponentsForDisplay = (componentType:string):Array<LeftPaletteComponent> => {
- switch (componentType) {
+ public getLeftPanelComponentsForDisplay = (component:Component):Array<LeftPaletteComponent> => {
+ switch (component.componentType) {
case ComponentType.SERVICE:
return this.serviceLeftPaletteData.displayLeftPanelComponents;
- case ComponentType.PRODUCT:
- return this.productLeftPaletteData.displayLeftPanelComponents;
- default:
- return this.resourceLeftPaletteData.displayLeftPanelComponents;
+ default://resource
+ return this.getResourceLeftPaletteDataByResourceType((<Resource>component).resourceType).displayLeftPanelComponents;
}
};
- public updateComponentLeftPalette = (componentType):void => {
- switch (componentType) {
- case ResourceType.VL:
- this.updateLeftPalette(ComponentType.RESOURCE, ResourceType.VL, this.vlData);
- break;
+ public updateComponentLeftPalette = (component:Component):void => {
+ switch (component.componentType) {
case ComponentType.SERVICE:
this.updateLeftPalette(ComponentType.SERVICE, ComponentType.SERVICE, this.serviceLeftPaletteData);
break;
- case ComponentType.PRODUCT:
- this.updateLeftPalette(ComponentType.PRODUCT, ComponentType.SERVICE, this.productLeftPaletteData);
+ case ComponentType.RESOURCE:
+ this.updateLeftPalette(ComponentType.RESOURCE, (<Resource>component).resourceType, this.getResourceLeftPaletteDataByResourceType((<Resource>component).resourceType));
break;
default:
- this.updateLeftPalette(ComponentType.RESOURCE, ResourceType.VF, this.resourceLeftPaletteData);
+ console.log('ERROR: Component type '+ component.componentType + ' is not exists');
}
};
}
diff --git a/catalog-ui/src/app/services/data-types-service.ts b/catalog-ui/src/app/services/data-types-service.ts
index a6dbf7f12d..84fe42e9f3 100644
--- a/catalog-ui/src/app/services/data-types-service.ts
+++ b/catalog-ui/src/app/services/data-types-service.ts
@@ -132,7 +132,8 @@ export class DataTypesService implements IDataTypesService {
public isDataTypeForDataTypePropertyType = (property:DataTypePropertyModel):boolean=> {
property.simpleType = "";
- if (property.type && PROPERTY_DATA.TYPES.indexOf(property.type) > -1) {
+ let isScalarForNFoD:boolean = property.type === 'scalar-unit.size';
+ if (property.type && PROPERTY_DATA.TYPES.indexOf(property.type) > -1 || isScalarForNFoD) {
return false;
}
let simpleType = this.getTypeForDataTypeDerivedFromSimple(property.type);
diff --git a/catalog-ui/src/app/services/entity-service.ts b/catalog-ui/src/app/services/entity-service.ts
index a255dcff34..75ea036b3e 100644
--- a/catalog-ui/src/app/services/entity-service.ts
+++ b/catalog-ui/src/app/services/entity-service.ts
@@ -19,7 +19,7 @@
*/
'use strict';
-import {Product, Service, IApi, IAppConfigurtaion, Resource, Component} from "../models";
+import { Service, IApi, IAppConfigurtaion, Resource, Component} from "../models";
import {SharingService} from "./sharing-service";
import {ComponentFactory} from "../utils/component-factory";
import {CacheService} from "./cache-service";
@@ -31,7 +31,6 @@ interface IEntityService {
interface IComponentsArray {
services:Array<Service>;
resources:Array<Resource>;
- products:Array<Product>;
}
export class EntityService implements IEntityService {
@@ -66,13 +65,6 @@ export class EntityService implements IEntityService {
this.sharingService.addUuidValue(component.uniqueId, component.uuid);
});
- followedResponse.products.forEach((productResponse:Product) => {
-
- let component:Product = this.ComponentFactory.createProduct(productResponse);
- componentsList.push(component);
- this.sharingService.addUuidValue(component.uniqueId, component.uuid);
- });
-
this.cacheService.set('breadcrumbsComponents', componentsList);
defer.resolve(componentsList);
},(responce) => {
@@ -99,12 +91,7 @@ export class EntityService implements IEntityService {
componentsList.push(component);
this.sharingService.addUuidValue(component.uniqueId, component.uuid);
});
-
- componentResponse.products && componentResponse.products.forEach((productsResponse:Product) => {
- let component:Product = this.ComponentFactory.createProduct(productsResponse);
- componentsList.push(component);
- this.sharingService.addUuidValue(component.uniqueId, component.uuid);
- });
+
this.cacheService.set('breadcrumbsComponents', componentsList);
defer.resolve(componentsList);
});
diff --git a/catalog-ui/src/app/utils/component-factory.ts b/catalog-ui/src/app/utils/component-factory.ts
index c202a1c8f5..b35918c0f6 100644
--- a/catalog-ui/src/app/utils/component-factory.ts
+++ b/catalog-ui/src/app/utils/component-factory.ts
@@ -20,8 +20,8 @@
'use strict';
import {DEFAULT_ICON, ResourceType, ComponentType} from "./constants";
-import {ServiceService, CacheService, ResourceService, ProductService} from "app/services";
-import {IMainCategory, ISubCategory, ICsarComponent, Component, Resource, Service, Product} from "app/models";
+import {ServiceService, CacheService, ResourceService} from "app/services";
+import {IMainCategory, ISubCategory, ICsarComponent, Component, Resource, Service} from "app/models";
import {ComponentMetadata} from "../models/component-metadata";
import {ComponentServiceNg2} from "../ng2/services/component-services/component.service";
import {ComponentGenericResponse} from "../ng2/services/responses/component-generic-response";
@@ -32,7 +32,6 @@ export class ComponentFactory {
static '$inject' = [
'Sdc.Services.Components.ResourceService',
'Sdc.Services.Components.ServiceService',
- 'Sdc.Services.Components.ProductService',
'Sdc.Services.CacheService',
'$q',
'ComponentServiceNg2'
@@ -40,7 +39,6 @@ export class ComponentFactory {
constructor(private ResourceService:ResourceService,
private ServiceService:ServiceService,
- private ProductService:ProductService,
private cacheService:CacheService,
private $q:ng.IQService,
private ComponentServiceNg2: ComponentServiceNg2) {
@@ -58,18 +56,10 @@ export class ComponentFactory {
newComponent = new Resource(this.ResourceService, this.$q, <Resource> component);
break;
- case 'PRODUCT':
- newComponent = new Product(this.ProductService, this.$q, <Product> component);
- break;
}
return newComponent;
};
- public createProduct = (product:Product):Product => {
- let newProduct:Product = new Product(this.ProductService, this.$q, <Product> product);
- return newProduct;
- };
-
public createService = (service:Service):Service => {
let newService:Service = new Service(this.ServiceService, this.$q, <Service> service);
return newService;
@@ -144,12 +134,10 @@ export class ComponentFactory {
case ResourceType.VL:
case ResourceType.VFC:
case ResourceType.CP:
+ case ResourceType.PNF:
+ case ResourceType.CVFC:
newComponent = new Resource(this.ResourceService, this.$q);
break;
-
- case ComponentType.PRODUCT:
- newComponent = new Product(this.ProductService, this.$q);
- break;
}
newComponent.componentType = componentType;
newComponent.tags = [];
diff --git a/catalog-ui/src/app/utils/component-instance-factory.ts b/catalog-ui/src/app/utils/component-instance-factory.ts
index c020c53705..9e25e6b02f 100644
--- a/catalog-ui/src/app/utils/component-instance-factory.ts
+++ b/catalog-ui/src/app/utils/component-instance-factory.ts
@@ -21,7 +21,7 @@
* Created by obarda on 3/7/2016.
*/
'use strict';
-import {ComponentInstance, ServiceInstance, ProductInstance, ResourceInstance, Component} from "../models";
+import {ComponentInstance, ServiceInstance, ResourceInstance, Component} from "../models";
import {LeftPaletteComponent} from "../models/components/displayComponent";
export class ComponentInstanceFactory {
@@ -33,10 +33,6 @@ export class ComponentInstanceFactory {
newComponentInstance = new ServiceInstance(componentInstance);
break;
- case 'PRODUCT':
- newComponentInstance = new ProductInstance(componentInstance);
- break;
-
default :
newComponentInstance = new ResourceInstance(componentInstance);
break;
@@ -51,10 +47,6 @@ export class ComponentInstanceFactory {
newComponentInstance = new ServiceInstance();
break;
- case 'PRODUCT':
- newComponentInstance = new ProductInstance();
- break;
-
default :
newComponentInstance = new ResourceInstance();
break;
diff --git a/catalog-ui/src/app/utils/constants.ts b/catalog-ui/src/app/utils/constants.ts
index 636c0c4fbf..d239019455 100644
--- a/catalog-ui/src/app/utils/constants.ts
+++ b/catalog-ui/src/app/utils/constants.ts
@@ -29,13 +29,11 @@ export let CHANGE_COMPONENT_CSAR_VERSION_FLAG = 'changeComponentCsarVersion';
export class ComponentType {
static SERVICE = 'SERVICE';
static RESOURCE = 'RESOURCE';
- static PRODUCT = 'PRODUCT';
}
export class ServerTypeUrl {
static RESOURCES = 'resources/';
static SERVICES = 'services/';
- static PRODUCTS = 'product/';
}
export class ResourceType {
@@ -45,6 +43,7 @@ export class ResourceType {
static VFC = 'VFC';
static VFCMT = 'VFCMT';
static PNF = 'PNF';
+ static CVFC = 'CVFC';
}
export class ComponentState {
@@ -129,8 +128,6 @@ export class PROPERTY_VALUE_CONSTRAINTS {
export class Role {
public static ADMIN = 'ADMIN';
public static DESIGNER = 'DESIGNER';
- public static PRODUCT_STRATEGIST = 'PRODUCT_STRATEGIST';
- public static PRODUCT_MANAGER = 'PRODUCT_MANAGER';
public static TESTER = 'TESTER';
public static OPS = 'OPS';
public static GOVERNOR = 'GOVERNOR';
@@ -213,14 +210,12 @@ export class GraphUIObjects {
export class States {
public static WORKSPACE_GENERAL = 'workspace.general';
- public static WORKSPACE_ICONS = 'workspace.icons';
public static WORKSPACE_ACTIVITY_LOG = 'workspace.activity_log';
public static WORKSPACE_DEPLOYMENT_ARTIFACTS = 'workspace.deployment_artifacts';
public static WORKSPACE_PROPERTIES = 'workspace.properties';
public static WORKSPACE_SERVICE_INPUTS = 'workspace.service_inputs';
public static WORKSPACE_RESOURCE_INPUTS = 'workspace.resource_inputs';
public static WORKSPACE_ATTRIBUTES = 'workspace.attributes';
- public static WORKSPACE_HIERARCHY = 'workspace.hierarchy';
public static WORKSPACE_INFORMATION_ARTIFACTS = 'workspace.information_artifacts';
public static WORKSPACE_TOSCA_ARTIFACTS = 'workspace.tosca_artifacts';
public static WORKSPACE_COMPOSITION = 'workspace.composition';
@@ -237,7 +232,6 @@ export class EVENTS {
static RESOURCE_LEFT_PALETTE_UPDATE_EVENT = "resourceLeftPanelUpdateEvent";
static RESOURCE_PNF_LEFT_PALETTE_UPDATE_EVENT = "resourcePNFLeftPanelUpdateEvent";
static SERVICE_LEFT_PALETTE_UPDATE_EVENT = "serviceLeftPanelUpdateEvent";
- static PRODUCT_LEFT_PALETTE_UPDATE_EVENT = "productLeftPanelUdateEvent";
static VL_LEFT_PALETTE_UPDATE_EVENT = "vlLeftPanelUdateEvent";
static ON_CSAR_LOADING = "onCsarLoading";
static DOWNLOAD_ARTIFACT_FINISH_EVENT = "downloadArtifactFinishEvent";
diff --git a/catalog-ui/src/app/utils/modals-handler.ts b/catalog-ui/src/app/utils/modals-handler.ts
index ae91b2acb7..0d17683116 100644
--- a/catalog-ui/src/app/utils/modals-handler.ts
+++ b/catalog-ui/src/app/utils/modals-handler.ts
@@ -187,6 +187,24 @@ export class ModalsHandler implements IModalsHandler {
return deferred.promise;
};
+ openUpdateIconModal = (component: Component):ng.IPromise<any> => {
+ let deferred = this.$q.defer();
+ let modalOptions:ng.ui.bootstrap.IModalSettings = {
+ templateUrl: '../view-models/modals/icons-modal/icons-modal-view.html',
+ controller: 'Sdc.ViewModels.IconsModalViewModel',
+ size: 'sdc-auto',
+ backdrop: 'static',
+ resolve: {
+ component: ():Component => {
+ return component;
+ }
+ }
+ };
+ let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$uibModal.open(modalOptions);
+ deferred.resolve(modalInstance.result);
+ return deferred.promise;
+ };
+
openEditEnvParametersModal = (artifactResource:ArtifactModel, component?:Component):ng.IPromise<any> => {
let deferred = this.$q.defer();
let modalOptions:ng.ui.bootstrap.IModalSettings = {
diff --git a/catalog-ui/src/app/view-models/catalog/catalog-view-model.ts b/catalog-ui/src/app/view-models/catalog/catalog-view-model.ts
index 8925be0fff..ec9e888eed 100644
--- a/catalog-ui/src/app/view-models/catalog/catalog-view-model.ts
+++ b/catalog-ui/src/app/view-models/catalog/catalog-view-model.ts
@@ -117,7 +117,7 @@ export class CatalogViewModel {
let onSuccess = (followedResponse:Array<Component>):void => {
this.$scope.catalogFilterdItems = followedResponse;
this.$scope.isAllItemDisplay = this.$scope.numberOfItemToDisplay >= this.$scope.catalogFilterdItems.length;
- this.$scope.categories = this.cacheService.get('serviceCategories').concat(this.cacheService.get('resourceCategories')).concat(this.cacheService.get('productCategories'));
+ this.$scope.categories = this.cacheService.get('serviceCategories').concat(this.cacheService.get('resourceCategories'));
this.$scope.gui.isLoading = false;
};
@@ -137,7 +137,7 @@ export class CatalogViewModel {
//this.$scope.categories = this.cacheService.get('categoriesMap');
this.$scope.sdcMenu = this.sdcMenu;
this.$scope.confStatus = this.sdcMenu.statuses;
- this.$scope.expandedSection = ["type", "category", "product-category", "status"];
+ this.$scope.expandedSection = ["type", "category", "status"];
this.$scope.user = this.userResourceService.getLoggedinUser();
this.$scope.catalogMenuItem = this.sdcMenu.catalogMenuItem;
this.$scope.version = this.cacheService.get('version');
@@ -147,8 +147,8 @@ export class CatalogViewModel {
// Checklist init
this.$scope.checkboxes = <Checkboxes>{};
- this.$scope.checkboxes.componentTypes = ['Resource', 'Service', 'Product'];
- this.$scope.checkboxes.resourceSubTypes = ['VF', 'VFC', 'CP', 'VL'];
+ this.$scope.checkboxes.componentTypes = ['Resource', 'Service'];
+ this.$scope.checkboxes.resourceSubTypes = ['VF', 'VFC', 'PNF', 'CP', 'VL'];
// Checkboxes filter init
this.$scope.checkboxesFilter = <CheckboxesFilter>{};
diff --git a/catalog-ui/src/app/view-models/catalog/catalog.less b/catalog-ui/src/app/view-models/catalog/catalog.less
index ff50202243..1f473c9638 100644
--- a/catalog-ui/src/app/view-models/catalog/catalog.less
+++ b/catalog-ui/src/app/view-models/catalog/catalog.less
@@ -67,28 +67,6 @@
//text-indent: -10px;
}
- /*Added by - Ikram */
- .i-sdc-product-input,
- .i-sdc-product-select {
- border: 1px solid @border_color_f;
- min-height: 30px;
- padding: 0;
- width: 100%;
- margin: 1px 0;
- background-color: #F2F2F2;
- outline: none;
-
- &:disabled {
- .disabled;
- }
- optgroup{
- color: @color_u;
- option{
- color: @color_b;
- }
- }
- }
-
.i-sdc-categories-list-item-icon {
display: inline-block;
float: right;
diff --git a/catalog-ui/src/app/view-models/dashboard/dashboard-view-model.ts b/catalog-ui/src/app/view-models/dashboard/dashboard-view-model.ts
index b9e51f098a..5480e4f6cf 100644
--- a/catalog-ui/src/app/view-models/dashboard/dashboard-view-model.ts
+++ b/catalog-ui/src/app/view-models/dashboard/dashboard-view-model.ts
@@ -310,6 +310,13 @@ export class DashboardViewModel {
};
+ this.$scope.createPNF = ():void => {
+ this.$state.go('workspace.general', {
+ type: ComponentType.RESOURCE.toLowerCase(),
+ resourceType: ResourceType.PNF
+ });
+ };
+
this.$scope.entitiesCount = (folderItem:FoldersItemsMenu):any => {
let self = this;
let total:number = 0;
diff --git a/catalog-ui/src/app/view-models/dashboard/dashboard-view.html b/catalog-ui/src/app/view-models/dashboard/dashboard-view.html
index 806bb8138d..baf4aa6e51 100644
--- a/catalog-ui/src/app/view-models/dashboard/dashboard-view.html
+++ b/catalog-ui/src/app/view-models/dashboard/dashboard-view.html
@@ -13,15 +13,15 @@
<div class='w-sdc-row-flex-items'>
<!-- ADD Component -->
- <div ng-if="user.role === 'DESIGNER' || user.role === 'PRODUCT_MANAGER'" class="w-sdc-dashboard-card-new"
+ <div ng-if="user.role === 'DESIGNER'" class="w-sdc-dashboard-card-new"
data-ng-mouseleave="displayActions = false"
data-ng-mouseover="displayActions = true"
data-ng-init="displayActions = false">
<div class="w-sdc-dashboard-card-new-content" data-tests-id="AddButtonsArea">
<div class="w-sdc-dashboard-card-new-content-plus" data-ng-show="!displayActions"></div>
<div class="sdc-dashboard-create-element-container" data-ng-show="displayActions">
- <button data-ng-if="roles[user.role].dashboard.showCreateNewProduct" data-tests-id="createProductButton" class="tlv-btn outline blue" data-ng-click="openCreateModal('PRODUCT')">Create Product</button>
<button data-ng-if="roles[user.role].dashboard.showCreateNew" data-tests-id="createResourceButton" class="tlv-btn outline blue" data-ng-click="openCreateModal('RESOURCE')">Add VF</button>
+ <button data-ng-if="roles[user.role].dashboard.showCreateNew" data-tests-id="createPNFButton" class="tlv-btn outline blue" data-ng-click="createPNF()">Add PNF</button>
<button data-ng-if="roles[user.role].dashboard.showCreateNew" data-tests-id="createServiceButton" class="tlv-btn outline blue" data-ng-click="openCreateModal('SERVICE')">Add Service</button>
</div>
</div>
@@ -44,8 +44,8 @@
</div>
</div>
</div>
- </div>
-
+ </div>
+
<!-- Tile new -->
<div class="sdc-tile-catalog sdc-tile-fix-width" data-ng-repeat="component in components | filter:{resourceType:('!'+vfcmtType)} | entityFilter:checkboxesFilter | filter:search">
@@ -62,7 +62,7 @@
data-tests-id="{{component.name}}"></div>
</div>
<div class='sdc-tile-content-info'>
- <div class="sdc-tile-content-info-item-name" data-tests-id="{{component.name | resourceName}}" sdc-smart-tooltip>{{component.name | resourceName}}</div>
+ <div class="sdc-tile-content-info-item-name" data-tests-id="{{component.name | resourceName}}" sdc-smart-tooltip>{{component.name | resourceName}}</div>
<div class="sdc-tile-content-info-version-info">
<div class="sdc-tile-content-info-version-info-text" data-tests-id="{{component.name}}Version">V {{component.version}}</div>
</div>
@@ -70,11 +70,11 @@
</div>
<div class='sdc-tile-footer'>
<div class='sdc-tile-footer-text'>{{component.getStatus(sdcMenu)}}</div>
- </div>
+ </div>
</div>
<!-- Tile new -->
-
+
</div>
</perfect-scrollbar>
diff --git a/catalog-ui/src/app/view-models/dashboard/dashboard.less b/catalog-ui/src/app/view-models/dashboard/dashboard.less
index 7993390769..02280cdb42 100644
--- a/catalog-ui/src/app/view-models/dashboard/dashboard.less
+++ b/catalog-ui/src/app/view-models/dashboard/dashboard.less
@@ -244,13 +244,6 @@
}
}
- &.PRODUCT {
- .b_14_m;
- &::before {
- content: 'P';
- }
- }
-
&.green {
.d_12;
&::before {
diff --git a/catalog-ui/src/app/view-models/dcae-app/dcae-app.less b/catalog-ui/src/app/view-models/dcae-app/dcae-app.less
index bc1404d7c4..71a3101412 100644
--- a/catalog-ui/src/app/view-models/dcae-app/dcae-app.less
+++ b/catalog-ui/src/app/view-models/dcae-app/dcae-app.less
@@ -48,28 +48,6 @@
//text-indent: -10px;
}
- /*Added by - Ikram */
- .i-sdc-product-input,
- .i-sdc-product-select {
- border: 1px solid @border_color_f;
- min-height: 30px;
- padding: 0;
- width: 100%;
- margin: 1px 0;
- background-color: #F2F2F2;
- outline: none;
-
- &:disabled {
- .disabled;
- }
- optgroup{
- color: @color_u;
- option{
- color: @color_b;
- }
- }
- }
-
.i-sdc-categories-list-item-icon {
display: inline-block;
float: right;
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
index 8b9acbcab7..ee2e94f934 100644
--- a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
+++ b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view-model.ts
@@ -23,6 +23,7 @@ import {
PROPERTY_TYPES, ModalsHandler, ValidationUtils, PROPERTY_VALUE_CONSTRAINTS, FormState, PROPERTY_DATA} from "app/utils";
import {DataTypesService} from "app/services";
import {PropertyModel, DataTypesMap, Component} from "app/models";
+import {ComponentInstance} from "../../../../models/componentsInstances/componentInstance";
export interface IEditPropertyModel {
property:PropertyModel;
@@ -50,6 +51,7 @@ interface IPropertyFormViewModelScope extends ng.IScope {
isTypeDataType:boolean;
maxLength:number;
isPropertyValueOwner:boolean;
+ isVnfConfiguration:boolean;
validateJson(json:string):boolean;
save(doNotCloseModal?:boolean):void;
@@ -192,6 +194,17 @@ export class PropertyFormViewModel {
this.$scope.isPropertyValueOwner = this.isPropertyValueOwner;
this.initEditPropertyModel();
+ //check if property of VnfConfiguration
+ this.$scope.isVnfConfiguration = false;
+ if(angular.isArray(this.component.componentInstances)) {
+ var componentPropertyOwner:ComponentInstance = this.component.componentInstances.find((ci:ComponentInstance) => {
+ return ci.uniqueId === this.property.resourceInstanceUniqueId;
+ });
+ if (componentPropertyOwner.componentName === 'vnfConfiguration') {
+ this.$scope.isVnfConfiguration = true;
+ }
+ }
+
this.$scope.nonPrimitiveTypes = _.filter(Object.keys(this.$scope.dataTypes), (type:string)=> {
return this.$scope.editPropertyModel.types.indexOf(type) == -1;
});
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
index f92d9a5ddc..743de298cd 100644
--- a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
+++ b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
@@ -142,7 +142,7 @@
schema-property="editPropertyModel.property.schema.property"
parent-form-obj="forms.editForm"
fields-prefix-name="currentPropertyIndex"
- read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
+ read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isVnfConfiguration"
default-value="{{getDefaultValue()}}"
max-length="maxLength"></type-map>
</div>
diff --git a/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.html b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.html
new file mode 100644
index 0000000000..4b89701201
--- /dev/null
+++ b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.html
@@ -0,0 +1,18 @@
+<sdc-modal modal="modalIcons" type="classic" class="w-sdc-modal-icons" buttons="footerButtons" header="Choose Icon" show-close-button="true">
+
+ <div class="suggested-icons-container">
+ <div class ="suggested-icon-wrapper" data-ng-class="{'selected': selectedIcon == iconSrc}" data-ng-repeat="iconSrc in icons track by $index">
+ <div class="i-sdc-form-item-suggested-icon large hand {{iconSprite}} {{iconSrc}}"
+ data-tests-id="{{iconSrc}} iconBox"
+ data-ng-click="changeIcon(iconSrc)"
+ tooltips tooltip-content='{{iconSrc | translate}}'
+ >
+ </div>
+ </div>
+ </div>
+
+ <div class="w-sdc-modal-footer classic">
+ <button class="tlv-btn blue" data-tests-id="OK" data-ng-click="updateIcon()">OK</button>
+ <button class="tlv-btn grey" data-tests-id="Cancel" data-ng-click="cancel()" >Cancel</button>
+ </div>
+</sdc-modal>
diff --git a/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.less b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.less
new file mode 100644
index 0000000000..660846c883
--- /dev/null
+++ b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.less
@@ -0,0 +1,33 @@
+.suggested-icons-container {
+ text-align: left;
+ width: 370px;
+ margin-bottom: 20px;
+ position: relative;
+
+ .suggested-icon-wrapper {
+ padding: 5px;
+ margin: 14px 0 14px 28px;
+ display: inline-block;
+ height: 71px;
+ width: 71px;
+
+ &.selected {
+ border: 2px solid @main_color_a;
+ border-radius: 35px;
+ display: inline-block;
+ line-height: 0px;
+ padding: 3px;
+ }
+
+ }
+ .i-sdc-form-item-suggested-icon {
+ opacity: 0.8;
+ &:hover{
+ opacity: 1;
+ }
+ }
+ .suggested-icon-wrapper:nth-child(4n+1) {
+ margin-left: 0;
+ }
+}
+
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view-model.ts b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.ts
index c25bc4a1f1..eeadcd4e83 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view-model.ts
+++ b/catalog-ui/src/app/view-models/modals/icons-modal/icons-modal-view.ts
@@ -19,53 +19,60 @@
*/
/**
- * Created by obarda on 4/4/2016.
+ * Created by rc2122 on 7/4/2017.
*/
'use strict';
import {ComponentFactory} from "app/utils";
import {AvailableIconsService} from "app/services";
import {IWorkspaceViewModelScope} from "app/view-models/workspace/workspace-view-model";
import {IMainCategory, ISubCategory} from "app/models";
-
-export interface IIconsScope extends IWorkspaceViewModelScope {
- icons:Array<string>;
- iconSprite:string;
- setComponentIcon(iconSrc:string):void;
+import {Component} from "app/models";
+import {ResourceType} from "app/utils/constants";
+
+interface IIconsModalViewModelScope {
+ modalIcons:ng.ui.bootstrap.IModalServiceInstance;
+ icons:Array<string>,
+ iconSprite:string,
+ selectedIcon:string,
+ changeIcon(icon:string):void,
+ cancel():void
+ updateIcon():void;
}
-export class IconsViewModel {
-
+export class IconsModalViewModel {
static '$inject' = [
'$scope',
'Sdc.Services.AvailableIconsService',
'ComponentFactory',
- '$state'
+ '$state',
+ '$uibModalInstance',
+ 'component'
];
- constructor(private $scope:IIconsScope,
+ constructor(private $scope:IIconsModalViewModelScope,
private availableIconsService:AvailableIconsService,
private ComponentFactory:ComponentFactory,
- private $state:ng.ui.IStateService) {
-
-
+ private $state:ng.ui.IStateService,
+ private $uibModalInstance:ng.ui.bootstrap.IModalServiceInstance,
+ private component: Component) {
this.initScope();
- this.initIcons();
- this.$scope.updateSelectedMenuItem();
- this.$scope.iconSprite = this.$scope.component.iconSprite;
+ this._initIcons();
+ this.$scope.iconSprite = this.component.iconSprite;
+ this.$scope.selectedIcon = this.component.icon;
- if (this.$scope.component.isResource()) {
+ if (this.component.isResource()) {
this.initVendor();
}
+
}
- private initialIcon:string = this.$scope.component.icon;
- private initIcons = ():void => {
+ private _initIcons = ():void => {
// For subcategories that where created by admin, there is no icons
this.$scope.icons = new Array<string>();
- if (this.$scope.component.categories && this.$scope.component.categories.length > 0) {
+ if (this.component.categories && this.component.categories.length > 0) {
- _.forEach(this.$scope.component.categories, (category:IMainCategory):void => {
+ _.forEach(this.component.categories, (category:IMainCategory):void => {
if (category.icons) {
this.$scope.icons = this.$scope.icons.concat(category.icons);
}
@@ -79,26 +86,26 @@ export class IconsViewModel {
});
}
- if (this.$scope.component.isResource()) {
- let resourceType:string = this.$scope.component.getComponentSubType();
- if (resourceType === 'VL') {
+ if (this.component.isResource()) {
+ let resourceType:string = this.component.getComponentSubType();
+ if (resourceType === ResourceType.VL) {
this.$scope.icons = ['vl'];
}
- if (resourceType === 'CP') {
+ if (resourceType === ResourceType.CP) {
this.$scope.icons = ['cp'];
}
}
if (this.$scope.icons.length === 0) {
- this.$scope.icons = this.availableIconsService.getIcons(this.$scope.component.componentType);
+ this.$scope.icons = this.availableIconsService.getIcons(this.component.componentType);
}
//we always add the defual icon to the list
this.$scope.icons.push('defaulticon');
};
private initVendor = ():void => {
- let vendors:Array<string> = this.availableIconsService.getIcons(this.$scope.component.componentType).slice(5, 19);
- let vendorName = this.$scope.component.vendorName.toLowerCase();
+ let vendors:Array<string> = this.availableIconsService.getIcons(this.component.componentType).slice(5, 19);
+ let vendorName = this.component.vendorName.toLowerCase();
if ('at&t' === vendorName) {
vendorName = 'att';
}
@@ -115,17 +122,22 @@ export class IconsViewModel {
};
private initScope():void {
+ this.$scope.modalIcons = this.$uibModalInstance;
this.$scope.icons = [];
- this.$scope.setValidState(true);
- //if(this.$scope.component.icon === DEFAULT_ICON){
- // //this.$scope.setValidState(false);
- //}
-
- this.$scope.setComponentIcon = (iconSrc:string):void => {
- this.$state.current.data.unsavedChanges = !this.$scope.isViewMode() && (iconSrc != this.initialIcon);
- this.$scope.component.icon = iconSrc;
- // this.$scope.setValidState(true);
+ this.$scope.changeIcon = (icon:string):void => {
+ this.$scope.selectedIcon = icon;
};
-
+ this.$scope.cancel = ():void => {
+ this.$uibModalInstance.dismiss();
+ };
+ this.$scope.updateIcon = ():void => {
+ let isDirty:boolean = this.component.icon != this.$scope.selectedIcon;
+ this.component.icon = this.$scope.selectedIcon;
+ this.$uibModalInstance.close(isDirty);
+ }
}
+
}
+
+
+
diff --git a/catalog-ui/src/app/view-models/onboard-vendor/onboard-vendor.less b/catalog-ui/src/app/view-models/onboard-vendor/onboard-vendor.less
index bc1404d7c4..71a3101412 100644
--- a/catalog-ui/src/app/view-models/onboard-vendor/onboard-vendor.less
+++ b/catalog-ui/src/app/view-models/onboard-vendor/onboard-vendor.less
@@ -48,28 +48,6 @@
//text-indent: -10px;
}
- /*Added by - Ikram */
- .i-sdc-product-input,
- .i-sdc-product-select {
- border: 1px solid @border_color_f;
- min-height: 30px;
- padding: 0;
- width: 100%;
- margin: 1px 0;
- background-color: #F2F2F2;
- outline: none;
-
- &:disabled {
- .disabled;
- }
- optgroup{
- color: @color_u;
- option{
- color: @color_b;
- }
- }
- }
-
.i-sdc-categories-list-item-icon {
display: inline-block;
float: right;
diff --git a/catalog-ui/src/app/view-models/shared/notification-custom-template.html b/catalog-ui/src/app/view-models/shared/notification-custom-template.html
new file mode 100644
index 0000000000..d8fdf135b9
--- /dev/null
+++ b/catalog-ui/src/app/view-models/shared/notification-custom-template.html
@@ -0,0 +1,14 @@
+<div class="ui-notification">
+ <div class="notification-container">
+ <div class="icon-container">
+ <div class="icon-circle">
+ <div class="icon sprite-new">
+ </div>
+ </div>
+ </div>
+ <div class="msg-content">
+ <h3 ng-show="title" ng-bind-html="title"></h3>
+ <div class="message" ng-bind-html="message"></div>
+ </div>
+ </div>
+</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/activity-log/activity-log.less b/catalog-ui/src/app/view-models/workspace/tabs/activity-log/activity-log.less
index 61bb3e9f01..24f83ec503 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/activity-log/activity-log.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/activity-log/activity-log.less
@@ -1,7 +1,4 @@
.activity-log {
-
- margin-top: 30px;
-
.title-wrapper {
display: flex;
justify-content: flex-end;
@@ -10,7 +7,7 @@
.table-container-flex .table .body .scrollbar-container {
max-height: 448px;
}
-
+
.view-mode {
background-color: @main_color_p;
}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/attributes/attributes.less b/catalog-ui/src/app/view-models/workspace/tabs/attributes/attributes.less
index ffd28afce4..932daa167d 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/attributes/attributes.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/attributes/attributes.less
@@ -13,7 +13,7 @@
}
.table-container-flex {
- margin-top: 27px;
+ margin-top: 0;
.text{
overflow: hidden;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view-model.ts
index 894f8aeb2a..0e5a5fcd6c 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view-model.ts
@@ -18,17 +18,20 @@
* ============LICENSE_END=========================================================
*/
'use strict';
-import {Component, Product, ComponentInstance, IAppMenu} from "app/models";
+import {Component, ComponentInstance, IAppMenu} from "app/models";
import {SharingService, CacheService, EventListenerService, LeftPaletteLoaderService} from "app/services";
import {ModalsHandler, GRAPH_EVENTS, ComponentFactory, ChangeLifecycleStateHandler, MenuHandler, EVENTS} from "app/utils";
import {IWorkspaceViewModelScope} from "../../workspace-view-model";
import {ComponentServiceNg2} from "app/ng2/services/component-services/component.service";
import {ComponentGenericResponse} from "app/ng2/services/responses/component-generic-response";
+import {Resource} from "app/models/components/resource";
+import {ResourceType} from "../../../../utils/constants";
export interface ICompositionViewModelScope extends IWorkspaceViewModelScope {
currentComponent:Component;
- selectedComponent:Component;
+ selectedComponent: Component;
+ componentInstanceNames: Array<string>;
isLoading:boolean;
graphApi:any;
sharingService:SharingService;
@@ -128,7 +131,6 @@ export class CompositionViewModel {
private openUpdateComponentInstanceNameModal = ():void => {
this.ModalsHandler.openUpdateComponentInstanceNameModal(this.$scope.currentComponent).then(()=> {
this.eventListenerService.notifyObservers(GRAPH_EVENTS.ON_COMPONENT_INSTANCE_NAME_CHANGED, this.$scope.currentComponent.selectedInstance);
-
});
};
@@ -205,9 +207,6 @@ export class CompositionViewModel {
if (this.$state.current.name === 'workspace.composition.api') {
this.$state.go('workspace.composition.details');
}
- if (this.$state.current.name === 'workspace.composition.relations' && this.$scope.currentComponent.isProduct()) {
- this.$state.go('workspace.composition.details');
- }
};
this.$scope.onBackgroundClick = ():void => {
@@ -226,7 +225,7 @@ export class CompositionViewModel {
this.$scope.openUpdateModal = ():void => {
this.openUpdateComponentInstanceNameModal();
};
-
+
this.$scope.deleteSelectedComponentInstance = ():void => {
let state = "deleteInstance";
let onOk = ():void => {
@@ -238,7 +237,7 @@ export class CompositionViewModel {
this.ModalsHandler.openAlertModal(title, message).then(onOk);
};
- this.$scope.onComponentInstanceVersionChange = (component:Product):void => {
+ this.$scope.onComponentInstanceVersionChange = (component:Component):void => {
this.$scope.currentComponent = component;
this.$scope.setComponent(this.$scope.currentComponent);
this.$scope.updateSelectedComponent();
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view.html b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view.html
index 761ae53909..e05574e8c8 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view.html
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition-view.html
@@ -6,7 +6,7 @@
is-loading="isLoading"></palette>
<composition-graph component="currentComponent" data-tests-id="canvas"
- is-view-only="isViewOnly"></composition-graph>
+ is-view-only="isViewOnly" with-sidebar="displayDesignerRightSidebar"></composition-graph>
</div>
<div class="w-sdc-designer-sidebar-toggle" data-ng-class="{'active': displayDesignerRightSidebar}"
@@ -21,7 +21,7 @@
<div class="w-sdc-designer-sidebar-logo-ph">
<div class="large {{selectedComponent.iconSprite}} {{selectedComponent.icon}}">
<div ng-if="isComponentInstanceSelected()"
- data-ng-class="{'non-certified':'CERTIFIED' !== selectedComponent.lifecycleState, 'smaller-icon': selectedComponent.icon==='vl' || selectedComponent.icon==='cp'}"
+ data-ng-class="{'non-certified':'CERTIFIED' !== selectedComponent.lifecycleState}"
tooltips tooltip-side="top" tooltip-content="Not certified"></div>
</div>
</div>
@@ -57,7 +57,8 @@
<button class="i-sdc-designer-sidebar-tab" data-ui-sref-active="active"
data-ui-sref="workspace.composition.deployment"
tooltips tooltip-class="tooltip-custom tab-tooltip" tooltip-content="Deployment Artifacts"
- data-tests-id="deployment-artifact-tab">
+ data-tests-id="deployment-artifact-tab"
+ data-ng-if="!isPNF()">
<div class="i-sdc-designer-sidebar-tab-icon sprite-new deployment-artifacts"></div>
</button>
<button tooltips tooltip-class="tooltip-custom tab-tooltip"
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition.less b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition.less
index 7a775bdb11..262dfd9be8 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/composition.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/composition.less
@@ -781,6 +781,71 @@
line-height: 18px;
}
+ //Canvas search menu
+ .w-sdc-search-menu {
+ position:absolute;
+ right: 18px;
+ top:53px;
+ transition: right 0.2s;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ margin-right:10px;
+
+ &.with-sidebar {
+ right:320px;
+ }
+
+ .search-with-autocomplete-container.composition-search {
+ margin-top: 12px;
+
+ .search-bar-input {
+ width: 250px;
+ padding:2px 50px 2px 10px;
+ transition:all 0.4s;
+ }
+ .clear-search-x {
+ top: 17px
+ }
+
+ &:not(:hover):not(.autocomplete-visible):not(.active){
+ border-radius: 0;
+ box-shadow:none;
+
+ .search-bar-input:not(:focus){
+ width: 0px;
+ padding:0;
+ border:none;
+ }
+ .clear-search-x {
+ display:none;
+ }
+ .search-bar-input:not(:focus) ~ .search-bar-button {
+ border-radius: 2px;
+ border:solid 1px #fff;
+ }
+ }
+ }
+
+ .zoom-icons {
+ border:solid 1px #fff;
+ border-radius: 2px;
+ box-shadow: 0px 2px 3.88px 0.12px rgba(0, 0, 0, 0.29);
+ background-color: rgba(234, 234, 234, 0.88);
+ background-repeat: no-repeat;
+ margin-top: 10px;
+
+ &:hover {
+ cursor:pointer;
+ }
+
+ &:active {
+ border:none;
+ background-color: rgba(31, 171, 223, 0.88);
+ }
+ }
+ }
+
// ---------------------------------------------------------------------------------------------------
// Canvas inline menu
// ---------------------------------------------------------------------------------------------------
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts
index 83e4653954..c4c63fae06 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts
@@ -33,13 +33,14 @@ import {ICompositionViewModelScope} from "../../composition-view-model";
import {ArtifactsUtils, ModalsHandler, ArtifactGroupType} from "app/utils";
import {GRAPH_EVENTS} from "app/utils/constants";
import {EventListenerService} from "app/services/event-listener-service";
+import {Dictionary} from "../../../../../../utils/dictionary/dictionary";
export interface IArtifactsViewModelScope extends ICompositionViewModelScope {
artifacts:Array<ArtifactModel>;
artifactType:string;
downloadFile:IFileDownload;
isLoading:boolean;
-
+ displayDeleteButtonMap:Dictionary<string, boolean>;
getTitle():string;
addOrUpdate(artifact:ArtifactModel):void;
delete(artifact:ArtifactModel):void;
@@ -125,6 +126,10 @@ export class ResourceArtifactsViewModel {
}
}
this.$scope.artifacts = artifacts;
+ this.$scope.displayDeleteButtonMap = new Dictionary<string, boolean>();
+ _.forEach(this.$scope.artifacts, (artifact:ArtifactModel)=>{
+ this.$scope.displayDeleteButtonMap[artifact.artifactLabel] = this.displayDeleteButton(artifact);
+ });
this.$scope.isLoading = false;
};
@@ -229,6 +234,17 @@ export class ResourceArtifactsViewModel {
});
};
+ private displayDeleteButton = (artifact:ArtifactModel):boolean => {
+ if(!this.$scope.isViewMode() && artifact.esId){
+ if(this.$scope.isComponentInstanceSelected()){//is artifact of instance
+ return !this.$scope.selectedComponent.deploymentArtifacts || !this.$scope.selectedComponent.deploymentArtifacts[artifact.artifactLabel];//if the artifact is not from instance parent
+ }else{//is artifact of main component
+ return (!artifact.isHEAT() && !artifact.isThirdParty() && !this.$scope.isLicenseArtifact(artifact));
+ }
+ }
+ return false;
+};
+
private initScope = ():void => {
this.$scope.isLoading = false;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html
index 01cb9d4ee4..dfbd639eb4 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html
@@ -36,7 +36,7 @@
<span class="i-sdc-designer-sidebar-section-content-item-artifact-details-desc-label" data-ng-show="artifact.description">Description:</span>{{artifact.description}}
</div>
</div>
- <button ng-if="!isViewMode() && artifact.esId && !isComponentInstanceSelected() && !artifact.isHEAT() && !artifact.isThirdParty() && !isLicenseArtifact(artifact)" class="i-sdc-designer-sidebar-section-content-item-button delete sprite e-sdc-small-icon-delete"
+ <button ng-if="displayDeleteButtonMap[artifact.artifactLabel]" class="i-sdc-designer-sidebar-section-content-item-button delete sprite e-sdc-small-icon-delete"
data-tests-id="delete_{{artifact.artifactDisplayName}}" data-ng-click="delete(artifact)" type="button"></button>
<button ng-if="!isViewMode() && artifact.isHEAT() && isComponentInstanceSelected() && artifact.heatParameters.length"
class="i-sdc-designer-sidebar-section-content-item-button attach sprite e-sdc-small-icon-pad"
@@ -60,7 +60,7 @@
</div>
</div>
- <div class="w-sdc-designer-sidebar-section-footer" data-ng-if="!isViewMode() && artifactType!=='api' && (!isComponentInstanceSelected()||selectedComponent.resourceType=='VF') && !currentComponent.isProduct() && ('deployment' != artifactType || selectedComponent.isComplex())">
+ <div class="w-sdc-designer-sidebar-section-footer" data-ng-if="!isViewMode() && artifactType!=='api' && (!isComponentInstanceSelected()||selectedComponent.resourceType=='VF') && ('deployment' != artifactType || selectedComponent.isComplex())">
<button class="w-sdc-designer-sidebar-section-footer-action tlv-btn blue" data-tests-id="add_Artifact_Button" data-ng-click="addOrUpdate({})" type="button">Add Artifact</button>
</div>
</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts
index 223d6cf964..0d8d17ec73 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts
@@ -82,7 +82,7 @@ export class DetailsViewModel {
let highestVersion = _.last(Object.keys(this.$scope.selectedComponent.allVersions));
if (parseFloat(highestVersion) % 1) { //if highest is minor, make sure it is the latest checked in -
- let latestVersionComponent:LeftPaletteComponent = _.maxBy(_.filter(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(this.$scope.currentComponent.componentType), (component:LeftPaletteComponent) => { //latest checked in
+ let latestVersionComponent:LeftPaletteComponent = _.maxBy(_.filter(this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(this.$scope.currentComponent), (component:LeftPaletteComponent) => { //latest checked in
return (component.systemName === this.$scope.selectedComponent.systemName
|| component.uuid === this.$scope.selectedComponent.uuid);
}),(component)=>{return component.version});
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view.html b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view.html
index 70dc58075a..0418515789 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view.html
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details-view.html
@@ -23,9 +23,9 @@
<span class="i-sdc-designer-sidebar-section-content-item-label">Version:</span>
<span class="i-sdc-designer-sidebar-section-content-item-value"
- data-ng-if="!isComponentInstanceSelected() || selectedComponent.isVl()" data-tests-id="rightTab_version" data-ng-bind="selectedComponent.version"></span>
+ data-ng-if="!isComponentInstanceSelected()" data-tests-id="rightTab_version" data-ng-bind="selectedComponent.version"></span>
- <ng-form name="editForm" data-ng-if="isComponentInstanceSelected() && !selectedComponent.isVl()">
+ <ng-form name="editForm" data-ng-if="isComponentInstanceSelected()">
<select data-ng-model="editResourceVersion.changeVersion" name="changeVersion" data-tests-id="changeVersion" data-ng-disabled="$parent.isViewOnly"
class="i-sdc-designer-sidebar-section-content-item-value i-sdc-form-select"
data-ng-class="{'minor': (editResourceVersion.changeVersion)%1}"
@@ -77,6 +77,27 @@
data-tests-id="rightTab_vendorRelease">
</span>
</div>
+ <div class="i-sdc-designer-sidebar-section-content-item" data-ng-if="selectedComponent.isResource()">
+ <span class="i-sdc-designer-sidebar-section-content-item-label" translate="GENERAL_LABEL_RESOURCE_MODEL_NUMBER"></span>
+ <span class="i-sdc-designer-sidebar-section-content-item-value vendor-model-number" data-ng-bind="selectedComponent.resourceVendorModelNumber"
+ tooltips tooltip-class="tooltip-custom break-word-tooltip" tooltip-content="&#8203;{{selectedComponent.resourceVendorModelNumber}}"
+ data-tests-id="rightTab_resourceVendorModelNumber">
+ </span>
+ </div>
+ <div class="i-sdc-designer-sidebar-section-content-item" data-ng-if="selectedComponent.isService()">
+ <span class="i-sdc-designer-sidebar-section-content-item-label" translate="GENERAL_LABEL_SERVICE_TYPE"></span>
+ <span class="i-sdc-designer-sidebar-section-content-item-value" data-ng-bind="selectedComponent.serviceType"
+ tooltips tooltip-class="tooltip-custom break-word-tooltip" tooltip-content="&#8203;{{selectedComponent.serviceType}}"
+ data-tests-id="rightTab_serviceType">
+ </span>
+ </div>
+ <div class="i-sdc-designer-sidebar-section-content-item" data-ng-if="selectedComponent.isService()">
+ <span class="i-sdc-designer-sidebar-section-content-item-label" translate="GENERAL_LABEL_SERVICE_ROLE"></span>
+ <span class="i-sdc-designer-sidebar-section-content-item-value" data-ng-bind="selectedComponent.serviceRole"
+ tooltips tooltip-class="tooltip-custom break-word-tooltip" tooltip-content="&#8203;{{selectedComponent.serviceRole}}"
+ data-tests-id="rightTab_serviceRole">
+ </span>
+ </div>
<div class="i-sdc-designer-sidebar-section-content-item">
<span class="i-sdc-designer-sidebar-section-content-item-label" translate="GENERAL_LABEL_CONTACT_ID"></span>
<span class="i-sdc-designer-sidebar-section-content-item-value" data-ng-bind="selectedComponent.contactId"
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details.less b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details.less
index 3ebb14c2b8..0ed72e2f00 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/composition/tabs/details/details.less
@@ -37,6 +37,9 @@
max-width: 160px;
vertical-align:bottom;
font-weight: normal;
+ &.vendor-model-number{
+ max-width: 110px;
+ }
&.additional-information{
max-width:160px;
display: inline-block;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less b/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less
index 3596a217b8..f67d088b5a 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less
@@ -71,7 +71,7 @@
.table-container-flex {
- margin-top: 27px;
+ margin-top: 0;
.text{
overflow: hidden;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
index 05b3324bbb..1dc326a7c0 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
@@ -22,14 +22,16 @@
import {ModalsHandler, ValidationUtils, EVENTS, CHANGE_COMPONENT_CSAR_VERSION_FLAG, ComponentType, DEFAULT_ICON,
ResourceType} from "app/utils";
import {CacheService, EventListenerService, ProgressService} from "app/services";
-import {IAppConfigurtaion, Product, IValidate, IMainCategory, Resource, ISubCategory,Service} from "app/models";
+import {IAppConfigurtaion, IValidate, IMainCategory, Resource, ISubCategory,Service} from "app/models";
import {IWorkspaceViewModelScope} from "app/view-models/workspace/workspace-view-model";
export class Validation {
componentNameValidationPattern:RegExp;
contactIdValidationPattern:RegExp;
tagValidationPattern:RegExp;
- vendorValidationPattern:RegExp;
+ VendorReleaseValidationPattern:RegExp;
+ VendorNameValidationPattern:RegExp;
+ VendorModelNumberValidationPattern:RegExp;
commentValidationPattern:RegExp;
projectCodeValidationPattern:RegExp;
}
@@ -63,6 +65,8 @@ export interface IGeneralScope extends IWorkspaceViewModelScope {
onEcompGeneratedNamingChange():void;
openOnBoardingModal():void;
initCategoreis():void;
+ updateIcon():void;
+ possibleToUpdateIcon():boolean;
}
export class GeneralViewModel {
@@ -73,7 +77,9 @@ export class GeneralViewModel {
'ComponentNameValidationPattern',
'ContactIdValidationPattern',
'TagValidationPattern',
- 'VendorValidationPattern',
+ 'VendorReleaseValidationPattern',
+ 'VendorNameValidationPattern',
+ 'VendorModelNumberValidationPattern',
'CommentValidationPattern',
'ValidationUtils',
'sdcConfig',
@@ -93,7 +99,9 @@ export class GeneralViewModel {
private ComponentNameValidationPattern:RegExp,
private ContactIdValidationPattern:RegExp,
private TagValidationPattern:RegExp,
- private VendorValidationPattern:RegExp,
+ private VendorReleaseValidationPattern:RegExp,
+ private VendorNameValidationPattern:RegExp,
+ private VendorModelNumberValidationPattern:RegExp,
private CommentValidationPattern:RegExp,
private ValidationUtils:ValidationUtils,
private sdcConfig:IAppConfigurtaion,
@@ -121,7 +129,9 @@ export class GeneralViewModel {
this.$scope.validation.componentNameValidationPattern = this.ComponentNameValidationPattern;
this.$scope.validation.contactIdValidationPattern = this.ContactIdValidationPattern;
this.$scope.validation.tagValidationPattern = this.TagValidationPattern;
- this.$scope.validation.vendorValidationPattern = this.VendorValidationPattern;
+ this.$scope.validation.VendorReleaseValidationPattern = this.VendorReleaseValidationPattern;
+ this.$scope.validation.VendorNameValidationPattern = this.VendorNameValidationPattern;
+ this.$scope.validation.VendorModelNumberValidationPattern = this.VendorModelNumberValidationPattern;
this.$scope.validation.commentValidationPattern = this.CommentValidationPattern;
this.$scope.validation.projectCodeValidationPattern = this.ProjectCodeValidationPattern;
};
@@ -140,12 +150,6 @@ export class GeneralViewModel {
this.$scope.componentCategories = new componentCategories();
this.$scope.componentCategories.selectedCategory = this.$scope.component.selectedCategory;
- // Workaround to short vendor name to 25 chars
- // Amdocs send 27 chars, and the validation pattern is 25 chars.
- if (this.$scope.component.vendorName) {
- this.$scope.component.vendorName = this.$scope.component.vendorName.substr(0, 25);
- }
-
// Init UIModel
this.$scope.component.tags = _.without(this.$scope.component.tags, this.$scope.component.name);
@@ -202,10 +206,7 @@ export class GeneralViewModel {
};
//TODO remove this after handling contact in UI
- if (this.$scope.component.isProduct() && this.$scope.isCreateMode()) {
- (<Product>this.$scope.component).contacts = [];
- (<Product>this.$scope.component).contacts.push(this.cacheService.get("user").userId);
- } else if (this.$scope.isCreateMode()) {
+ if (this.$scope.isCreateMode()) {
this.$scope.component.contactId = this.cacheService.get("user").userId;
}
@@ -273,6 +274,24 @@ export class GeneralViewModel {
});
};
+ this.$scope.updateIcon = ():void => {
+ this.ModalsHandler.openUpdateIconModal(this.$scope.component).then((isDirty:boolean)=> {
+ if(!this.$scope.isCreateMode()){
+ this.$state.current.data.unsavedChanges = this.$state.current.data.unsavedChanges || isDirty;
+ }
+ }, ()=> {
+ // ERROR
+ });
+ };
+
+ this.$scope.possibleToUpdateIcon = ():boolean => {
+ if(this.$scope.componentCategories.selectedCategory && (!this.$scope.component.isResource() || this.$scope.component.vendorName)){
+ return true;
+ }else{
+ return false;
+ }
+ }
+
this.$scope.validateName = (isInit:boolean):void => {
if (isInit === undefined) {
isInit = false;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
index 2ad0cbacd6..d3626803e9 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
+++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
@@ -4,122 +4,121 @@
<div class="w-sdc-form-section-container">
- <!--------------------- IMPORT TOSCA FILE USING BROWSE (ALSO VFC) -------------------->
- <div class="i-sdc-form-item" ng-if="isShowFileBrowse">
- <label class="i-sdc-form-label" data-ng-class="{'required':isCreateMode()}">{{browseFileLabel}}</label>
- <file-upload id="fileUploadElement"
- class="i-sdc-form-input"
- element-name="fileElement"
- element-disabled="{{!isCreateMode()&&!(isEditMode()&&component.resourceType=='VF')}} || {{isViewMode()}}"
- form-element="editForm"
- file-model="component.importedFile"
- on-file-changed-in-directive="uploadFileChangedInGeneralTab"
- extensions="{{importedFileExtension}}"
- default-text="'Browse to select file'"
- data-ng-class="{'error':!(isEditMode()&&component.resourceType=='VF') && (!editForm.fileElement.$valid || !component.importedFile.filename)}"></file-upload>
- </div>
-
- <!--------------------- IMPORT TOSCA FILE USING ONBOARDING -------------------->
- <div class="i-sdc-form-item" ng-if="isShowOnboardingSelectionBrowse">
- <label class="i-sdc-form-label required">Select VSP</label>
- <div class="i-sdc-form-file-upload i-sdc-form-input">
- <span class="i-sdc-form-file-name" data-tests-id="filename">{{(fileModel && fileModel.filename) || importedToscaBrowseFileText}}</span>
- <div class="i-sdc-form-file-upload-x-btn" ng-click="cancel()" data-ng-show="fileModel.filename && fileModel.filename!=='' && elementDisabled!=='true'"></div>
- <input type="button" name="fileElement"/>
- <div class="file-upload-browse-btn" data-ng-click="openOnBoardingModal()" data-tests-id="browseButton">Browse</div>
- </div>
- </div>
-
- <div class="input-error-file-upload" data-ng-show="component.importedFile && (!editForm.fileElement.$valid || !component.importedFile.filename)">
- <!-- editForm.fileElement.$error.required <== Can not use this, because the browse is done from outside for the first time -->
- <span ng-show="!(isEditMode()&&component.resourceType=='VF')&&!component.importedFile.filename" translate="NEW_SERVICE_RESOURCE_ERROR_TOSCA_FILE_REQUIRED"></span><!-- Required -->
- <span ng-show="editForm.fileElement.$error.maxsize" translate="VALIDATION_ERROR_MAX_FILE_SIZE"></span>
- <span ng-show="editForm.fileElement.$error.filetype" translate="NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS" translate-values="{'extensions': '{{importedFileExtension}}' }"></span>
- <span ng-show="editForm.fileElement.$error.emptyFile" translate="VALIDATION_ERROR_EMPTY_FILE"></span>
- </div>
- <!--------------------- IMPORT TOSCA FILE -------------------->
-
<div class="w-sdc-form-columns-wrapper">
<div class="w-sdc-form-column">
-
- <!--------------------- NAME -------------------->
- <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.componentName)}">
- <label class="i-sdc-form-label required">Name</label>
- <input class="i-sdc-form-input"
- data-ng-class="{'view-mode': isViewMode()}"
- name="componentName"
- data-ng-init="isCreateMode() && validateName(true)"
- data-ng-maxlength="{{component.isProduct()?'25':'50'}}"
- maxlength="{{component.isProduct()?'25':'50'}}"
- data-ng-minlength="{{component.isProduct()?'4':'0'}}"
- minlength="{{component.isProduct()?'4':'0'}}"
- data-ng-model="component.name"
- type="text"
- data-required
- data-ng-model-options="{ debounce: 500 }"
- data-ng-pattern="validation.componentNameValidationPattern"
- data-ng-disabled="component.isAlreadyCertified()"
- data-tests-id="name"
- autofocus
- ng-readonly="isViewMode()"
- />
-
- <div class="input-error" data-ng-show="validateField(editForm.componentName)">
- <span ng-show="editForm.componentName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED"></span>
- <span ng-show="editForm.componentName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span>
- <span ng-show="editForm.componentName.$error.minlength" translate="VALIDATION_ERROR_MIN_LENGTH" translate-values="{'min': '4' }"></span>
- <span ng-show="editForm.componentName.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_NAME_EXISTS"></span>
- <span ng-show="editForm.componentName.$error.pattern" translate="VALIDATION_ERROR_INVALID_NAME"></span>
+ <div class="upper-general-fields">
+ <div class="selected-icon-container" data-ng-class="{'show-only-on-over':'defaulticon'!=component.icon && !isViewMode()}">
+ <div class="selected-icon-inner-container">
+ <div class="sprite-new update-component-icon" data-ng-click="updateIcon()" data-ng-if="!isViewMode() && possibleToUpdateIcon()"></div>
+ <div class="i-sdc-form-item-suggested-icon large selected-icon {{component.iconSprite}} {{component.icon}}"
+ data-ng-class="{ 'disable': isViewMode() || !possibleToUpdateIcon() }"
+ ng-model="component.icon"
+ tooltips tooltip-content='{{component.icon | translate}}'
+ >
+ </div>
+ </div>
+ </div>
+ <div class="name-and-category-fields">
+ <!--------------------- NAME -------------------->
+ <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.componentName)}">
+ <label class="i-sdc-form-label required">Name</label>
+ <input class="i-sdc-form-input"
+ data-ng-class="{'view-mode': isViewMode()}"
+ name="componentName"
+ data-ng-init="isCreateMode() && validateName(true)"
+ data-ng-maxlength="50"
+ maxlength="50"
+ data-ng-model="component.name"
+ type="text"
+ data-required
+ data-ng-model-options="{ debounce: 500 }"
+ data-ng-pattern="validation.componentNameValidationPattern"
+ data-ng-disabled="component.isAlreadyCertified()"
+ data-tests-id="name"
+ autofocus
+ ng-readonly="isViewMode()"
+ />
+
+ <div class="input-error" data-ng-show="validateField(editForm.componentName)">
+ <span ng-show="editForm.componentName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED"></span>
+ <span ng-show="editForm.componentName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span>
+ <span ng-show="editForm.componentName.$error.minlength" translate="VALIDATION_ERROR_MIN_LENGTH" translate-values="{'min': '4' }"></span>
+ <span ng-show="editForm.componentName.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_NAME_EXISTS"></span>
+ <span ng-show="editForm.componentName.$error.pattern" translate="VALIDATION_ERROR_INVALID_NAME"></span>
+ </div>
+ </div>
+ <!--------------------- NAME -------------------->
+
+
+
+ <!--------------------- CATEGORIES -------------------->
+ <div class="i-sdc-form-item"
+ data-ng-class="{'error': validateField(editForm.category)}">
+ <loader data-display="!categories && !initCategoreis()" relative="true"></loader>
+ <label class="i-sdc-form-label required">Category</label>
+ <select class="i-sdc-form-select"
+ data-required
+ name="category"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-change="onCategoryChange()"
+ data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='')"
+ data-ng-model="componentCategories.selectedCategory"
+ data-tests-id="selectGeneralCategory"
+ >
+ <option value="">Select category</option>
+ <optgroup ng-if="component.isResource()" data-ng-repeat="mainCategory in categories | orderBy:['name']" label="{{mainCategory.name}}" data-tests-id="{{mainCategory.name}}">
+ <option data-ng-repeat="subCategory in mainCategory.subcategories track by $index"
+ data-ng-selected="componentCategories.selectedCategory === calculateUnique(mainCategory.name,subCategory.name)"
+ data-tests-id="{{subCategory.name}}"
+ value="{{calculateUnique(mainCategory.name, subCategory.name)}}">{{subCategory.name}}
+
+ </option>
+ </optgroup>
+ <option ng-if="component.isService()" data-ng-repeat="mainCategory in categories | orderBy:['name']"
+ data-ng-selected="component.selectedCategory===mainCategory.name"
+ value="{{mainCategory.name}}"
+ data-tests-id="{{mainCategory.name}}">{{mainCategory.name}}</option>
+ </select>
+
+ <div class="input-error" data-ng-show="validateField(editForm.category)">
+ <span ng-show="editForm.category.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CATEGORY_REQUIRED"></span>
+ </div>
+ </div>
+ <!--------------------- CATEGORIES -------------------->
+ </div>
</div>
- </div>
- <!--------------------- NAME -------------------->
+ <!--------------------- RESOURCE TAGS -------------------->
+ <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.tags)}">
+ <label class="i-sdc-form-label">Tags</label>
- <!--------------------- FULL NAME -------------------->
- <div ng-if="component.isProduct()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.fullName)}">
- <label class="i-sdc-form-label required">Full Name</label>
- <input class="i-sdc-form-input"
- name="fullName"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-change="validateName()"
- data-ng-maxlength="100"
- maxlength="100"
- data-ng-minlength="4"
- minlength="4"
- data-ng-model="component.fullName"
- type="text"
- data-required
- data-ng-model-options="{ debounce: 500 }"
- data-ng-pattern="validation.commentValidationPattern"
- data-tests-id="fullName"
- autofocus
- ng-readonly="isViewMode()"
- />
+ <sdc-tags form-element="editForm" element-name="tags" max-tags="20" class="i-sdc-form-item-tags"
+ sdc-disabled="isViewMode()"
+ tags="component.tags"
+ pattern="validation.tagValidationPattern"
+ special-tag="component.name"></sdc-tags>
- <div class="input-error" data-ng-show="validateField(editForm.fullName)">
- <span ng-show="editForm.fullName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED"></span>
- <span ng-show="editForm.fullName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span>
- <span ng-show="editForm.fullName.$error.minlength" translate="VALIDATION_ERROR_MIN_LENGTH" translate-values="{'min': '4' }"></span>
- <span ng-show="editForm.fullName.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_NAME_EXISTS"></span>
- <span ng-show="editForm.fullName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ <div class="input-error" data-ng-show="validateField(editForm.tags)">
+ <span ng-show="editForm.tags.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ <span ng-show="editForm.tags.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_TAG_NAME_EXIST"></span>
</div>
</div>
- <!--------------------- NAME -------------------->
+ <!--------------------- RESOURCE TAGS -------------------->
<!--------------------- DESCRIPTION -------------------->
- <div class="i-sdc-form-item"
+ <div class="i-sdc-form-item description-field"
data-ng-class="{'error': validateField(editForm.description)}">
<label class="i-sdc-form-label required">Description</label>
- <textarea class="description"
- name="description"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-maxlength="1024"
- data-required
- data-ng-model="component.description"
- data-ng-model-options="{ debounce: 500 }"
- data-ng-pattern="validation.commentValidationPattern"
- maxlength="1024"
- data-tests-id="description"></textarea>
+ <textarea class="description"
+ name="description"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-maxlength="1024"
+ data-required
+ data-ng-model="component.description"
+ data-ng-model-options="{ debounce: 500 }"
+ data-ng-pattern="validation.commentValidationPattern"
+ maxlength="1024"
+ data-tests-id="description"></textarea>
<!-- placeholder="Description here..." -->
<div class="input-error" data-ng-show="validateField(editForm.description)">
@@ -130,110 +129,85 @@
</div>
<!--------------------- DESCRIPTION -------------------->
- <!--------------------- CATEGORIES -------------------->
- <div class="i-sdc-form-item"
- data-ng-class="{'error': validateField(editForm.category)}"
- data-ng-if="!component.isProduct()">
- <loader data-display="!categories && !initCategoreis()" relative="true"></loader>
- <label class="i-sdc-form-label required">Category</label>
- <select class="i-sdc-form-select"
- data-required
- name="category"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-change="onCategoryChange()"
- data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.selectedCategory && component.selectedCategory!=='')"
- data-ng-model="componentCategories.selectedCategory"
- data-tests-id="selectGeneralCategory"
- >
- <option value="">Select category</option>
- <optgroup ng-if="component.isResource()" data-ng-repeat="mainCategory in categories | orderBy:['name']" label="{{mainCategory.name}}" data-tests-id="{{mainCategory.name}}">
- <option data-ng-repeat="subCategory in mainCategory.subcategories track by $index"
- data-ng-selected="componentCategories.selectedCategory === calculateUnique(mainCategory.name,subCategory.name)"
- data-tests-id="{{subCategory.name}}"
- value="{{calculateUnique(mainCategory.name, subCategory.name)}}">{{subCategory.name}}
-
- </option>
- </optgroup>
- <option ng-if="component.isService()" data-ng-repeat="mainCategory in categories | orderBy:['name']"
- data-ng-selected="component.selectedCategory===mainCategory.name"
- value="{{mainCategory.name}}"
- data-tests-id="{{mainCategory.name}}">{{mainCategory.name}}</option>
- </select>
-
- <div class="input-error" data-ng-show="validateField(editForm.category)">
- <span ng-show="editForm.category.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CATEGORY_REQUIRED"></span>
- </div>
- </div>
- <!--------------------- CATEGORIES -------------------->
-
- <!--------------------- PROJECT CODE -------------------->
- <div class="i-sdc-form-item" data-ng-if="!component.isResource()"
- data-ng-class="{'error': validateField(editForm.projectCode)}">
- <label class="i-sdc-form-label required" translate="GENERAL_LABEL_PROJECT_CODE"></label>
- <input class="i-sdc-form-input" type="text"
- data-ng-model="component.projectCode"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-model-options="{ debounce: 500 }"
- maxlength="50"
- data-required
- name="projectCode"
- data-ng-pattern="validation.projectCodeValidationPattern"
- data-tests-id="projectCode"
- />
+ </div><!-- Close w-sdc-form-column -->
- <div class="input-error" data-ng-show="validateField(editForm.projectCode)">
- <span ng-show="editForm.projectCode.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_REQUIRED"></span>
- <span ng-show="editForm.projectCode.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_NOT_VALID"></span>
+ <div class="w-sdc-form-column">
+ <!--------------------- IMPORT TOSCA FILE USING BROWSE (ALSO VFC) -------------------->
+ <div class="i-sdc-form-item" ng-if="isShowFileBrowse">
+ <label class="i-sdc-form-label" data-ng-class="{'required':isCreateMode()}">{{browseFileLabel}}</label>
+ <file-upload id="fileUploadElement"
+ class="i-sdc-form-input"
+ element-name="fileElement"
+ element-disabled="{{!isCreateMode()&&!(isEditMode()&&component.resourceType=='VF')}} || {{isViewMode()}}"
+ form-element="editForm"
+ file-model="component.importedFile"
+ on-file-changed-in-directive="uploadFileChangedInGeneralTab"
+ extensions="{{importedFileExtension}}"
+ default-text="'Browse to select file'"
+ data-ng-class="{'error':!(isEditMode()&&component.resourceType=='VF') && (!editForm.fileElement.$valid || !component.importedFile.filename)}"></file-upload>
</div>
- </div>
+ <!--------------------- IMPORT TOSCA FILE USING ONBOARDING -------------------->
+ <div class="i-sdc-form-item" ng-if="isShowOnboardingSelectionBrowse">
+ <label class="i-sdc-form-label required">Select VSP</label>
+ <div class="i-sdc-form-file-upload i-sdc-form-input">
+ <span class="i-sdc-form-file-name" data-tests-id="filename">{{(fileModel && fileModel.filename) || importedToscaBrowseFileText}}</span>
+ <div class="i-sdc-form-file-upload-x-btn" ng-click="cancel()" data-ng-show="fileModel.filename && fileModel.filename!=='' && elementDisabled!=='true'"></div>
+ <input type="button" name="fileElement"/>
+ <div class="file-upload-browse-btn" data-ng-click="openOnBoardingModal()" data-tests-id="browseButton">Browse</div>
+ </div>
+ </div>
- <!--------------------- ECOMPGENERATEDNAMING -------------------->
+ <div class="input-error-file-upload" data-ng-show="component.importedFile && (!editForm.fileElement.$valid || !component.importedFile.filename)">
+ <!-- editForm.fileElement.$error.required <== Can not use this, because the browse is done from outside for the first time -->
+ <span ng-show="!(isEditMode()&&component.resourceType=='VF')&&!component.importedFile.filename" translate="NEW_SERVICE_RESOURCE_ERROR_TOSCA_FILE_REQUIRED"></span><!-- Required -->
+ <span ng-show="editForm.fileElement.$error.maxsize" translate="VALIDATION_ERROR_MAX_FILE_SIZE"></span>
+ <span ng-show="editForm.fileElement.$error.filetype" translate="NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS" translate-values="{'extensions': '{{importedFileExtension}}' }"></span>
+ <span ng-show="editForm.fileElement.$error.emptyFile" translate="VALIDATION_ERROR_EMPTY_FILE"></span>
+ </div>
+ <!--------------------- IMPORT TOSCA FILE -------------------->
- <div class="i-sdc-form-item"
- data-ng-class="{'error': validateField(editForm.ecompGeneratedNaming)}"
- data-ng-if="component.isService()">
- <label class="i-sdc-form-label">Ecomp Generated Naming</label>
- <select class="i-sdc-form-select"
- data-required
- name="ecompGeneratedNaming"
- data-ng-change="onEcompGeneratedNamingChange()"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-model="component.ecompGeneratedNaming"
- data-tests-id="ecompGeneratedNaming">
- <option ng-value="true">true</option>
- <option ng-value="false">false</option>
- </select>
- <div class="input-error" data-ng-show="validateField(editForm.ecompGeneratedNaming)">
+ <!--------------------- USER ID -------------------->
+ <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.contactId)}">
+ <label class="i-sdc-form-label required" translate="GENERAL_LABEL_CONTACT_ID"></label>
+ <input class="i-sdc-form-input" type="text"
+ data-ng-model="component.contactId"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-required="true"
+ name="contactId"
+ data-ng-pattern="validation.contactIdValidationPattern"
+ data-ng-model-options="{ debounce: 500 }"
+ data-tests-id="contactId"
+ maxlength="50"
+ />
+ <div class="input-error" data-ng-show="validateField(editForm.contactId)">
+ <span ng-show="editForm.contactId.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_REQUIRED"></span>
+ <span ng-show="editForm.contactId.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_NOT_VALID"></span>
</div>
</div>
- <!--------------------- CATEGORIES -------------------->
-
- <!--------------------- NAMING POLICY -------------------->
- <div ng-if="component.isService()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.namingPolicy)}">
- <label class="i-sdc-form-label">Naming policy</label>
- <input class="i-sdc-form-input"
- name="fullName"
- data-ng-class="{'view-mode': isViewMode() || !component.ecompGeneratedNaming}"
- data-ng-maxlength="100"
- maxlength="100"
- data-ng-model="component.namingPolicy"
- type="text"
+ <!--------------------- USER ID -------------------->
+
+ <!--------------------- PROJECT CODE -------------------->
+ <div class="i-sdc-form-item" data-ng-if="!component.isResource()"
+ data-ng-class="{'error': validateField(editForm.projectCode)}">
+ <label class="i-sdc-form-label required" translate="GENERAL_LABEL_PROJECT_CODE"></label>
+ <input class="i-sdc-form-input" type="text"
+ data-ng-model="component.projectCode"
+ data-ng-class="{'view-mode': isViewMode()}"
data-ng-model-options="{ debounce: 500 }"
- data-ng-pattern="validation.commentValidationPattern"
- data-tests-id="namingPolicy"
- autofocus
- ng-readonly="isViewMode() || !component.ecompGeneratedNaming"
+ maxlength="50"
+ data-required
+ name="projectCode"
+ data-ng-pattern="validation.projectCodeValidationPattern"
+ data-tests-id="projectCode"
/>
- <div class="input-error" data-ng-show="validateField(editForm.namingPolicy)">
- <span ng-show="editForm.namingPolicy.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '100' }"></span>
- <span ng-show="editForm.namingPolicy.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ <div class="input-error" data-ng-show="validateField(editForm.projectCode)">
+ <span ng-show="editForm.projectCode.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_REQUIRED"></span>
+ <span ng-show="editForm.projectCode.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_PROJECT_CODE_NOT_VALID"></span>
</div>
</div>
- <!--------------------- NAMING POLICY -------------------->
-
<!--------------------- VENDOR NAME -------------------->
<div ng-if="component.isResource()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.vendorName)}">
@@ -242,20 +216,20 @@
data-ng-class="{'view-mode': isViewMode()}"
data-ng-model="component.vendorName"
data-ng-model-options="{ debounce: 500 }"
- data-ng-maxlength="25"
+ data-ng-maxlength="60"
data-required
ng-click="oldValue = component.vendorName"
name="vendorName"
data-ng-change="onVendorNameChange(oldValue)"
- data-ng-pattern="validation.vendorValidationPattern"
- maxlength="25"
+ data-ng-pattern="validation.VendorNameValidationPattern"
+ maxlength="60"
data-ng-disabled="component.isAlreadyCertified() || (component.isCsarComponent() && component.vendorName && component.vendorName!=='')"
data-tests-id="vendorName"
- />
+ />
<div class="input-error" data-ng-show="validateField(editForm.vendorName)">
<span ng-show="editForm.vendorName.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_VENDOR_NAME_REQUIRED"></span>
- <span ng-show="editForm.vendorName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '25' }"></span>
+ <span ng-show="editForm.vendorName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '60' }"></span>
<span ng-show="editForm.vendorName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
</div>
@@ -275,80 +249,160 @@
data-ng-maxlength="25"
data-required
name="vendorRelease"
- data-ng-pattern="validation.vendorValidationPattern"
+ data-ng-pattern="validation.VendorReleaseValidationPattern"
maxlength="25"
data-ng-disabled="component.isCsarComponent() && component.vendorRelease && component.vendorRelease!==''"
data-tests-id="vendorRelease"
- />
+ />
<div class="input-error" data-ng-show="validateField(editForm.vendorRelease)">
<span ng-show="editForm.vendorRelease.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_VENDOR_RELEASE_REQUIRED"></span>
- <span ng-show="editForm.vendorRelease.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '128' }"></span>
+ <span ng-show="editForm.vendorRelease.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '25' }"></span>
<span ng-show="editForm.vendorRelease.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
</div>
</div>
<!--------------------- VENDOR RELEASE -------------------->
+ <!--------------------- Resource Model Number -------------------->
+ <div ng-if="component.isResource()"
+ class="i-sdc-form-item"
+ data-ng-class="{'error': validateField(editForm.resourceVendorModelNumber)}">
+ <label class="i-sdc-form-label" translate="GENERAL_TAB_LABEL_RESOURCE_MODEL_NUMBER"></label>
+ <input class="i-sdc-form-input" type="text"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-model="component.resourceVendorModelNumber"
+ data-ng-model-options="{ debounce: 500 }"
+ data-ng-maxlength="65"
+ name="resourceVendorModelNumber"
+ data-ng-pattern="validation.VendorModelNumberValidationPattern"
+ maxlength="65"
+ data-tests-id="resourceVendorModelNumber"
+ />
+ <div class="input-error" data-ng-show="validateField(editForm.resourceVendorModelNumber)">
+ <span ng-show="editForm.resourceVendorModelNumber.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '65' }"></span>
+ <span ng-show="editForm.resourceVendorModelNumber.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ </div>
+ </div>
+ <!--------------------- Resource Model Number -------------------->
- </div><!-- Close w-sdc-form-column -->
-
- <div class="w-sdc-form-column">
-
- <!--------------------- RESOURCE TAGS -------------------->
- <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.tags)}">
- <label class="i-sdc-form-label">Tags</label>
+ <!--------------------- ECOMPGENERATEDNAMING -------------------->
- <sdc-tags form-element="editForm" element-name="tags" max-tags="20" class="i-sdc-form-item-tags"
- sdc-disabled="isViewMode()"
- tags="component.tags"
- pattern="validation.tagValidationPattern"
- special-tag="component.name"></sdc-tags>
+ <div class="i-sdc-form-item"
+ data-ng-class="{'error': validateField(editForm.ecompGeneratedNaming)}"
+ data-ng-if="component.isService()">
+ <label class="i-sdc-form-label">Ecomp Generated Naming</label>
+ <select class="i-sdc-form-select"
+ data-required
+ name="ecompGeneratedNaming"
+ data-ng-change="onEcompGeneratedNamingChange()"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-model="component.ecompGeneratedNaming"
+ data-tests-id="ecompGeneratedNaming">
+ <option ng-value="true">true</option>
+ <option ng-value="false">false</option>
+ </select>
+ <div class="input-error" data-ng-show="validateField(editForm.ecompGeneratedNaming)">
- <div class="input-error" data-ng-show="validateField(editForm.tags)">
- <span ng-show="editForm.tags.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
- <span ng-show="editForm.tags.$error.nameExist" translate="NEW_SERVICE_RESOURCE_ERROR_TAG_NAME_EXIST"></span>
+ </div>
</div>
- </div>
- <!--------------------- RESOURCE TAGS -------------------->
+ <!--------------------- CATEGORIES -------------------->
- <!--------------------- USER ID -------------------->
- <div class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.contactId)}">
- <label class="i-sdc-form-label " data-ng-class="{'required':!component.isProduct()}" translate="GENERAL_LABEL_CONTACT_ID"></label>
- <input class="i-sdc-form-input" type="text" data-ng-if="!component.isProduct()"
- data-ng-model="component.contactId"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-required="!component.isProduct()"
- name="contactId"
- data-ng-pattern="validation.contactIdValidationPattern"
- data-ng-model-options="{ debounce: 500 }"
- data-tests-id="contactId"
- maxlength="50"
+ <!--------------------- NAMING POLICY -------------------->
+ <div ng-if="component.isService()" class="i-sdc-form-item" data-ng-class="{'error': validateField(editForm.namingPolicy)}">
+ <label class="i-sdc-form-label">Naming policy</label>
+ <input class="i-sdc-form-input"
+ name="fullName"
+ data-ng-class="{'view-mode': isViewMode() || !component.ecompGeneratedNaming}"
+ data-ng-maxlength="100"
+ maxlength="100"
+ data-ng-model="component.namingPolicy"
+ type="text"
+ data-ng-model-options="{ debounce: 500 }"
+ data-ng-pattern="validation.commentValidationPattern"
+ data-tests-id="namingPolicy"
+ autofocus
+ ng-readonly="isViewMode() || !component.ecompGeneratedNaming"
/>
- <input class="i-sdc-form-input" type="text" data-ng-if="component.isProduct()"
- data-ng-model="component.contacts[0]"
- data-ng-class="{'view-mode': isViewMode()}"
- data-ng-required="!component.isProduct()"
- name="contactId"
- data-ng-pattern="validation.contactIdValidationPattern"
- data-ng-model-options="{ debounce: 500 }"
- data-tests-id="contactId"
- maxlength="50"
- />
- <div class="input-error" data-ng-show="validateField(editForm.contactId)">
- <span ng-show="editForm.contactId.$error.required" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_REQUIRED"></span>
- <span ng-show="editForm.contactId.$error.pattern" translate="NEW_SERVICE_RESOURCE_ERROR_CONTACT_NOT_VALID"></span>
+ <div class="input-error" data-ng-show="validateField(editForm.namingPolicy)">
+ <span ng-show="editForm.namingPolicy.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '100' }"></span>
+ <span ng-show="editForm.namingPolicy.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ </div>
</div>
- </div>
- <!--------------------- USER ID -------------------->
-
+ <!--------------------- NAMING POLICY -------------------->
+ <!--------------------- Service Type -------------------->
+ <div ng-if="component.isService()"
+ class="i-sdc-form-item"
+ data-ng-class="{'error': validateField(editForm.serviceType)}">
+ <label class="i-sdc-form-label" translate="GENERAL_TAB_LABEL_SERVICE_TYPE"></label>
+ <input class="i-sdc-form-input" type="text"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-model="component.serviceType"
+ data-ng-model-options="{ debounce: 500 }"
+ name="serviceType"
+ data-tests-id="serviceType"
+ data-ng-maxlength="25"
+ data-ng-pattern="validation.VendorReleaseValidationPattern"
+ maxlength="25"
+ />
+ <div class="input-error" data-ng-show="validateField(editForm.serviceType)">
+ <span ng-show="editForm.serviceType.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '25' }"></span>
+ <span ng-show="editForm.serviceType.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ </div>
+ </div>
+ <!--------------------- Service Type -------------------->
+
+ <!--------------------- Service Role -------------------->
+ <div ng-if="component.isService()"
+ class="i-sdc-form-item"
+ data-ng-class="{'error': validateField(editForm.serviceRole)}">
+ <label class="i-sdc-form-label" translate="GENERAL_TAB_LABEL_SERVICE_ROLE"></label>
+ <input class="i-sdc-form-input" type="text"
+ data-ng-class="{'view-mode': isViewMode()}"
+ data-ng-model="component.serviceRole"
+ data-ng-model-options="{ debounce: 500 }"
+ name="serviceRole"
+ data-tests-id="serviceRole"
+ data-ng-maxlength="25"
+ data-ng-pattern="validation.VendorReleaseValidationPattern"
+ maxlength="25"
+ />
+ <div class="input-error" data-ng-show="validateField(editForm.serviceRole)">
+ <span ng-show="editForm.serviceRole.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '25' }"></span>
+ <span ng-show="editForm.serviceRole.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
+ </div>
+ </div>
+ <!--------------------- Service Role -------------------->
+ <div class="meta-data" data-ng-if="component.creationDate">
+ <div>
+ <b>Created:</b>
+ </div>
+ <div class="meta-data-item-value">{{component.creationDate | date:'MM/dd/yyyy'}}, {{component.creatorFullName}}</div>
+ <div>
+ <b>Modifed:</b>
+ </div>
+ <div class="meta-data-item-value">
+ {{component.lastUpdateDate | date:'MM/dd/yyyy'}}
+ </div>
+ <div>
+ <b>UUID:</b>
+ </div>
+ <div class="meta-data-item-value">
+ {{component.uuid}}
+ </div>
+ <div>
+ <b>Invariant UUID:</b>
+ </div>
+ <div class="meta-data-item-value">
+ {{component.invariantUUID}}
+ </div>
+ </div>
</div><!-- Close w-sdc-form-column -->
</div>
</div><!-- Close w-sdc-form-section-container -->
</form>
-
</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general.less b/catalog-ui/src/app/view-models/workspace/tabs/general/general.less
index caa755cce3..9633ec5bb6 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/general/general.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general.less
@@ -1,8 +1,8 @@
.sdc-workspace-general-step {
-
+ display: flex;
.w-sdc-form {
padding: 0;
-
+ flex-grow: 10;
.i-sdc-form-file-upload{
input[type="button"] {
cursor: pointer;
@@ -33,6 +33,14 @@
}
}
+ .description{
+ height: 300px;
+ }
+
+ .i-sdc-form-item.description-field{
+ margin-bottom: 0;
+ }
+
.w-sdc-form-section-container {
text-align: center;
}
@@ -43,6 +51,7 @@
width: auto;
padding: 10px;
}
+ margin-bottom: 15px;
}
.i-sdc-form-label {
@@ -63,6 +72,73 @@
}
+ .w-sdc-form-column {
+ position: relative;
+ }
+
+ .meta-data{
+ padding: 8px 0 2px 20px;
+ text-align: left;
+ background-color: @tlv_color_t;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ .meta-data-item-value{
+ padding-bottom: 6px;
+ }
+ }
+
+ .upper-general-fields{
+ display: flex;
+ }
+
+ .selected-icon-container{
+ flex-grow: 1;
+ display: flex;
+ align-items: center;
+ .selected-icon-inner-container{
+ height: 64px;
+ width: 64px;
+ margin: 0 auto;
+ }
+ .update-component-icon{
+ position: relative;
+ float: right;
+ cursor: pointer;
+ }
+ .selected-icon{
+ position: relative;
+ top: -20px;
+ z-index: -1;
+ &.disable{
+ position: inherit;
+ }
+ }
+ &.show-only-on-over{
+ .update-component-icon{
+ display: none;
+ }
+ .selected-icon{
+ position: inherit;
+ }
+ &:hover{
+ .update-component-icon{
+ display: inline-block;
+ }
+ .selected-icon{
+ position: relative;
+ }
+ }
+ }
+ }
+
+ .name-and-category-fields{
+ flex-grow: 5;
+ }
+
+
+
+
}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view.html b/catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view.html
deleted file mode 100644
index aac14e0e84..0000000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons-view.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<div class="workspace-icons">
-
- <form novalidate class="w-sdc-form" name="iconForm">
- <label class="i-sdc-form-label icons-label required">Icons</label>
- <div class="selected-icon-container" data-ng-class="{'view-mode': isViewMode()}">
- <div class="i-sdc-form-item-suggested-icon large selected-icon {{iconSprite}} {{component.icon}}"
- data-ng-class="{ 'disable': isViewMode() }"
- ng-model="component.icon"
- tooltips tooltip-content='{{component.icon | translate}}'
- >
- </div>
- </div>
- <div data-ng-class="{'view-mode': isViewMode()}" class="icons-text">Select one of the icons below for the asset</div>
- <div class="i-sdc-form-item suggested-icons-container" data-ng-class="{'view-mode no-pointer-events' : isViewMode()}">
- <div class ="suggested-icon-wrapper" ng-class="component.icon==='{{iconSrc}}' ? 'selected' : '' " data-ng-repeat="iconSrc in icons track by $index">
- <div class="i-sdc-form-item-suggested-icon large {{iconSprite}} {{iconSrc}}" data-ng-class="component.isAlreadyCertified() || isViewMode() ? 'disable':'hand'"
- ng-model="component.icon"
- data-tests-id="{{iconSrc}} iconBox"
- data-ng-click="!component.isAlreadyCertified() && setComponentIcon(iconSrc)"
- tooltips tooltip-content='{{iconSrc | translate}}'
- >
- </div>
- </div>
- </div>
- </form>
-</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons.less b/catalog-ui/src/app/view-models/workspace/tabs/icons/icons.less
deleted file mode 100644
index 65f946f395..0000000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/icons/icons.less
+++ /dev/null
@@ -1,65 +0,0 @@
-.workspace-icons {
-
- width: 89%;
- display: inline-block;
- text-align: center;
- align-items: center;
-
- .w-sdc-form {
- padding-top: 0px;
- padding-bottom: 0px;
- .selected-icon-container {
- text-align: left;
- border: 1px solid #cfcfcf;
- clear: both;
- margin-bottom: 30px;
- padding: 2px 0px 5px 5px;
- .selected-icon {
- margin: 8px 5px 0px 6px;
- }
- }
-
- .suggested-icons-container {
- text-align: left;
- border: 1px solid #cfcfcf;
- clear: both;
- padding: 2px 0px 5px 5px;
- height: 340px;
- margin-bottom: 0px;
-
- .suggested-icon-wrapper {
- margin: 8px 5px 0px 6px;
- display: inline-block;
-
- &.selected {
- border: 2px solid @main_color_a;
- border-radius: 35px;
- display: inline-block;
- line-height: 0px;
- padding: 3px;
- }
-
- }
- .suggested-icon {
- // margin: 8px 5px 0px 6px;
- display: inline-block;
- &.disable{
- opacity: 0.4;
- }
- }
- }
-
- .icons-label {
- float: left;
- }
-
- .icons-text {
- text-align: left;
- line-height: 32px;
- padding-left: 10px;
- width: 100%;
- border: 1px solid #cfcfcf;
- border-bottom: none;
- }
- }
-}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/information-artifacts/information-artifacts.less b/catalog-ui/src/app/view-models/workspace/tabs/information-artifacts/information-artifacts.less
index 3ba9cf47d5..5e69c44e9b 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/information-artifacts/information-artifacts.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/information-artifacts/information-artifacts.less
@@ -12,7 +12,7 @@
}
.table-container-flex {
- margin-top: 27px;
+ margin-top: 0;
.item-opened{
word-wrap: break-word;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/inputs/inputs.less b/catalog-ui/src/app/view-models/workspace/tabs/inputs/inputs.less
index eff5c5395b..17c18e1741 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/inputs/inputs.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/inputs/inputs.less
@@ -216,7 +216,7 @@
}
.table-container-flex {
- margin-top: 27px;
+ margin-top: 0;
width: 46%;
min-width: 46%;
display: inline-block;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts
deleted file mode 100644
index c891875f52..0000000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-'use strict';
-import {ComponentFactory} from "app/utils";
-import {Product, IGroup, ISubCategory, IMainCategory} from "app/models";
-import {IWorkspaceViewModelScope} from "app/view-models/workspace/workspace-view-model";
-import {CacheService} from "app/services";
-
-export interface IProductHierarchyScope extends IWorkspaceViewModelScope {
-
- categoriesOptions:Array<IMainCategory>;
- product:Product;
- isLoading:boolean;
- showDropDown:boolean;
-
- onInputTextClicked():void;
- onGroupSelected(category:IMainCategory, subcategory:ISubCategory, group:IGroup):void;
- clickOutside():void;
- deleteGroup(uniqueId:string):void;
-}
-
-export class ProductHierarchyViewModel {
-
- static '$inject' = [
- '$scope',
- 'Sdc.Services.CacheService',
- 'ComponentFactory',
- '$state'
- ];
-
- constructor(private $scope:IProductHierarchyScope,
- private cacheService:CacheService,
- private ComponentFactory:ComponentFactory,
- private $state:ng.ui.IStateService) {
-
-
- this.$scope.product = <Product>this.$scope.getComponent();
- this.$scope.setValidState(true);
- this.initScope();
- this.$scope.updateSelectedMenuItem();
- }
-
- private initCategories = () => {
- this.$scope.categoriesOptions = angular.copy(this.cacheService.get('productCategories'));
- let selectedGroup:Array<IGroup> = [];
- _.forEach(this.$scope.product.categories, (category:IMainCategory) => {
- _.forEach(category.subcategories, (subcategory:ISubCategory) => {
- selectedGroup = selectedGroup.concat(subcategory.groupings);
- });
- });
- _.forEach(this.$scope.categoriesOptions, (category:IMainCategory) => {
- _.forEach(category.subcategories, (subcategory:ISubCategory) => {
- _.forEach(subcategory.groupings, (group:ISubCategory) => {
- let componentGroup:IGroup = _.find(selectedGroup, (componentGroupObj) => {
- return componentGroupObj.uniqueId == group.uniqueId;
- });
- if (componentGroup) {
- group.isDisabled = true;
- }
- });
- });
- });
- };
-
- private setFormValidation = ():void => {
-
- this.$scope.setValidState(true);
-
- };
-
- private initScope = ():void => {
- this.$scope.isLoading = false;
- this.$scope.showDropDown = false;
- this.initCategories();
- this.setFormValidation();
-
- this.$scope.onGroupSelected = (category:IMainCategory, subcategory:ISubCategory, group:IGroup):void => {
- this.$scope.product.addGroup(category, subcategory, group);
- this.$state.current.data.unsavedChanges = !this.$scope.isViewMode();
- group.isDisabled = true;
- this.$scope.showDropDown = false;
- this.setFormValidation();
- };
-
- this.$scope.onInputTextClicked = ():void => {//just edit the component in place, no pop up nor server update ?
- this.$scope.showDropDown = !this.$scope.showDropDown;
- };
-
- this.$scope.clickOutside = ():any => {
- this.$scope.showDropDown = false;
- };
-
- this.$scope.deleteGroup = (uniqueId:string):void => {
- //delete group from component
- this.$scope.product.deleteGroup(uniqueId);
- this.$state.current.data.unsavedChanges = !this.$scope.isViewMode();
- this.setFormValidation();
- //enabled group
- _.forEach(this.$scope.categoriesOptions, (category:IMainCategory) => {
- _.forEach(category.subcategories, (subcategory:ISubCategory) => {
- let groupObj:IGroup = _.find(subcategory.groupings, (group) => {
- return group.uniqueId === uniqueId;
- });
- if (groupObj) {
- groupObj.isDisabled = false;
- }
- });
- });
- }
- };
-}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html b/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html
deleted file mode 100644
index 2335ad7c74..0000000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<div class="workspace-hierarchy">
- <div class="dropdown-container" clicked-outside="{onClickedOutside: 'clickOutside()', clickedOutsideEnable: 'true'}" >
- <input placeholder="Add Group" data-ng-click="onInputTextClicked()" class="dropdown-input-text" data-ng-model="search.filterTerms" data-ng-disabled="isViewMode()" data-ng-class="{'view-mode': isViewMode()}" data-ng-model-options="{debounce: 200}"/>
- <div data-ng-class="{'show': showDropDown}" class="dropdown-content" >
- <perfect-scrollbar scroll-y-margin-offset="0" include-padding="false" class="scrollbar-container">
- <div ng-repeat="category in categoriesOptions track by $index">
- <div ng-repeat="subcategory in category.subcategories track by $index">
- <div class="dropdown-option" ng-show="!category.filteredGroup || category.filteredGroup.length > 0">
- <div class="category-container">
- <div class="category">{{category.name}}</div>
- <div class="subcategory">{{subcategory.name}}</div>
- </div>
- <div class="groupings-container">
- <div ng-init="group.filterTerms = group.name + ' ' + category.name + ' ' + subcategory.name"
- ng-repeat="group in (category.filteredGroup = (subcategory.groupings | filter:search )) track by $index">
- <div class="group" data-ng-disabled="group.isDisabled" data-ng-class="{'disabled-group': group.isDisabled}" ng-click="onGroupSelected(category, subcategory, group)">
- <span >{{group.name}}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </perfect-scrollbar>
- </div>
- </div>
- <div class="hierarchy-groups-container no-border-top" data-ng-class="{'view-mode': isViewMode()}">
- <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container">
- <div ng-if="!product.categories.length || product.categories.length === 0" class="no-groups-text" translate="NEW_PRODUCT_NO_CATEGORIES_TO_DISPLAY"></div>
- <div ng-repeat="category in product.categories track by $index">
- <div ng-repeat="subcategory in category.subcategories track by $index">
- <div class="group-tag" ng-repeat="group in subcategory.groupings track by $index"
- data-ng-init="tooltip = '<b>' + category.name + '</b><br />' + subcategory.name">
- <sdc-tag sdc-disable="isViewMode()" data-on-delete="deleteGroup(uniqueId)" data-tag-data="{tag: group.name, tooltip: tooltip, id: group.uniqueId }"></sdc-tag>
- </div>
- </div>
- </div>
- </perfect-scrollbar>
- </div>
-</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less b/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less
deleted file mode 100644
index c992558ed2..0000000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less
+++ /dev/null
@@ -1,130 +0,0 @@
-.workspace-hierarchy {
- display: inline-block;
- width: 93%;
-
- .scrollbar-container{
- max-height:400px;
- .perfect-scrollbar;
- }
-
- .dropdown-container {
- position: relative;
- display: inline-block;
- width: 100%;
-
- &:after{
- top: 47%;
- right: 1%;
- border: solid transparent;
- content: " ";
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- border-color: rgba(0, 0, 0, 0);
- border-top-color: black;
- border-width: 4px;
- margin-left: -4px;
- }
-
- .dropdown-input-text {
- width: 100%;
- padding: 4px 10px;
- }
-
- .dropdown-content {
- .perfect-scrollbar;
- border: 1px solid #d8d8d8;
- display: none;
- position: absolute;
- overflow: hidden;
- width: 100%;
- .bg_c;
- max-height: 400px;
- z-index: 999999;
-
- .dropdown-option {
- border-bottom: 1px solid #d8d8d8;
- display: inline-block;
- width: 100%;
- }
-
- .category-container{
- width: 250px;
- float: left;
- padding-left: 5px;
-
- .category {
- .bold;
- padding: 3px 3px 2px 3px;
- &:after{
- .sprite;
- .arrow-left;
- content: '';
- margin-left: 5px;
- transform: rotate(180deg);
- }
- }
- .subcategory {
- padding-left: 3px;
- }
- }
-
- .groupings-container{
- display: inline-block;
- width: 424px;
- border-left: 1px solid #d8d8d8;
- min-height: 55px;
- .group{
- padding: 3px 3px 3px 10px;
- &:hover{
- .hand;
- .bg_n;
- }
- &.disabled-group {
- opacity: 0.5;
- &:hover{
- cursor: auto;
- .bg_c;
- }
- }
- }
- }
-
- .seperator {
- height: 1px;
- width: 100%;
- .bg_j;
- margin: 5px 0px;
- }
- }
- .show {
- display: block;
- }
- }
-
- .hierarchy-groups-container{
- .b_9;
- width: 100%;
- border: 1px solid #d8d8d8;
- height: 425px;
- padding: 15px;
- text-align: center;
-
- .scrollbar-container {
- z-index: 0;
- }
-
- .no-group-text{
- text-align: center;
- margin-top:25px;
- a {
- cursor: pointer;
- }
- }
- .group-tag{
- display: inline-block;
- float: left;
- }
- }
-}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/properties/properties.less b/catalog-ui/src/app/view-models/workspace/tabs/properties/properties.less
index 3e8d6c3fbd..48c462e143 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/properties/properties.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/properties/properties.less
@@ -76,7 +76,7 @@
}
.table-container-flex {
- margin-top: 27px;
+ margin-top: 0;
.text{
overflow: hidden;
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less b/catalog-ui/src/app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less
index 6dfec2980f..23be3c3548 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less
+++ b/catalog-ui/src/app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less
@@ -1,5 +1,5 @@
.workspace-tosca-artifact {
- width: 93%;
+ width: 100%;
display: inline-block;
.w-sdc-classic-btn {
float: right;
@@ -18,8 +18,7 @@
.table-container-flex {
- margin-top: 27px;
-
+ margin-top: 0;
.item-opened{
word-wrap: break-word;
}
diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
index 21bd199aac..ec8b04dbdb 100644
--- a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
@@ -77,7 +77,6 @@ export interface IWorkspaceViewModelScope extends ng.IScope {
changeLifecycleState(state:string):void;
enabledTabs():void
isDesigner():boolean;
- isProductManager():boolean;
isViewMode():boolean;
isEditMode():boolean;
isCreateMode():boolean;
@@ -91,6 +90,7 @@ export interface IWorkspaceViewModelScope extends ng.IScope {
updateSelectedMenuItem():void;
uploadFileChangedInGeneralTab():void;
updateMenuComponentName(ComponentName:string):void;
+ getTabTitle():string;
reload(component:Component):void;
}
@@ -149,9 +149,6 @@ export class WorkspaceViewModel {
} else {
if (this.$scope.component.lifecycleState === ComponentState.NOT_CERTIFIED_CHECKOUT &&
this.$scope.component.lastUpdaterUserId === this.cacheService.get("user").userId) {
- if (this.$scope.component.isProduct() && this.role == Role.PRODUCT_MANAGER) {
- mode = WorkspaceMode.EDIT;
- }
if ((this.$scope.component.isService() || this.$scope.component.isResource()) && this.role == Role.DESIGNER) {
mode = WorkspaceMode.EDIT;
}
@@ -171,7 +168,7 @@ export class WorkspaceViewModel {
};
private initLeftPalette = ():void => {
- this.LeftPaletteLoaderService.loadLeftPanel(this.$scope.component.componentType);
+ this.LeftPaletteLoaderService.loadLeftPanel(this.$scope.component);
};
private initScope = ():void => {
@@ -192,7 +189,7 @@ export class WorkspaceViewModel {
this.$scope.$state = this.$state;
this.$scope.isLoading = false;
this.$scope.isComposition = (this.$state.current.name.indexOf(States.WORKSPACE_COMPOSITION) > -1);
- this.$scope.isDeployment = (this.$state.current.name.indexOf(States.WORKSPACE_DEPLOYMENT) > -1);
+ this.$scope.isDeployment = this.$state.current.name == States.WORKSPACE_DEPLOYMENT;
this.$scope.progressService = this.progressService;
this.$scope.getComponent = ():Component => {
@@ -269,7 +266,7 @@ export class WorkspaceViewModel {
type: this.$scope.componentType.toLowerCase(),
mode: WorkspaceMode.VIEW,
components: this.$state.params['components']
- },{reload: true});
+ }, {reload: true});
};
@@ -431,7 +428,7 @@ export class WorkspaceViewModel {
switch (url) {
case 'lifecycleState/CHECKOUT':
// only checkOut get the full component from server
- // this.$scope.component = component;
+ // this.$scope.component = component;
// Work around to change the csar version
if (this.cacheService.get(CHANGE_COMPONENT_CSAR_VERSION_FLAG)) {
(<Resource>this.$scope.component).csarVersion = this.cacheService.get(CHANGE_COMPONENT_CSAR_VERSION_FLAG);
@@ -565,18 +562,13 @@ export class WorkspaceViewModel {
return this.role == Role.DESIGNER;
};
- this.$scope.isProductManager = ():boolean => {
- return this.role == Role.PRODUCT_MANAGER;
- };
-
this.$scope.isDisableMode = ():boolean => {
return this.$scope.mode === WorkspaceMode.VIEW && this.$scope.component.lifecycleState === ComponentState.NOT_CERTIFIED_CHECKIN;
};
this.$scope.showFullIcons = ():boolean => {
- //we show revert and save icons only in general\icon view
- return this.$state.current.name === States.WORKSPACE_GENERAL ||
- this.$state.current.name === States.WORKSPACE_ICONS;
+ //we show revert and save icons only in general view
+ return this.$state.current.name === States.WORKSPACE_GENERAL;
};
this.$scope.isCreateMode = ():boolean => {
@@ -593,8 +585,7 @@ export class WorkspaceViewModel {
};
this.$scope.showLifecycleIcon = ():boolean => {
- return this.role == Role.DESIGNER ||
- this.role == Role.PRODUCT_MANAGER;
+ return this.role == Role.DESIGNER;
};
this.$scope.getStatus = ():string => {
@@ -612,13 +603,6 @@ export class WorkspaceViewModel {
if (!this.$scope.component.isLatestVersion() && Role.OPS != this.role && Role.GOVERNOR != this.role) {
result = false;
}
- if (this.role === Role.PRODUCT_MANAGER && !this.$scope.component.isProduct()) {
- result = false;
- }
- if ((this.role === Role.DESIGNER || this.role === Role.TESTER)
- && this.$scope.component.isProduct()) {
- result = false;
- }
if (ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState && this.$scope.isViewMode()) {
result = false;
}
@@ -639,10 +623,16 @@ export class WorkspaceViewModel {
this.$scope.$watch('$state.current.name', (newVal:string):void => {
if (newVal) {
this.$scope.isComposition = (newVal.indexOf(States.WORKSPACE_COMPOSITION) > -1);
- this.$scope.isDeployment = (newVal.indexOf(States.WORKSPACE_DEPLOYMENT) > -1);
+ this.$scope.isDeployment = newVal == States.WORKSPACE_DEPLOYMENT;
}
});
+ this.$scope.getTabTitle = ():string => {
+ return this.$scope.leftBarTabs.menuItems.find((menuItem:MenuItem)=>{
+ return menuItem.state == this.$scope.$state.current.name;
+ }).text;
+ };
+
this.$scope.reload = (component:Component):void => {
this.$state.go(this.$state.current.name,{id:component.uniqueId},{reload:true});
};
@@ -658,7 +648,11 @@ export class WorkspaceViewModel {
private initVersionObject = ():void => {
this.$scope.versionsList = (this.$scope.component.getAllVersionsAsSortedArray()).reverse();
- this.$scope.changeVersion = {selectedVersion: _.find(this.$scope.versionsList, {versionId: this.$scope.component.uniqueId})};
+ this.$scope.changeVersion = {
+ selectedVersion: _.find(this.$scope.versionsList, (versionObj)=> {
+ return versionObj.versionId === this.$scope.component.uniqueId;
+ })
+ };
};
private getNewComponentBreadcrumbItem = ():MenuItem => {
diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view.html b/catalog-ui/src/app/view-models/workspace/workspace-view.html
index dbb7fa6d63..19ebefe7a5 100644
--- a/catalog-ui/src/app/view-models/workspace/workspace-view.html
+++ b/catalog-ui/src/app/view-models/workspace/workspace-view.html
@@ -3,8 +3,11 @@
<div class="w-sdc-main-container">
<div class="w-sdc-left-sidebar" data-ng-if="!isComposition">
- <div class="i-sdc-left-sidebar-item">
- <expand-collapse-menu-box menu-items-group="leftBarTabs" menu-title="{{menuComponentTitle}}" parent-scope="this"> </expand-collapse-menu-box>
+ <div class="menu-header" tooltips tooltip-content="{{menuComponentTitle}}">
+ {{menuComponentTitle}}
+ </div>
+ <div class="i-sdc-designer-sidebar-section-content-item" ng-class="{'selected': menuItem.state == $state.current.name}" ng-repeat="menuItem in leftBarTabs.menuItems track by $index">
+ <div class="expand-collapse-menu-box-item-text" ng-click="onMenuItemPressed(menuItem.state)" ng-class="{'disabled': menuItem.isDisabled }" data-tests-id="{{menuItem.text}}">{{menuItem.text}}</div>
</div>
</div>
@@ -54,22 +57,22 @@
<button ng-if="!isViewMode() && isCreateMode()" data-ng-disabled="!isValidForm || isDisableMode() || isLoading" ng-click="save()" class="tlv-btn outline green" data-tests-id="create/save">Create</button>
- <span data-ng-if="(isDesigner() || isProductManager()) && !isCreateMode() && component.lifecycleState === 'NOT_CERTIFIED_CHECKOUT'" sdc-smart-tooltip=""
+ <span data-ng-if="isDesigner() && !isCreateMode() && component.lifecycleState === 'NOT_CERTIFIED_CHECKOUT'" sdc-smart-tooltip=""
data-ng-class="{'disabled' : !isValidForm || isDisableMode() || isViewMode()}" ng-click="changeLifecycleState('deleteVersion')"
class="sprite-new delete-btn" data-tests-id="delete_version" sdc-smart-tooltip="">Delete</span>
<span data-ng-if="isDesigner()" data-ng-class="{'disabled' :isDisableMode() || isViewMode()}" ng-click="revert()" class="sprite-new revert-btn" data-tests-id="revert"
data-ng-show="showFullIcons()" sdc-smart-tooltip="">Revert</span>
- <span data-ng-if="isComposition && !component.isProduct()" class="sprite-new print-screen-btn" entity="component" print-graph-screen data-tests-id="printScreen"></span>
+ <span data-ng-if="isComposition" class="sprite-new print-screen-btn" entity="component" print-graph-screen data-tests-id="printScreen"></span>
<span class="delimiter"></span>
<span class="sprite-new x-btn" data-ng-click="goToBreadcrumbHome()" sdc-smart-tooltip="">Close</span>
</div>
</div>
-
- <div data-ng-if="component.creationDate && (!isComposition && !isDeployment)" class="sdc-asset-creation-info"><b>Created:</b>&nbsp;{{component.creationDate | date:'MM/dd/yyyy'}},&nbsp;{{component.creatorFullName}}&nbsp;|&nbsp;<b>Modifed:</b>&nbsp;{{component.lastUpdateDate | date:'MM/dd/yyyy'}}&nbsp;|&nbsp;<b>UUID:</b>&nbsp;{{component.uuid}}<b>&nbsp;Invariant UUID:</b>&nbsp;{{component.invariantUUID}}</div>
-
+ <div class="tab-title" data-ng-if="!isComposition && !isDeployment">
+ {{getTabTitle()}}
+ </div>
<div class="w-sdc-main-container-body-content" data-ng-class="{'third-party':thirdParty}" data-ui-view></div>
</div>
</div>
diff --git a/catalog-ui/src/app/view-models/workspace/workspace.less b/catalog-ui/src/app/view-models/workspace/workspace.less
index 278708ca33..d0799f4bac 100644
--- a/catalog-ui/src/app/view-models/workspace/workspace.less
+++ b/catalog-ui/src/app/view-models/workspace/workspace.less
@@ -27,10 +27,46 @@
}
.w-sdc-left-sidebar {
- padding: 3px 3px 0px 0px;
- background-color: @main_color_p;
- box-shadow: 7px -3px 6px -8px @main_color_n;
+ padding: 0px;
+ background-color: @tlv_color_t;
+ box-shadow: none;
z-index: 2;
+ border-right: 1px solid @main_color_o;
+ .menu-header{
+ border-bottom: 1px solid @main_color_o;
+ height: 53px;
+ .f-type._16_m;
+ font-weight: 700;
+ line-height: 53px;
+ padding-left: 40px;
+ padding-right: 10px;
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: inline-block;
+ white-space: nowrap;
+ }
+ .i-sdc-designer-sidebar-section-content-item{
+ .f-type._13_m;
+ color: @main_color_m;
+ margin-left: 20px;
+ padding-left: 20px;
+ margin-top: 20px;
+ height: 17px;
+ .hand;
+ &:hover{
+ color: @func_color_s;
+ font-weight: 600;
+ }
+ &.selected{
+ border-left: 4px solid @main_color_a;
+ color: @main_color_a;
+ margin-left: 18px;
+ padding-left: 18px;
+ font-weight: 600;
+
+ }
+ }
}
.sdc-asset-creation-info {
@@ -128,17 +164,24 @@
margin-top: 6px;
}
}
+ .tab-title{
+ height: 110px;
+ padding-left: 100px;
+ line-height: 110px;
+ .f-type ._28;
+ }
+ &.composition .w-sdc-main-container-body-content {
+ height: calc(~'100% - @{action_nav_height}'); //composition is the only tab without a tab title. need to exclude from calculation.
+ }
.w-sdc-main-container-body-content {
- height:calc(~'100% - @{action_nav_height}');
-
- text-align: center;
+ height:calc(~'100% - @{action_nav_height} - @{tab_title}');
align-items: center;
- padding: 40px 14% 20px 14%;
+ padding: 0 100px 20px 100px;
&.third-party {
text-align: left;
padding: 0;
position: absolute;
- top: @action_nav_height;
+ top: @action_nav_height + @tab_title;
left: 0;
right: 0;
bottom: 0;
@@ -147,7 +190,3 @@
}
}
-
-.properties-assignment .sdc-workspace-container .w-sdc-main-right-container .w-sdc-main-container-body-content{
- padding: 80px 2% 40px 2%;
-}
diff --git a/catalog-ui/src/assets/languages/en_US.json b/catalog-ui/src/assets/languages/en_US.json
index 2957f8ac4a..85acea6d02 100644
--- a/catalog-ui/src/assets/languages/en_US.json
+++ b/catalog-ui/src/assets/languages/en_US.json
@@ -200,10 +200,8 @@
"=========== NEW RESOURCE SERVICE ===========": "",
"NEW_SERVICE_RESOURCE_WRAPPER_TAB_GENERAL_INFORMATION": "General Information",
- "NEW_SERVICE_RESOURCE_WRAPPER_TAB_ASSIGN_PRODUCT_HIERARCHY": "Assign Product Hierarchy",
"NEW_SERVICE_RESOURCE_WRAPPER_TAB_ADDITIONAL_INFO": "Additional Information",
"NEW_SERVICE_RESOURCE_WRAPPER_TAB_BILLING_AND_ORDERING": "Order Attributes & Rules",
- "NEW_SERVICE_RESOURCE_WRAPPER_TAB_PRODUCT_COMPOSITION": "Bill Attributes & Rules",
"NEW_SERVICE_RESOURCE_SAVE_BUTTON": "Save",
"NEW_SERVICE_RESOURCE_DONE_BUTTON": "Done",
@@ -226,9 +224,7 @@
"NEW_SERVICE_RESOURCE_ERROR_SERVICE_ICON": "Icon required.",
"NEW_SERVICE_RESOURCE_ERROR_RESOURCE_ICON": "Icon required.",
"NEW_SERVICE_RESOURCE_ERROR_RESOURCE_NAME_REQUIRED": "Name is required.",
- "NEW_SERVICE_RESOURCE_ERROR_PRODUCT_NAME_REQUIRED": "Name is required.",
"NEW_SERVICE_RESOURCE_ERROR_RESOURCE_DESCRIPTION_REQUIRED": "Description is required.",
- "NEW_SERVICE_RESOURCE_ERROR_PRODUCT_DESCRIPTION_REQUIRED": "Description is required.",
"NEW_SERVICE_RESOURCE_ERROR_VENDOR_NAME_REQUIRED": "Vendor name is required.",
"NEW_SERVICE_RESOURCE_ERROR_VENDOR_RELEASE_REQUIRED": "Vendor Release is required.",
"NEW_SERVICE_RESOURCE_ERROR_TEMPLATE_REQUIRED": "Template is required.",
@@ -238,7 +234,6 @@
"NEW_SERVICE_RESOURCE_ERROR_TOSCA_FILE_REQUIRED": "Tosca file is required.",
"NEW_SERVICE_RESOURCE_ERROR_VALID_CSAR_EXTENSIONS_TITLE": "Invalid csar file",
"NEW_SERVICE_RESOURCE_ERROR_VALID_CSAR_EXTENSIONS": "File extension should be {{extensions}}.",
- "NEW_PRODUCT_NO_CATEGORIES_TO_DISPLAY": "Your product is not assigned to any group yet. <br> To select/find a group, begin typing above and select group to add",
"=========== SUGGESTED ICONS TOOLTIP ===========": "",
"call_controll": "Call Control",
diff --git a/catalog-ui/src/assets/styles/app.less b/catalog-ui/src/assets/styles/app.less
index 1ce1801d9b..fde4cc8888 100644
--- a/catalog-ui/src/assets/styles/app.less
+++ b/catalog-ui/src/assets/styles/app.less
@@ -11,7 +11,6 @@
@import 'sprite-old.less';
@import 'sprite.less';
-@import 'sprite-product-icons.less';
@import 'sprite-resource-icons.less';
@import 'sprite-services-icons.less';
@@ -35,6 +34,7 @@
@import 'welcome-sprite.less';
@import 'welcome-style.less';
@import 'sdc-ui.css';
+@import 'notification-template.less';
// Less insides specific files.
@import '../../app/directives/ecomp-footer/ecomp-footer.less';
@@ -90,6 +90,7 @@
@import '../../app/view-models/modals/message-modal/message-client-modal/client-message-modal.less';
@import '../../app/view-models/modals/message-modal/message-server-modal/server-message-modal.less';
@import '../../app/view-models/modals/onboarding-modal/onboarding-modal.less';
+@import '../../app/view-models/modals/icons-modal/icons-modal-view.less';
@import '../../app/view-models/onboard-vendor/onboard-vendor.less';
@import '../../app/view-models/support/support.less';
@import '../../app/view-models/tabs/general-tab.less';
@@ -107,12 +108,10 @@
@import '../../app/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal.less';
@import '../../app/view-models/workspace/tabs/distribution/distribution.less';
@import '../../app/view-models/workspace/tabs/general/general.less';
-@import '../../app/view-models/workspace/tabs/icons/icons.less';
@import '../../app/view-models/workspace/tabs/information-artifacts/information-artifacts.less';
@import '../../app/view-models/workspace/tabs/inputs/inputs.less';
@import '../../app/view-models/workspace/tabs/inputs/resource-input/resource-inputs.less';
@import '../../app/view-models/workspace/tabs/inputs/service-input/service-inputs.less';
-@import '../../app/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less';
@import '../../app/view-models/workspace/tabs/properties/properties.less';
@import '../../app/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less';
@import '../../app/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less';
diff --git a/catalog-ui/src/assets/styles/images/resource-icons/vnfconfiguration.png b/catalog-ui/src/assets/styles/images/resource-icons/vnfconfiguration.png
new file mode 100644
index 0000000000..66c64c3fe6
--- /dev/null
+++ b/catalog-ui/src/assets/styles/images/resource-icons/vnfconfiguration.png
Binary files differ
diff --git a/catalog-ui/src/assets/styles/images/sprites/sprite-global.png b/catalog-ui/src/assets/styles/images/sprites/sprite-global.png
index 7a795c7a91..87e5d43b4d 100644
--- a/catalog-ui/src/assets/styles/images/sprites/sprite-global.png
+++ b/catalog-ui/src/assets/styles/images/sprites/sprite-global.png
Binary files differ
diff --git a/catalog-ui/src/assets/styles/images/sprites/sprite-product-icons.png b/catalog-ui/src/assets/styles/images/sprites/sprite-product-icons.png
deleted file mode 100644
index e85467a09c..0000000000
--- a/catalog-ui/src/assets/styles/images/sprites/sprite-product-icons.png
+++ /dev/null
Binary files differ
diff --git a/catalog-ui/src/assets/styles/images/sprites/sprite-resource-icons.png b/catalog-ui/src/assets/styles/images/sprites/sprite-resource-icons.png
index 7d520a8628..27e96f3ba2 100644
--- a/catalog-ui/src/assets/styles/images/sprites/sprite-resource-icons.png
+++ b/catalog-ui/src/assets/styles/images/sprites/sprite-resource-icons.png
Binary files differ
diff --git a/catalog-ui/src/assets/styles/mixins.less b/catalog-ui/src/assets/styles/mixins.less
index 4a0356d810..fbc5f83df1 100644
--- a/catalog-ui/src/assets/styles/mixins.less
+++ b/catalog-ui/src/assets/styles/mixins.less
@@ -34,6 +34,10 @@
font-family: @font-opensans-light;
font-size: 36px;
}
+ ._28 {
+ font-family: @font-opensans-light;
+ font-size: 28px;
+ }
._24 {
font-family: @font-opensans-light;
font-size: 24px;
diff --git a/catalog-ui/src/assets/styles/modal.less b/catalog-ui/src/assets/styles/modal.less
index eb9de92f80..3307bfc56a 100644
--- a/catalog-ui/src/assets/styles/modal.less
+++ b/catalog-ui/src/assets/styles/modal.less
@@ -33,6 +33,10 @@ MODAL SIZES
width: 552px;
}
+.modal-dialog.modal-sdc-auto {
+ width: auto;
+}
+
.modal-dialog.modal-sdc-xsm {
width: 432px;
}
@@ -324,7 +328,8 @@ NEW DESIGN MODAL
.modal-sdc-l,
.modal-sdc-md,
.modal-sdc-sm,
-.modal-sdc-xsm {
+.modal-sdc-xsm,
+.modal-sdc-auto {
.w-sdc-classic-top-line-modal {
padding: 0 30px;
diff --git a/catalog-ui/src/assets/styles/notification-template.less b/catalog-ui/src/assets/styles/notification-template.less
new file mode 100644
index 0000000000..5baf10d411
--- /dev/null
+++ b/catalog-ui/src/assets/styles/notification-template.less
@@ -0,0 +1,53 @@
+.notification-container{
+ display: flex;
+ padding: 15px 11px;
+ float: left;
+ .icon-container{
+ flex-grow: 1;
+ margin-right: 20px;
+ .icon-circle{
+ background-color: black;
+ height: 40px;
+ width: 40px;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ margin-right: 0;
+ background-color: rgba(255, 255, 255, 0.3);
+ .icon{
+ margin: 0 auto;
+ display: block;
+ }
+ }
+ }
+ .msg-content{
+ flex-grow: 3;
+ h3{
+ border-bottom: none;
+ font-weight: 400;
+ .f-type._18_m;
+ }
+ .message{
+ font-weight: 300;
+ .f-type._14_m;
+ }
+ }
+}
+.ui-notification.success{
+ background-color: @main_color_d;
+ .icon{
+ .notification-success-icon;
+ }
+}
+.ui-notification.error{
+ background-color: @func_color_q;
+ .icon{
+ .notification-error-icon;
+ }
+}
+.ui-notification.info{
+ background-color: @main_color_a;
+ .icon{
+ .notification-process-icon;
+ }
+}
diff --git a/catalog-ui/src/assets/styles/sprite-product-icons.less b/catalog-ui/src/assets/styles/sprite-product-icons.less
deleted file mode 100644
index 3485ec89a3..0000000000
--- a/catalog-ui/src/assets/styles/sprite-product-icons.less
+++ /dev/null
@@ -1,71 +0,0 @@
-.sprite-product-icons {
- background-image: url('images/sprites/sprite-product-icons.png');
- display: inline-block;
-}
-
-.sprite-product-icons.disable { opacity:0.5;}
-
-.sprite-product-icons.setting { background-position: -291px -102px; width: 61px; height: 67px;}
-.sprite-product-icons.setting.small { background-position: -217px -142px; width: 29px; height: 28px;}
-.sprite-product-icons.setting.medium { background-position: -148px -130px; width: 41px; height: 40px;}
-.sprite-product-icons.setting.large { background-position: -77px -110px; width: 60px; height: 60px;}
-
-.sprite-product-icons.cloud { background-position: -290px -215px; width: 64px; height: 43px;}
-.sprite-product-icons.cloud.small { background-position: -217px -232px; width: 29px; height: 28px;}
-.sprite-product-icons.cloud.medium { background-position: -148px -220px; width: 41px; height: 40px;}
-.sprite-product-icons.cloud.large { background-position: -77px -200px; width: 60px; height: 60px;}
-
-.sprite-product-icons.security { background-position: -289px -293px; width: 50px; height: 57px;}
-.sprite-product-icons.security.small { background-position: -217px -321px; width: 29px; height: 28px;}
-.sprite-product-icons.security.medium { background-position: -148px -310px; width: 41px; height: 40px;}
-.sprite-product-icons.security.large { background-position: -77px -290px; width: 60px; height: 60px;}
-
-.sprite-product-icons.network { background-position: -290px -383px; width: 56px; height: 57px;}
-.sprite-product-icons.network.small { background-position: -217px -411px; width: 29px; height: 29px;}
-.sprite-product-icons.network.medium { background-position: -148px -399px; width: 41px; height: 41px;}
-.sprite-product-icons.network.large { background-position: -77px -380px; width: 60px; height: 60px;}
-
-.sprite-product-icons.orphan { background-position: -290px -478px; width: 52px; height: 52px;}
-.sprite-product-icons.orphan.small { background-position: -217px -500px; width: 29px; height: 29px;}
-.sprite-product-icons.orphan.medium { background-position: -148px -488px; width: 41px; height: 41px;}
-.sprite-product-icons.orphan.large { background-position: -77px -470px; width: 60px; height: 60px;}
-
-.sprite-product-icons.defaulticon { background-position: -290px -478px; width: 52px; height: 52px;}
-.sprite-product-icons.defaulticon.small { background-position: -217px -500px; width: 29px; height: 29px;}
-.sprite-product-icons.defaulticon.medium { background-position: -148px -488px; width: 41px; height: 41px;}
-.sprite-product-icons.defaulticon.large { background-position: -77px -470px; width: 60px; height: 60px;}
-
-.sprite-product-icons.vfw { background-position: -289px -548px; width: 73px; height: 73px;}
-.sprite-product-icons.vfw.small { background-position: -217px -591px; width: 29px; height: 29px;}
-.sprite-product-icons.vfw.medium { background-position: -148px -580px; width: 41px; height: 41px;}
-.sprite-product-icons.vfw.large { background-position: -77px -560px; width: 60px; height: 61px;}
-
-.sprite-product-icons.wanx { background-position: -290px -664px; width: 59px; height: 47px;}
-.sprite-product-icons.wanx.small { background-position: -217px -681px; width: 30px; height: 30px;}
-.sprite-product-icons.wanx.medium { background-position: -148px -670px; width: 41px; height: 41px;}
-.sprite-product-icons.wanx.large { background-position: -77px -651px; width: 60px; height: 60px;}
-
-.sprite-product-icons.vrouter { background-position: -289px -758px; width: 69px; height: 43px;}
-.sprite-product-icons.vrouter.small { background-position: -217px -772px; width: 29px; height: 29px;}
-.sprite-product-icons.vrouter.medium { background-position: -148px -760px; width: 41px; height: 41px;}
-.sprite-product-icons.vrouter.large { background-position: -77px -741px; width: 60px; height: 60px;}
-
-.sprite-product-icons.ucpe { background-position: -289px -832px; width: 59px; height: 60px;}
-.sprite-product-icons.ucpe.small { background-position: -217px -862px; width: 28px; height: 29px;}
-.sprite-product-icons.ucpe.medium { background-position: -148px -849px; width: 41px; height: 41px;}
-.sprite-product-icons.ucpe.large { background-position: -77px -831px; width: 60px; height: 61px;}
-
-.sprite-product-icons.mobility { background-position: -288px -919px; width: 64px; height: 62px;}
-.sprite-product-icons.mobility.small { background-position: -216px -952px; width: 29px; height: 29px;}
-.sprite-product-icons.mobility.medium { background-position: -147px -940px; width: 41px; height: 41px;}
-.sprite-product-icons.mobility.large { background-position: -76px -921px; width: 60px; height: 60px;}
-
-.sprite-product-icons.wanx_customer_managed { background-position: -290px -1024px; width: 58px; height: 62px;}
-.sprite-product-icons.wanx.small_customer_managed { background-position: -217px -1041px; width: 30px; height: 38px;}
-.sprite-product-icons.wanx.medium_customer_managed { background-position: -148px -1030px; width: 42px; height: 47px;}
-.sprite-product-icons.wanx.large_customer_managed { background-position: -77px -1011px; width: 61px; height: 66px;}
-
-.sprite-product-icons.wanx_attr_managed { background-position: -290px -1114px; width: 59px; height: 62px;}
-.sprite-product-icons.wanx.small_att_managed { background-position: -218px -1131px; width: 31px; height: 36px;}
-.sprite-product-icons.wanx.medium_att_managed { background-position: -149px -1120px; width: 42px; height: 47px;}
-.sprite-product-icons.wanx.large_att_managed { background-position: -77px -1101px; width: 60px; height: 67px;}
diff --git a/catalog-ui/src/assets/styles/sprite-resource-icons.less b/catalog-ui/src/assets/styles/sprite-resource-icons.less
index 153e8c042c..2c19ee3291 100644
--- a/catalog-ui/src/assets/styles/sprite-resource-icons.less
+++ b/catalog-ui/src/assets/styles/sprite-resource-icons.less
@@ -266,3 +266,4 @@
.sprite-resource-icons.allotted_resource.medium { background-position: -141px -4898px; width: 41px; height: 41px;}
.sprite-resource-icons.allotted_resource.large { background-position: -70px -4879px; width: 60px; height: 60px;}
+.sprite-resource-icons.vnfconfiguration.large { background-position: -70px -4959px; width: 60px; height: 60px;}
diff --git a/catalog-ui/src/assets/styles/sprite.less b/catalog-ui/src/assets/styles/sprite.less
index 0c0f538388..3f82e488db 100644
--- a/catalog-ui/src/assets/styles/sprite.less
+++ b/catalog-ui/src/assets/styles/sprite.less
@@ -238,6 +238,12 @@
.round-expand-icon:hover { background-position: -100px -1188px; width: 15px; height: 15px; }
.round-expand-icon.open { background-position: -50px -1216px; width: 15px; height: 15px; }
.round-expand-icon.open:hover { background-position: -100px -1216px; width: 15px; height: 15px; }
+.update-component-icon { background-position: -140px -1213px; width: 20px; height: 20px;}
+.update-component-icon:hover { background-position: -169px -1213px; width: 20px; height: 20px;}
+.notification-user-icon{ background-position: -206px -1211px; width: 18px; height: 22px;}
+.notification-error-icon{ background-position: -244px -1216px; width: 17px; height: 17px;}
+.notification-success-icon{ background-position: -281px -1215px; width: 21px; height: 19px;}
+.notification-process-icon{ background-position: -322px -1206px; width: 28px; height: 28px;}
/*
.sprite-new.expand-asset-icon { background-position: -740px -590px; width: 40px; height: 40px; }
.sprite-new.view-info-icon { background-position: -739px -621px; width: 40px; height: 40px; }
@@ -257,3 +263,20 @@
.sprite-new.vl-icon:active, .sprite-new.vl-icon.disabled-icon { background-position: -820px -682px; }
.sprite-new.trash-icon:active, .sprite-new.trash-icon.disabled-icon { background-position: -820px -712px; }
*/
+
+
+.sprite-new.magnify-search { background-position: -206px -1276px; width: 30px; height: 30px; }
+.sprite-new.magnify-search:hover { background-position: -125px -1276px; }
+.sprite-new.magnify-search:active { background-position: -46px -1275px; }
+
+.sprite-new.zoom-plus { background-position: -208px -1380px; width: 30px; height: 30px; }
+.sprite-new.zoom-plus:hover { background-position: -128px -1380px; }
+.sprite-new.zoom-plus:active { background-position: -47px -1379px; }
+
+.sprite-new.zoom-minus { background-position: -208px -1433px; width: 30px; height: 30px; }
+.sprite-new.zoom-minus:hover { background-position: -128px -1433px; }
+.sprite-new.zoom-minus:active { background-position: -47px -1432px; }
+
+.sprite-new.canvas-fit-all { background-position: -208px -1326px; width: 30px; height: 30px;}
+.sprite-new.canvas-fit-all:hover { background-position: -128px -1326px; }
+.sprite-new.canvas-fit-all:active { background-position: -47px -1325px;}
diff --git a/catalog-ui/src/assets/styles/svg/source/fit-all.svg b/catalog-ui/src/assets/styles/svg/source/fit-all.svg
new file mode 100644
index 0000000000..dbea90963f
--- /dev/null
+++ b/catalog-ui/src/assets/styles/svg/source/fit-all.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="18px" height="19px" viewBox="0 0 18 19">
+<path fillRule="evenodd" d="M 17.94 18.86C 17.77 18.92 17.63 19 17.4 18.94 16.03 18.93 12.86 19 12.86 19 12.5 19 11.92 18.85 12 18 12.08 17.07 12.5 17 12.86 17 12.86 17 14.79 17 14.79 17 14.79 17 10.44 11.98 10.44 11.98 10.44 11.98 11.77 10.51 11.77 10.51 11.77 10.51 16.33 15.76 16.33 15.76 16.33 15.76 16.33 12.99 16.33 12.99 16.23 12.09 17.03 11.99 17.4 11.99 17.77 11.99 18.01 12.27 18.01 12.69 18.01 12.69 18.01 18.23 18.01 18.23 18.01 17.81 18 18.55 17.94 18.86ZM 17.33 7.36C 16.92 7.36 16.04 7.25 16.15 6.31 16.15 6.31 16.15 3.62 16.15 3.62 16.15 3.62 11.37 9 11.37 9 11.37 9 10.01 7.53 10.01 7.53 10.01 7.53 14.82 2.1 14.82 2.1 14.82 2.1 12.33 2.1 12.33 2.1 11.92 2.1 11.47 2.02 11.37 1.05 11.29 0.16 11.92-0 12.33-0 12.33-0 15.82 0.07 17.33 0.06 17.59 0 17.74 0.08 17.93 0.15 17.99 0.47 18 1.25 18 0.8 18 0.8 18 6.62 18 6.62 18 7.06 17.73 7.36 17.33 7.36ZM 5.67 16.9C 6.08 16.9 6.53 16.98 6.63 17.95 6.71 18.84 6.08 19 5.67 19 5.67 19 2.18 18.93 0.67 18.94 0.41 19 0.26 18.92 0.07 18.85 0.01 18.53-0 17.75-0 18.2-0 18.2-0 12.38-0 12.38-0 11.94 0.27 11.64 0.67 11.64 1.08 11.64 1.96 11.75 1.85 12.69 1.85 12.69 1.85 15.38 1.85 15.38 1.85 15.38 6.63 10 6.63 10 6.63 10 7.99 11.47 7.99 11.47 7.99 11.47 3.18 16.9 3.18 16.9 3.18 16.9 5.67 16.9 5.67 16.9ZM 6.63 9C 6.63 9 1.85 3.62 1.85 3.62 1.85 3.62 1.85 6.31 1.85 6.31 1.96 7.25 1.08 7.36 0.67 7.36 0.27 7.36-0 7.06-0 6.62-0 6.62-0 0.8-0 0.8-0 1.25 0.01 0.47 0.07 0.15 0.26 0.08 0.41 0 0.67 0.06 2.18 0.07 5.67-0 5.67-0 6.08-0 6.71 0.16 6.63 1.05 6.53 2.02 6.08 2.1 5.67 2.1 5.67 2.1 3.18 2.1 3.18 2.1 3.18 2.1 7.99 7.53 7.99 7.53 7.99 7.53 6.63 9 6.63 9Z" fill="rgb(89,89,89)"/></svg> \ No newline at end of file
diff --git a/catalog-ui/src/assets/styles/svg/source/minus.svg b/catalog-ui/src/assets/styles/svg/source/minus.svg
new file mode 100644
index 0000000000..4ced110098
--- /dev/null
+++ b/catalog-ui/src/assets/styles/svg/source/minus.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="16px" height="2px" viewBox="0 0 16 2">
+<path fillRule="evenodd" d="M 1-0C 1-0 15-0 15-0 15.55-0 16 0.45 16 1 16 1.55 15.55 2 15 2 15 2 1 2 1 2 0.45 2 0 1.55 0 1 0 0.45 0.45-0 1-0Z" fill="rgb(99,99,99)"/></svg> \ No newline at end of file
diff --git a/catalog-ui/src/assets/styles/svg/source/plus.svg b/catalog-ui/src/assets/styles/svg/source/plus.svg
new file mode 100644
index 0000000000..dff172c54d
--- /dev/null
+++ b/catalog-ui/src/assets/styles/svg/source/plus.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="18px" height="18px" viewBox="0 0 18 18">
+<path fillRule="evenodd" d="M 17 10C 17 10 10 10 10 10 10 10 10 17 10 17 10 17.55 9.55 18 9 18 8.45 18 8 17.55 8 17 8 17 8 10 8 10 8 10 1 10 1 10 0.45 10 0 9.55 0 9 0 8.45 0.45 8 1 8 1 8 8 8 8 8 8 8 8 1 8 1 8 0.45 8.45 0 9 0 9.55 0 10 0.45 10 1 10 1 10 8 10 8 10 8 17 8 17 8 17.55 8 18 8.45 18 9 18 9.55 17.55 10 17 10Z" fill="rgb(99,99,99)"/></svg> \ No newline at end of file
diff --git a/catalog-ui/src/assets/styles/svg/source/search-magnify.svg b/catalog-ui/src/assets/styles/svg/source/search-magnify.svg
new file mode 100644
index 0000000000..279c13fd52
--- /dev/null
+++ b/catalog-ui/src/assets/styles/svg/source/search-magnify.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="23px" height="26px" viewBox="0 0 23 26">
+<path fillRule="evenodd" d="M 17.53 4.53C 14.5 0.28 8.55-0.71 4.3 2.32 0.05 5.36-0.94 11.31 2.09 15.56 3.56 17.63 5.74 18.99 8.25 19.41 10.42 19.77 12.58 19.38 14.48 18.32 14.48 18.32 20.28 25.23 20.28 25.23 20.44 25.47 20.7 25.61 20.93 25.65 21.16 25.69 21.45 25.64 21.68 25.47 22.15 25.13 22.26 24.5 21.92 24.06 21.92 24.06 16.11 17.15 16.11 17.15 17.73 15.7 18.81 13.79 19.17 11.61 19.58 9.14 19.01 6.6 17.53 4.53ZM 3.76 14.4C 1.37 11.04 2.14 6.4 5.5 4 7.18 2.8 9.16 2.41 11.07 2.73 12.97 3.05 14.73 4.07 15.92 5.74 17.09 7.38 17.52 9.34 17.19 11.32 16.86 13.29 15.79 15 14.18 16.17 12.58 17.35 10.58 17.77 8.61 17.44 6.65 17.08 4.9 16.03 3.76 14.4Z" fill="rgb(99,99,99)"/></svg> \ No newline at end of file
diff --git a/catalog-ui/src/assets/styles/variables-old.less b/catalog-ui/src/assets/styles/variables-old.less
index 57f3fc24b8..d16252dab4 100644
--- a/catalog-ui/src/assets/styles/variables-old.less
+++ b/catalog-ui/src/assets/styles/variables-old.less
@@ -2,7 +2,7 @@
@images: "images";
/* Colors */
-@color_a: #3b7b9b; // product category
+@color_a: #3b7b9b;
@color_b: #666666;
@color_c: #ffffff;
@color_d: #1d9a95; // dashboard service (S at the top left of the card)
diff --git a/catalog-ui/src/assets/styles/variables.less b/catalog-ui/src/assets/styles/variables.less
index 3c23bdbe5e..163737466e 100644
--- a/catalog-ui/src/assets/styles/variables.less
+++ b/catalog-ui/src/assets/styles/variables.less
@@ -47,5 +47,6 @@
@top_nav_height: 50px;
@top_nav_admin_height: 44px;
@action_nav_height: 53px;
+@tab_title: 110px;
@footer_height: 89px;
@border_color_view-mode: #ededed;
diff --git a/catalog-ui/src/third-party/cytoscape.js-edge-editation/CytoscapeEdgeEditation.js b/catalog-ui/src/third-party/cytoscape.js-edge-editation/CytoscapeEdgeEditation.js
index 2da6f786ea..9be07f2ea1 100644
--- a/catalog-ui/src/third-party/cytoscape.js-edge-editation/CytoscapeEdgeEditation.js
+++ b/catalog-ui/src/third-party/cytoscape.js-edge-editation/CytoscapeEdgeEditation.js
@@ -250,13 +250,14 @@
_drawHandle: function (handle, target) {
var position = this._getHandlePosition(handle, target);
-
+ var handleSize = target.renderedWidth() / 4;
+
this._ctx.beginPath();
if (handle.imageUrl) {
var base_image = new Image();
base_image.src = handle.imageUrl;
- this._ctx.drawImage(base_image, position.x, position.y, this.HANDLE_SIZE, this.HANDLE_SIZE);
+ this._ctx.drawImage(base_image, position.x, position.y, handleSize, handleSize);
} else {
this._ctx.arc(position.x, position.y, this.HANDLE_SIZE, 0, 2 * Math.PI, false);
this._ctx.fillStyle = handle.color;
@@ -461,17 +462,17 @@
},
_getHandlePosition: function (handle, target) {
var position = target.renderedPosition();
- var width = target.renderedOuterWidth();
- var height = target.renderedOuterHeight();
+ var width = target.renderedWidth();
+ var height = target.renderedHeight();
var xpos = null;
var ypos = null;
switch (handle.positionX) {
case "left":
- xpos = position.x - width / 2 + this.HANDLE_SIZE;
+ xpos = position.x - width / 4;
break;
case "right":
- xpos = position.x + width / 2 - this.HANDLE_SIZE;
+ xpos = position.x + width / 4;
break;
case "center":
xpos = position.x;
@@ -480,18 +481,18 @@
switch (handle.positionY) {
case "top":
- ypos = position.y - height / 2 + this.HANDLE_SIZE;
+ ypos = position.y - width / 2;
break;
case "center":
ypos = position.y;
break;
case "bottom":
- ypos = position.y + height / 2 - this.HANDLE_SIZE;
+ ypos = position.y + width / 2;
break;
}
- var offsetX = handle.offsetX ? handle.offsetX : 0;
- var offsetY = handle.offsetY ? handle.offsetY : 0;
+ var offsetX = 0;
+ var offsetY = 0;
return {x: xpos + offsetX, y: ypos + offsetY};
},
_getEdgeCSSByHandle: function (handle) {
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java
index 7d37de7965..c962500c2b 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/be/config/Configuration.java
@@ -82,6 +82,7 @@ public class Configuration extends BasicConfiguration {
private List<String> resourceTypes;
private List<String> excludeResourceCategory;
+ private List<String> excludeResourceType;
private Map<String, Object> deploymentResourceArtifacts;
private Map<String, Object> deploymentResourceInstanceArtifacts;
private Map<String, Object> toscaArtifacts;
@@ -361,6 +362,15 @@ public class Configuration extends BasicConfiguration {
public void setExcludeResourceCategory(List<String> excludeResourceCategory) {
this.excludeResourceCategory = excludeResourceCategory;
}
+
+ public List<String> getExcludeResourceType() {
+ return excludeResourceType;
+ }
+
+ public void setExcludeResourceType(List<String> excludeResourceType) {
+ this.excludeResourceType = excludeResourceType;
+ }
+
public Map<String, Object> getToscaArtifacts() {
return toscaArtifacts;
@@ -842,6 +852,7 @@ public class Configuration extends BasicConfiguration {
String host;
Integer port;
String downloadCsarUri;
+ String healthCheckUri;
public String getProtocol() {
return protocol;
@@ -875,6 +886,14 @@ public class Configuration extends BasicConfiguration {
this.downloadCsarUri = downloadCsarUri;
}
+ public String getHealthCheckUri() {
+ return healthCheckUri;
+ }
+
+ public void setHealthCheckUri(String healthCheckUri) {
+ this.healthCheckUri = healthCheckUri;
+ }
+
@Override
public String toString() {
return "OnboardingConfig [protocol=" + protocol + ", host=" + host + ", port=" + port + ", downloadCsarUri="
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java b/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java
index 6e7ebc1854..f13984bc67 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/api/ArtifactTypeEnum.java
@@ -31,7 +31,7 @@ public enum ArtifactTypeEnum {
CHEF("CHEF"), PUPPET("PUPPET"), YANG("YANG"), SHELL_SCRIPT("SHELL_SCRIPT"), SHELL("SHELL"), ICON("ICON"), UNKNOWN("UNKNOWN"), HEAT("HEAT"), DG_XML("DG_XML"), MURANO_PKG("MURANO_PKG"), HEAT_ENV("HEAT_ENV"), YANG_XML("YANG_XML"), HEAT_VOL("HEAT_VOL"),
HEAT_NET("HEAT_NET"), OTHER("OTHER"), WORKFLOW("WORKFLOW"), NETWORK_CALL_FLOW("NETWORK_CALL_FLOW"), TOSCA_TEMPLATE("TOSCA_TEMPLATE"), TOSCA_CSAR("TOSCA_CSAR"), VNF_CATALOG("VNF_CATALOG"), VF_LICENSE("VF_LICENSE"), BPEL("BPEL"),
VENDOR_LICENSE("VENDOR_LICENSE"), MODEL_INVENTORY_PROFILE("MODEL_INVENTORY_PROFILE"), MODEL_QUERY_SPEC("MODEL_QUERY_SPEC"), APPC_CONFIG("APPC_CONFIG"), HEAT_NESTED("HEAT_NESTED"), HEAT_ARTIFACT("HEAT_ARTIFACT"),
- VF_MODULES_METADATA("VF_MODULES_METADATA"), LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"), VES_EVENTS("VES_EVENTS"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),
+ VF_MODULES_METADATA("VF_MODULES_METADATA"), LIFECYCLE_OPERATIONS("LIFECYCLE_OPERATIONS"), VES_EVENTS("VES_EVENTS"), PERFORMANCE_COUNTER("PERFORMANCE_COUNTER"),UCPE_LAYER_2_CONFIGURATION("UCPE_LAYER_2_CONFIGURATION"),
// DCAE Artifacts
DCAE_TOSCA("DCAE_TOSCA"), DCAE_JSON("DCAE_JSON"), DCAE_POLICY("DCAE_POLICY"), DCAE_DOC("DCAE_DOC"), DCAE_EVENT("DCAE_EVENT"), DCAE_INVENTORY_TOSCA("DCAE_INVENTORY_TOSCA"), DCAE_INVENTORY_JSON("DCAE_INVENTORY_JSON"),
DCAE_INVENTORY_POLICY("DCAE_INVENTORY_POLICY"), DCAE_INVENTORY_DOC("DCAE_INVENTORY_DOC"), DCAE_INVENTORY_BLUEPRINT("DCAE_INVENTORY_BLUEPRINT"), DCAE_INVENTORY_EVENT("DCAE_INVENTORY_EVENT"),
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/api/Constants.java b/common-app-api/src/main/java/org/openecomp/sdc/common/api/Constants.java
index 04640e7fc7..fcde7f13ac 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/api/Constants.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/api/Constants.java
@@ -125,5 +125,6 @@ public interface Constants {
public static final String VF_LICENSE_DESCRIPTION = "VF license file";
public static final String GET_INPUT = "get_input";
public static final String SERVICE_TEMPLATE_FILE_POSTFIX = "ServiceTemplate.yaml";
+ public static final String SERVICE_TEMPLATES_CONTAINING_FOLDER = "Definitions/";
public static final String UNBOUNDED = "unbounded";
}
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/api/HealthCheckInfo.java b/common-app-api/src/main/java/org/openecomp/sdc/common/api/HealthCheckInfo.java
index 653b8b0866..2e4f54f153 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/api/HealthCheckInfo.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/api/HealthCheckInfo.java
@@ -20,12 +20,19 @@
package org.openecomp.sdc.common.api;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
public class HealthCheckInfo {
private HealthCheckComponent healthCheckComponent;
private HealthCheckStatus healthCheckStatus;
private String version;
private String description;
+ private List<HealthCheckInfo> componentsInfo;
public HealthCheckInfo(HealthCheckComponent healthCheckComponent, HealthCheckStatus healthCheckStatus,
String version, String description) {
@@ -36,6 +43,16 @@ public class HealthCheckInfo {
this.description = description;
}
+ public HealthCheckInfo(HealthCheckComponent healthCheckComponent, HealthCheckStatus healthCheckStatus,
+ String version, String description, List<HealthCheckInfo> componentsInfo) {
+ super();
+ this.healthCheckComponent = healthCheckComponent;
+ this.healthCheckStatus = healthCheckStatus;
+ this.version = version;
+ this.description = description;
+ this.componentsInfo = componentsInfo;
+ }
+
public HealthCheckInfo() {
super();
}
@@ -48,6 +65,14 @@ public class HealthCheckInfo {
return healthCheckStatus;
}
+ public List<HealthCheckInfo> getComponentsInfo() {
+ return componentsInfo;
+ }
+
+ public void setComponentsInfo(List<HealthCheckInfo> componentsInfo) {
+ this.componentsInfo = componentsInfo;
+ }
+
public String getVersion() {
return version;
}
@@ -61,7 +86,8 @@ public class HealthCheckInfo {
}
public enum HealthCheckComponent {
- FE, BE, TITAN, ES, DE;
+ FE, BE, TITAN, DE, ON_BOARDING, CASSANDRA,
+ CAS, ZU;//Amdocs components
}
public enum HealthCheckStatus {
@@ -71,6 +97,14 @@ public class HealthCheckInfo {
@Override
public String toString() {
return "HealthCheckInfo [healthCheckComponent=" + healthCheckComponent + ", healthCheckStatus="
- + healthCheckStatus + ", version=" + version + ", description=" + description + "]";
+ + healthCheckStatus + ", version=" + version + ", description=" + description + ", componentsInfo="
+ + componentsInfo + "]";
+ }
+
+ public static void main(String[] args) {
+ String des = "[{healthCheckComponent=BE4, healthCheckStatus=UP, version=0.0.1-SNAPSHOT, description=OK}, {healthCheckComponent=BE, healthCheckStatus=UP, version=1710.0.0-SNAPSHOT, description=OK}, {healthCheckComponent=BE5, healthCheckStatus=UP, version=2.1.9, description=OK}]";
+ Type listType = new TypeToken<List<HealthCheckInfo>>(){}.getType();
+ List<HealthCheckInfo> componentsInfo = new Gson().fromJson(des.toString(), listType);
+ System.out.println(componentsInfo.toString());
}
}
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/config/EcompErrorCode.java b/common-app-api/src/main/java/org/openecomp/sdc/common/config/EcompErrorCode.java
index 0f45d34886..aaee26004f 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/config/EcompErrorCode.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/config/EcompErrorCode.java
@@ -26,7 +26,7 @@ public enum EcompErrorCode {
"An Authentication failure occured during access to UEB server. Please check that UEB keys are configured correctly in ASDC BE distribution configuration."), E_199(
"Internal authentication problem. Description: %s"),
- E_200("ASDC Backend probably lost connectivity to either one of the following components: Titan DB, Elasticsearch, UEB Cluster. Please check the logs for more information."), E_201(
+ E_200("ASDC Backend probably lost connectivity to either one of the following components: Titan DB, Cassandra, Onboarding, UEB Cluster. Please check the logs for more information."), E_201(
"ASDC Backend probably lost connectivity to Titan DB. Please check the logs for more information."), E_202(
"ASDC Backend probably lost connectivity to ElasticSearch. Please check the logs for more information."), E_203(
"ASDC Backend probably lost connectivity to UEB Cluster. Please check the logs for more information.",
@@ -34,7 +34,7 @@ public enum EcompErrorCode {
"Unable to connect to a valid ASDC Backend Server",
"Please check connectivity from this FE instance towards BE or BE Load Balancer. Please check that parameters in FE configuration.yaml: beHost, beHttpPort and beSslPort point to a valid host and port values."),
- E_205("ASDC Backend Recovery to either one of the following components: Titan DB, Elasticsearch, UEB Cluster."), E_206(
+ E_205("ASDC Backend Recovery to either one of the following components: Titan DB, Cassandra, Onboarding, UEB Cluster."), E_206(
"ASDC Backend connection recovery to Titan DB."), E_207(
"ASDC Backend connection recovery to ElasticSearch."), E_208(
"ASDC Backend connection recovery to UEB Cluster."), E_209(
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/util/GeneralUtility.java b/common-app-api/src/main/java/org/openecomp/sdc/common/util/GeneralUtility.java
index c89eeaf535..0b55fd1845 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/util/GeneralUtility.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/util/GeneralUtility.java
@@ -153,4 +153,14 @@ public class GeneralUtility {
byte[] encodeBase64 = Base64.encodeBase64(calculatedMd5.getBytes());
return new String(encodeBase64);
}
+
+
+ /**
+ *
+ * @param String
+ * @return String is null or Empty
+ */
+ public static boolean isEmptyString(String str) {
+ return str == null || str.trim().isEmpty();
+ }
}
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java
index 3ea780a7f9..6c47659dad 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java
@@ -66,14 +66,18 @@ public class ValidationUtils {
public final static Pattern ENGLISH_PATTERN = Pattern.compile("^[\\p{Graph}\\x20]+$");
public final static Integer COMPONENT_DESCRIPTION_MAX_LENGTH = 1024;
+ public final static Integer SERVICE_TYPE_MAX_LENGTH = 400;
+ public final static Integer SERVICE_ROLE_MAX_LENGTH = 400;
+
public final static Integer TAG_MAX_LENGTH = 1024;
public final static Integer TAG_LIST_MAX_LENGTH = 1024;
- public final static Integer VENDOR_NAME_MAX_LENGTH = 25;
+ public final static Integer VENDOR_NAME_MAX_LENGTH = 60;
public final static Pattern VENDOR_NAME_PATTERN = Pattern
.compile("^[\\x20-\\x21\\x23-\\x29\\x2B-\\x2E\\x30-\\x39\\x3B\\x3D\\x40-\\x5B\\x5D-\\x7B\\x7D-\\xFF]+$");
public final static Integer VENDOR_RELEASE_MAX_LENGTH = 25;
public final static Pattern VENDOR_RELEASE_PATTERN = Pattern
.compile("^[\\x20-\\x21\\x23-\\x29\\x2B-\\x2E\\x30-\\x39\\x3B\\x3D\\x40-\\x5B\\x5D-\\x7B\\x7D-\\xFF]+$");
+ public final static Integer RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH = 65;
public final static Pattern CLEAN_FILENAME_PATTERN = Pattern.compile("[\\x00-\\x1f\\x80-\\x9f\\x5c/<?>\\*:|\"/]+");
@@ -318,14 +322,18 @@ public class ValidationUtils {
return true;
}
- public static boolean validateVendorName(String ventorName) {
- return VENDOR_NAME_PATTERN.matcher(ventorName).matches();
+ public static boolean validateVendorName(String vendorName) {
+ return VENDOR_NAME_PATTERN.matcher(vendorName).matches();
}
- public static boolean validateVendorNameLength(String ventorName) {
- return ventorName.length() <= VENDOR_NAME_MAX_LENGTH;
+ public static boolean validateVendorNameLength(String vendorName) {
+ return vendorName.length() <= VENDOR_NAME_MAX_LENGTH;
}
+ public static boolean validateResourceVendorModelNumberLength(String resourceVendorModelNumber) {
+ return resourceVendorModelNumber.length() <= RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH;
+ }
+
public static boolean validateVendorRelease(String vendorRelease) {
return VENDOR_RELEASE_PATTERN.matcher(vendorRelease).matches();
}
@@ -333,6 +341,16 @@ public class ValidationUtils {
public static boolean validateVendorReleaseLength(String vendorRelease) {
return vendorRelease.length() <= VENDOR_RELEASE_MAX_LENGTH;
}
+
+ public static boolean validateServiceTypeLength(String serviceType) {
+ return serviceType.length() <= SERVICE_TYPE_MAX_LENGTH;
+ }
+
+ public static boolean validateServiceRoleLength(String serviceRole) {
+ return serviceRole.length() <= SERVICE_ROLE_MAX_LENGTH;
+ }
+
+
public static boolean hasBeenCertified(String version) {
return NumberUtils.toDouble(version) >= 1;
@@ -509,5 +527,5 @@ public class ValidationUtils {
String stripped = HtmlCleaner.stripHtml(htmlText, false);
return stripped;
}
-
+
}
diff --git a/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java b/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java
index 50c2b79d63..ae882d8a92 100644
--- a/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java
+++ b/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java
@@ -257,7 +257,7 @@ public class CommonUtilsTest {
@Test
public void validateVendorNameLengthTest() {
assertTrue(ValidationUtils.validateVendorNameLength("fsdlfsdlk.sdsd;"));
- assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddsdfs"));
+ assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsdfs"));
}
@Test
@@ -271,8 +271,8 @@ public class CommonUtilsTest {
@Test
public void validateVendorReleaseLengthTest() {
- assertTrue(ValidationUtils.validateVendorNameLength("fsdlfsdlk.sdsd;"));
- assertFalse(ValidationUtils.validateVendorNameLength("ddddddddddddddddddddddsdfs"));
+ assertTrue(ValidationUtils.validateVendorReleaseLength("fsdlfsdlk.sdsd;"));
+ assertFalse(ValidationUtils.validateVendorReleaseLength("ddddddddddddddddddddddsdfs"));
}
@Test
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java
index 24d801262c..5fecac429a 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java
@@ -28,6 +28,8 @@ import java.util.Map;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinition implements Serializable {
@@ -35,7 +37,8 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
*
*/
private static final long serialVersionUID = -9114770126086263552L;
-
+ private static final Logger log = LoggerFactory.getLogger(ComponentMetadataDataDefinition.class.getName());
+
private String uniqueId;
private String name; // archiveName
@@ -156,13 +159,13 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
this.lastUpdateDate = other.getLastUpdateDate();
this.description = other.getDescription();
this.state = other.getState();
- this.tags = new ArrayList<String>(other.getTags());
+ this.tags = new ArrayList<>(other.getTags());
this.icon = other.getIcon();
this.contactId = other.getContactId();
this.UUID = other.getUUID();
this.normalizedName = other.getNormalizedName();
this.systemName = other.getSystemName();
- this.allVersions = new HashMap<String, String>(other.getAllVersions());
+ this.allVersions = new HashMap<>(other.getAllVersions());
this.isDeleted = other.isDeleted();
this.projectCode = other.getProjectCode();
this.csarUUID = other.getCsarUUID();
@@ -177,6 +180,8 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
}
public void setUniqueId(String uniqueId) {
+ if ( this.uniqueId != null && !this.uniqueId.equals( uniqueId ) )
+ log.warn("uniqueId changed more then once -> OLD : {} , NEW: {} ", this.uniqueId ,uniqueId );
this.uniqueId = uniqueId;
}
@@ -264,8 +269,10 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
return UUID;
}
- public void setUUID(String uUID) {
- UUID = uUID;
+ public void setUUID(String UUID) {
+ if ( this.UUID != null && !this.UUID.equals( UUID ) )
+ log.warn("UUID changed more then once -> OLD : {} , NEW: {} ", this.UUID, UUID );
+ this.UUID = UUID;
}
public String getNormalizedName() {
@@ -297,6 +304,8 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
}
public void setInvariantUUID(String invariantUUID) {
+ if ( this.invariantUUID != null && !this.invariantUUID.equals( invariantUUID ) )
+ log.warn("InvariantUUID changed more then once -> OLD : {} , NEW: {} ", this.invariantUUID ,invariantUUID );
this.invariantUUID = invariantUUID;
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ResourceMetadataDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ResourceMetadataDataDefinition.java
index 7b112ce129..9675cd37fb 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ResourceMetadataDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ResourceMetadataDataDefinition.java
@@ -34,6 +34,7 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
private String vendorName;
private String vendorRelease;
+ private String resourceVendorModelNumber;
private ResourceTypeEnum resourceType = ResourceTypeEnum.VFC; // ResourceType.VFC
// is
// default
@@ -44,12 +45,14 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
public ResourceMetadataDataDefinition() {
super();
+ resourceVendorModelNumber = "";
}
public ResourceMetadataDataDefinition(ResourceMetadataDataDefinition other) {
super(other);
this.vendorName = other.getVendorName();
this.vendorRelease = other.getVendorRelease();
+ this.resourceVendorModelNumber = other.getResourceVendorModelNumber();
this.isAbstract = other.isHighestVersion();
this.resourceType = other.getResourceType();
this.toscaResourceName = other.getToscaResourceName();
@@ -70,6 +73,15 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
public void setVendorRelease(String vendorRelease) {
this.vendorRelease = vendorRelease;
}
+
+ public String getResourceVendorModelNumber() {
+ return resourceVendorModelNumber;
+ }
+
+ public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
+ this.resourceVendorModelNumber = resourceVendorModelNumber;
+ }
+
public ResourceTypeEnum getResourceType() {
return resourceType;
@@ -114,7 +126,8 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
@Override
public String toString() {
return "ResourceMetadataDataDefinition [vendorName=" + vendorName + ", vendorRelease=" + vendorRelease
- + ", resourceType=" + resourceType + ", isAbstract=" + isAbstract + super.toString() + "]";
+ + ", resourceVendorModelNumber=" + resourceVendorModelNumber + ", resourceType=" + resourceType +
+ ", isAbstract=" + isAbstract + super.toString() + "]";
}
@Override
@@ -127,6 +140,7 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
result = prime * result + ((resourceType == null) ? 0 : resourceType.hashCode());
result = prime * result + ((vendorName == null) ? 0 : vendorName.hashCode());
result = prime * result + ((vendorRelease == null) ? 0 : vendorRelease.hashCode());
+ result = prime * result + ((resourceVendorModelNumber == null)? 0 : resourceVendorModelNumber.hashCode());
return result;
}
@@ -170,6 +184,11 @@ public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinit
return false;
} else if (!vendorRelease.equals(other.vendorRelease))
return false;
+ if (resourceVendorModelNumber == null) {
+ if (other.resourceVendorModelNumber != null)
+ return false;
+ } else if (!resourceVendorModelNumber.equals(other.resourceVendorModelNumber))
+ return false;
return super.equals(obj);
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ServiceMetadataDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ServiceMetadataDataDefinition.java
index 4f3486e457..4a42436583 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ServiceMetadataDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ServiceMetadataDataDefinition.java
@@ -33,6 +33,8 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
public static final String EMPTY_STR = "";
private String distributionStatus;
+ private String serviceType;
+ private String serviceRole;
private Boolean ecompGeneratedNaming = true;
@@ -40,10 +42,14 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
public ServiceMetadataDataDefinition() {
super();
+ serviceType = "";
+ serviceRole = "";
}
public ServiceMetadataDataDefinition(ServiceMetadataDataDefinition other) {
super(other);
+ serviceType = other.getServiceType();
+ serviceRole = other.getServiceRole();
}
public String getDistributionStatus() {
@@ -53,6 +59,22 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
public void setDistributionStatus(String distributionStatus) {
this.distributionStatus = distributionStatus;
}
+
+ public String getServiceType(){
+ return serviceType;
+ }
+
+ public void setServiceType(String serviceType){
+ this.serviceType = serviceType;
+ }
+
+ public String getServiceRole(){
+ return serviceRole;
+ }
+
+ public void setServiceRole(String serviceRole){
+ this.serviceRole = serviceRole;
+ }
public Boolean isEcompGeneratedNaming() {
return ecompGeneratedNaming;
@@ -73,8 +95,8 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
@Override
public String toString() {
return "ServiceMetadataDataDefinition [ distributionStatus=" + distributionStatus
- + ", ecompGeneratedNaming=" + ecompGeneratedNaming + ", namingPolicy=" + namingPolicy
- + ", parent=" + super.toString() + "]";
+ + ", serviceType=" + serviceType + ", serviceRole=" + serviceRole + ", ecompGeneratedNaming="
+ + ecompGeneratedNaming + ", namingPolicy=" + namingPolicy + ", parent=" + super.toString() + "]";
}
@Override
@@ -84,6 +106,8 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
result = prime * result + ((distributionStatus == null) ? 0 : distributionStatus.hashCode());
result = prime * result + ((ecompGeneratedNaming == null) ? 0 : ecompGeneratedNaming.hashCode());
result = prime * result + ((namingPolicy == null) ? 0 : namingPolicy.hashCode());
+ result = prime * result + ((serviceType == null) ? 0 : serviceType.hashCode());
+ result = prime * result + ((serviceRole == null) ? 0 : serviceRole.hashCode());
return result;
}
@@ -117,6 +141,16 @@ public class ServiceMetadataDataDefinition extends ComponentMetadataDataDefiniti
return false;
} else if (!namingPolicy.equals(other.namingPolicy))
return false;
+ if (serviceType == null){
+ if (other.serviceType != null)
+ return false;
+ } else if (!serviceType.equals(other.serviceType))
+ return false;
+ if (serviceRole == null){
+ if (other.serviceRole != null)
+ return false;
+ } else if (!serviceRole.equals(other.serviceRole))
+ return false;
return super.equals(obj);
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
index 424b15059e..6d11c51596 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ListDataDefinition.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.codehaus.jackson.annotate.JsonCreator;
@@ -86,6 +87,11 @@ public class ListDataDefinition<T extends ToscaDataDefinition> extends ToscaData
((ListDataDefinition)other).listToscaDataDefinition = mapByName.values().stream().collect(Collectors.toList());
return other;
}
-
+
+ @Override
+ public boolean findUidMatch(String uid){
+ return listToscaDataDefinition.stream()
+ .anyMatch(p -> p.findUidMatch(uid));
+ }
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MapDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MapDataDefinition.java
index 537d9502cd..741aa39230 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MapDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MapDataDefinition.java
@@ -76,5 +76,17 @@ public class MapDataDefinition <T extends ToscaDataDefinition> extends ToscaDa
mapToscaDataDefinition.entrySet().forEach(e -> e.getValue().setOwnerIdIfEmpty(ownerId));
}
}
+
+
+ public String findKeyByItemUidMatch(String uid){
+ if(null == mapToscaDataDefinition)
+ return null;
+ Map.Entry<String, T> entry = mapToscaDataDefinition.entrySet().stream().filter(e ->
+ e.getValue().findUidMatch(uid))
+ .findAny().orElse(null);
+ if(null == entry)
+ return null;
+ return entry.getKey();
+ }
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RelationshipInstDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RelationshipInstDataDefinition.java
index de9127d08c..0017567031 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RelationshipInstDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RelationshipInstDataDefinition.java
@@ -44,12 +44,12 @@ public class RelationshipInstDataDefinition extends ToscaDataDefinition implemen
this.setModificationTime(cdt.getModificationTime());
this.setCapabilityOwnerId(cdt.getCapabilityOwnerId());
this.setRequirementOwnerId(cdt.getRequirementOwnerId());
- this.setCapabiltyId(cdt.getCapabiltyId());
+ this.setCapabilityId(cdt.getCapabilityId());
this.setRequirementId(cdt.getRequirementId());
this.setFromId(cdt.getFromId());
this.setToId(cdt.getToId());
this.setRequirement(cdt.getRequirement());
- this.setCapability(cdt.getCapabilty());
+ this.setCapability(cdt.getCapability());
}
@@ -60,11 +60,11 @@ public class RelationshipInstDataDefinition extends ToscaDataDefinition implemen
public String getRequirement() {
return (String) getToscaPresentationValue(JsonPresentationFields.REQUIREMENT);
}
- public void setCapability(String capabilty) {
- setToscaPresentationValue(JsonPresentationFields.CAPAPILITY, capabilty);
+ public void setCapability(String capability) {
+ setToscaPresentationValue(JsonPresentationFields.CAPAPILITY, capability);
}
- public String getCapabilty() {
+ public String getCapability() {
return (String) getToscaPresentationValue(JsonPresentationFields.CAPAPILITY);
}
public void setToId(Object toId) {
@@ -87,15 +87,15 @@ public class RelationshipInstDataDefinition extends ToscaDataDefinition implemen
setToscaPresentationValue(JsonPresentationFields.REQUIREMENT_ID, requirementId);
}
- public void setCapabiltyId(Object capabiltyId) {
- setToscaPresentationValue(JsonPresentationFields.CAPABILITY_ID, capabiltyId);
+ public void setCapabilityId(Object capabilityId) {
+ setToscaPresentationValue(JsonPresentationFields.CAPABILITY_ID, capabilityId);
}
public String getRequirementId() {
return (String) getToscaPresentationValue(JsonPresentationFields.REQUIREMENT_ID);
}
- public String getCapabiltyId() {
+ public String getCapabilityId() {
return (String) getToscaPresentationValue(JsonPresentationFields.CAPABILITY_ID);
}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RequirementDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RequirementDataDefinition.java
index 59b14b3060..b32f65f9d3 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RequirementDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/RequirementDataDefinition.java
@@ -191,7 +191,7 @@ public class RequirementDataDefinition extends ToscaDataDefinition implements Se
public int hashCode() {
final int prime = 31;
int result = 1;
- String name = getUniqueId();
+ String name = getName();
String uniqueId = getUniqueId();
String capability = getCapability();
String node = getNode();
@@ -230,7 +230,7 @@ public class RequirementDataDefinition extends ToscaDataDefinition implements Se
return false;
RequirementDataDefinition other = (RequirementDataDefinition) obj;
- String name = getUniqueId();
+ String name = getName();
String uniqueId = getUniqueId();
String capability = getCapability();
String node = getNode();
@@ -308,7 +308,7 @@ public class RequirementDataDefinition extends ToscaDataDefinition implements Se
@Override
public String toString() {
- String name = getUniqueId();
+ String name = getName();
String uniqueId = getUniqueId();
String capability = getCapability();
String node = getNode();
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java
index 9dfc3b602a..d5592995e6 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java
@@ -48,6 +48,9 @@ public enum JsonPresentationFields {
DERIVED_FROM ("derivedFrom", null),
VENDOR_NAME ("vendorName", null),
VENDOR_RELEASE ("vendorRelease", null),
+ RESOURCE_VENDOR_MODEL_NUMBER ("reourceVendorModelNumber",null),
+ SERVICE_TYPE ("serviceType", null),
+ SERVICE_ROLE ("serviceRole", null),
CONFORMANCE_LEVEL ("conformanceLevel", null),
ICON ("icon", null),
TAGS ("tags", null),
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/OriginTypeEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/OriginTypeEnum.java
index 0d837762e2..36756e9225 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/OriginTypeEnum.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/OriginTypeEnum.java
@@ -27,7 +27,9 @@ public enum OriginTypeEnum {
VFC("VFC", "VFC (Virtual Function Component)", "resource instance", ComponentTypeEnum.RESOURCE),
CP("CP", "CP (Connection Point)", "resource instance", ComponentTypeEnum.RESOURCE),
VL("VL", "VL (Virtual Link)", "resource instance", ComponentTypeEnum.RESOURCE),
- VFCMT("VFCMT", "VFCMT (VFC Monitoring Template)", "resource instance", ComponentTypeEnum.RESOURCE);
+ VFCMT("VFCMT", "VFCMT (VFC Monitoring Template)", "resource instance", ComponentTypeEnum.RESOURCE),
+ CVFC("CVFC", "CVFC (Complex Virtual Function Component)", "resource instance", ComponentTypeEnum.RESOURCE),
+ PNF("PNF", "PNF (Physical Network Function)", "resource instance", ComponentTypeEnum.RESOURCE);
private String value;
private String displayValue;
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ResourceTypeEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ResourceTypeEnum.java
index d3652c238f..182657e125 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ResourceTypeEnum.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ResourceTypeEnum.java
@@ -27,8 +27,14 @@ package org.openecomp.sdc.be.datatypes.enums;
*/
public enum ResourceTypeEnum {
- VFC("VFC (Virtual Function Component)"), VF("VF"/* (Virtual Function)" */), CP("CP (Connection Point)"),
- VL( "VL (Virtual Link)"), VFCMT("VFCMT (VFC Monitoring Template)"), ABSTRACT("Abstract (Generic VFC/VF/Service Type)");
+ VFC("VFC (Virtual Function Component)"),
+ VF("VF"/* (Virtual Function)" */),
+ CP("CP (Connection Point)"),
+ PNF("PNF"/* (Physical Network Function)" */),
+ CVFC("CVFC"/*Complex Virtual Function Component*/),
+ VL( "VL (Virtual Link)"),
+ VFCMT("VFCMT (VFC Monitoring Template)"),
+ ABSTRACT("Abstract (Generic VFC/VF/PNF/Service Type)");
private String value;
@@ -85,7 +91,7 @@ public enum ResourceTypeEnum {
return false;
}
/**
- * Checks if enum exist with given type ignare case
+ * Checks if enum exist with given type ignore case
* @param type
* @return
*/
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java
index eba27fb48b..df73adaa4a 100644
--- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java
+++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java
@@ -100,4 +100,8 @@ public abstract class ToscaDataDefinition {
return null == dataList? new HashMap<>() : dataList.stream()
.collect(Collectors.toMap(p -> (String)p.getToscaPresentationValue(JsonPresentationFields.NAME), p -> p));
}
+
+ public boolean findUidMatch(String uid){
+ return uid.equals(getToscaPresentationValue(JsonPresentationFields.UNIQUE_ID));
+ }
}
diff --git a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml
index 4e94ac936d..e9ba221737 100644
--- a/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml
+++ b/common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-api/pom.xml
@@ -77,7 +77,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
</dependencies>
<build>
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/yamlutil/ToscaExtensionYamlUtil.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/ToscaExtensionYamlUtil.java
index 2b806fbea0..e6360461ef 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/yamlutil/ToscaExtensionYamlUtil.java
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/ToscaExtensionYamlUtil.java
@@ -1,26 +1,5 @@
-/*-
- * ============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.tosca.services;
-package org.openecomp.sdc.tosca.services.yamlutil;
-
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.introspector.PropertyUtils;
@@ -29,6 +8,7 @@ import org.yaml.snakeyaml.nodes.NodeId;
import java.beans.IntrospectionException;
+
public class ToscaExtensionYamlUtil extends YamlUtil {
@Override
@@ -64,7 +44,7 @@ public class ToscaExtensionYamlUtil extends YamlUtil {
yamlClassConstructors.put(NodeId.mapping, new MyPersistentObjectConstruct());
}
- class MyPersistentObjectConstruct extends ConstructMapping {
+ class MyPersistentObjectConstruct extends Constructor.ConstructMapping {
@Override
protected Object constructJavaBean2ndStep(MappingNode node, Object object) {
Class type = node.getType();
@@ -87,6 +67,3 @@ public class ToscaExtensionYamlUtil extends YamlUtil {
}
}
}
-
-
-
diff --git a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java
index 7d0bcfeb83..755f02a4f8 100644
--- a/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java
+++ b/common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/services/YamlUtil.java
@@ -48,6 +48,10 @@ public class YamlUtil {
return yamlObj;
}
+ public InputStream loadYamlFileIs(String yamlFullFileName) {
+ return YamlUtil.class.getResourceAsStream(yamlFullFileName);
+ }
+
/**
* Yaml to object t.
*
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 53ea8a8656..c7ce3c13e0 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
@@ -123,7 +123,17 @@ data_types:
count:
description: number of assignments required
type: integer
- required: false
+ required: false
+
+ org.openecomp.resource.abstract.nodes.PNF:
+ derived_from: tosca.nodes.Root
+ properties:
+ nf_function:
+ type: string
+ nf_role:
+ type: string
+ nf_type:
+ type: string
org.openecomp.datatypes.network.IpRequirements:
@@ -133,23 +143,16 @@ data_types:
type: integer
required: true
constraints:
- - valid_values:
- - 4
- - 6
+ - valid_values:
+ - 4
+ - 6
ip_count:
description: identifies the number of ip address to assign to the CP from the plan
type: integer
required: false
- ip_count_required:
- description: identifies the number of ip address to assign to the CP from the plan
- type: org.openecomp.datatypes.AssignmentRequirements
- required: false
floating_ip_count:
type: integer
required: false
- floating_ip_count_required:
- type: org.openecomp.datatypes.AssignmentRequirements
- required: false
subnet_role:
type: string
required: false
@@ -157,9 +160,25 @@ data_types:
type: string
required: true
constraints:
- - valid_values:
- - fixed
- - dhcp
+ - valid_values:
+ - fixed
+ - dhcp
+ dhcp_enabled:
+ type: boolean
+ required: false
+ ip_count_required:
+ description: identifies the number of ip address to assign to the CP from the plan
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+ floating_ip_count_required:
+ type: org.openecomp.datatypes.AssignmentRequirements
+ required: false
+ ip_address_plan_name:
+ type: string
+ required: false
+ vrf_name:
+ type: string
+ required: false
org.openecomp.datatypes.network.PhysicalNetwork:
derived_from: org.openecomp.datatypes.Root
@@ -475,4 +494,64 @@ data_types:
description: Reference to naming policy that OPENECOMP will use when the name is auto-generated
type: string
required: false
+
+ org.openecomp.datatypes.flavors.DeploymentFlavor:
+ properties:
+ sp_part_number:
+ type: string # under discussion; need confirmation
+ description: Part number of the feature group associated with the deployment flavor
+ vendor_info:
+ type: org.opencomp.datatypes.flavors.VendorInfo
+ description: Vendor information for the deployment flavor
+ compute_flavor:
+ type: org.opencomp.datatypes.flavors.ComputeFlavor
+ description: Compute information for the deployment flavor
+ license_flavor:
+ type: org.opencomp.datatypes.flavors.LicenseFlavor
+ description: License information for the deployment flavor
+ required: false
+
+ org.openecomp.datatypes.flavors.ComputeFlavor:
+ properties:
+ num_cpus:
+ type: integer
+ description: Number of CPUs for the VM
+ disk_size:
+ type: scalar-unit.size
+ description: Disk size of the VM
+ mem_size:
+ type: scalar-unit.size
+ description: Memory size of the VM
+
+ org.openecomp.datatypes.flavors.LicenseFlavor:
+ properties:
+ feature_group_uuid:
+ type: string
+ description: Feature Group Id
+
+ org.openecomp.datatypes.flavors.VendorInfo:
+ properties:
+ manufacturer_reference_number:
+ type: string
+ description: Manufacturer reference number
+ vendor_model:
+ type: string
+ description: Vendor License Model Id
+
+ org.openecomp.datatypes.ImageInfo:
+ properties:
+ software_version:
+ type: string
+ description: Image version
+ file_name:
+ type: string
+ description: Image file name
+ file_hash:
+ type: string
+ description: checksum/signature
+ file_hash_type:
+ type: string
+ description: Hash type
+ required: false
+ default: md5
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 fd1a8e5f9a..fb2e030a06 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
@@ -320,6 +320,9 @@ node_types:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.ComplexVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+
org.openecomp.resource.abstract.nodes.VFC:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
@@ -343,6 +346,16 @@ node_types:
type: string
status: SUPPORTED
required: false
+ nfc_code:
+ type: string
+ description: nfc code
+ status: SUPPORTED
+ required: false
+ nfc_function:
+ type: string
+ description: nfc function
+ status: SUPPORTED
+ required: false
vm_type_tag:
description: vm type based on naming Convention
type: string
@@ -537,3 +550,23 @@ node_types:
org.openecomp.resource.vfc.nodes.volume:
derived_from: tosca.nodes.BlockStorage
+ ### Node types related to Deployment Flavors
+ org.openecomp.resource.abstract.nodes.VnfConfiguration:
+ derived_from: tosca.nodes.Root
+ description: a container for the available flavors
+ properties:
+ allowed_flavors:
+ description: a collection of all available flavor valuesets
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.flavors.DeploymentFlavor
+
+ org.openecomp.resource.abstract.nodes.MultiFlavorVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ description: Multi flavored VFC node
+ properties:
+ images:
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.ImageInfo
+ required: false \ No newline at end of file
diff --git a/common/pom.xml b/common/pom.xml
index 39c8c90fd9..01be598ebb 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -15,7 +15,18 @@
</parent>
<properties>
+ <junit.version>4.12</junit.version>
+ <java.source>1.8</java.source>
+ <java.target>1.8</java.target>
+ <slf4j.version>1.7.21</slf4j.version>
<aspectj.version>1.8.7</aspectj.version>
+ <servlet.version>2.5</servlet.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <commons.codec.version>1.10</commons.codec.version> <!-- orignal 1.6 updated to resolve
+ blackduck violation -->
+ <org.reflections.version>0.9.10</org.reflections.version><!-- orignal 0.9.9 updated to
+ resolve blackduck violation -->
+
</properties>
<modules>
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index 4e7c1834e8..41311914f9 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -75,9 +75,10 @@
<jetty.servlets.version>9.0.6.v20130930</jetty.servlets.version>
<jersey.core.version>1.19.1</jersey.core.version>
<jersey.multipart.version>1.18.1</jersey.multipart.version>
- <junit.version>RELEASE</junit.version>
+ <junit.version>4.12</junit.version>
<logback.version>1.1.2</logback.version>
<mockito.all.version>1.10.19</mockito.all.version>
+ <openecomp.sdc.common.version>1.1.0-SNAPSHOT</openecomp.sdc.common.version>
<org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version> <!-- orignal 1.9.2 -->
<org.everit.json.schema.version>1.3.0</org.everit.json.schema.version> <!--new 1.4.1 orignal 1.3.0 updated to resolve blackduck violation -->
<org.reflections.version>0.9.10</org.reflections.version> <!-- orignal 0.9.9 updated to resolve blackduck violation -->
@@ -91,5 +92,6 @@
<testng.version>6.9.10</testng.version> <!--new 6.9.13.6 still shows blackduck risk -->
<woodstox.version>4.4.1</woodstox.version>
<ws.rs.version>2.0.1</ws.rs.version> <!-- New version 2.0.1 to fix blackduck violation Failing with comiplation issues-->
+ <zusammen.version>0.2.0</zusammen.version>
</properties>
</project>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup
new file mode 100644
index 0000000000..47b9bdde7b
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup
@@ -0,0 +1,143 @@
+<?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>action-library-rest-services</artifactId>
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>action-library-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <properties>
+ <errorcode.dir>${project.build.directory}/generated-sources/error-codes</errorcode.dir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>action-library-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+
+ <!-- Other Stuff-->
+ <!--dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ <scope>runtime</scope>
+ </dependency-->
+
+ <!-- Java Stuff -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.21</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-multipart</artifactId>
+ <version>1.18.1</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ <!-- Error codes generator plugin -->
+ <!--plugin>
+ <groupId>org.openecomp.nfv.tools</groupId>
+ <artifactId>error-codes-maven-plugin</artifactId>
+ </plugin-->
+ </plugins>
+ </build>
+
+
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup
new file mode 100644
index 0000000000..4749ce7f8c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup
@@ -0,0 +1,36 @@
+<?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>action-library-rest-types</artifactId>
+ <name>action-library-rest-types</name>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>action-library-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <!--<dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>-->
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..de6c4c6760
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup
@@ -0,0 +1,22 @@
+<?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>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>action-library-rest</artifactId>
+ <name>action-library-rest</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+ <modules>
+ <module>/action-library-rest-services</module>
+ <module>/action-library-rest-types</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/activity-log-rest/activity-log-rest-types/src/main/java/org/openecomp/sdcrests/activitylog/types/ActivityType.java b/openecomp-be/api/openecomp-sdc-rest-webapp/activity-log-rest/activity-log-rest-types/src/main/java/org/openecomp/sdcrests/activitylog/types/ActivityType.java
index dcbad726ab..6bfd50b401 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/activity-log-rest/activity-log-rest-types/src/main/java/org/openecomp/sdcrests/activitylog/types/ActivityType.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/activity-log-rest/activity-log-rest-types/src/main/java/org/openecomp/sdcrests/activitylog/types/ActivityType.java
@@ -28,7 +28,7 @@ public enum ActivityType implements Serializable {
CHECKOUT("Check Out"),
CHECKIN("Check In"),
UPLOAD_HEAT("Upload Heat"),
- UPLOAD_ARTIFACT("Upload Artifact"),
+ UPLOAD_MONITORING_FILE("Upload Monitoring File"),
SUBMIT("Submit");
// after collaboration will be added - this will be added:
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup
new file mode 100644
index 0000000000..9c3472a970
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup
@@ -0,0 +1,63 @@
+<?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>application-config-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>application-config-rest-services</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <!--packaging>pom</packaging-->
+
+ <dependencies>
+
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-application-config-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>application-config-rest-types</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup
new file mode 100644
index 0000000000..a9c8bbaee5
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup
@@ -0,0 +1,18 @@
+<?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>application-config-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>application-config-rest-types</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..fd2e251fea
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup
@@ -0,0 +1,24 @@
+<?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-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>application-config-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+
+ <modules>
+ <module>application-config-rest-services</module>
+ <module>application-config-rest-types</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/pom.xml
new file mode 100644
index 0000000000..d41c8ef5b3
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/pom.xml
@@ -0,0 +1,60 @@
+<?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>healthcheck-rest</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>healthcheck-rest-services</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <!--packaging>pom</packaging-->
+
+ <dependencies>
+
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healthcheck-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>healthcheck-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/HealthCheck.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/HealthCheck.java
new file mode 100644
index 0000000000..2ed1d57f8f
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/HealthCheck.java
@@ -0,0 +1,46 @@
+/*-
+ * ============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.sdcrests.health.rest;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.Collection;
+import org.openecomp.sdcrests.health.types.HealthInfoDtos;
+
+@Path("/v1.0/healthcheck")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Health Check")
+@Validated
+public interface HealthCheck {
+
+ @GET
+ @ApiOperation(value = "Perform health check",
+ response = HealthInfoDtos.class,
+ responseContainer = "List")
+ Response checkHealth( );
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/mapping/MapHealthCheckInfoToDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/mapping/MapHealthCheckInfoToDto.java
new file mode 100644
index 0000000000..8d560027e5
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/mapping/MapHealthCheckInfoToDto.java
@@ -0,0 +1,49 @@
+/*-
+ * ============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.sdcrests.health.rest.mapping;
+
+import org.openecomp.sdc.health.data.HealthInfo;
+import org.openecomp.sdcrests.health.types.HealthCheckStatus;
+import org.openecomp.sdcrests.health.types.HealthInfoDto;
+import org.openecomp.sdcrests.health.types.HealthInfoDtos;
+import org.openecomp.sdcrests.health.types.MonitoredModules;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Created by Talio on 8/10/2016.
+ */
+public class MapHealthCheckInfoToDto
+ extends MappingBase<Collection<HealthInfo>, HealthInfoDtos> {
+ @Override
+ public void doMapping(Collection<HealthInfo> source, HealthInfoDtos target) {
+
+ List<HealthInfoDto> healthInfos = source.stream()
+ .map(healthInfo -> new HealthInfoDto(
+ MonitoredModules.toValue(healthInfo.getHealthCheckComponent().toString()),
+ HealthCheckStatus.valueOf(healthInfo.getHealthCheckStatus().toString()),
+ healthInfo.getVersion(), healthInfo.getDescription())).collect(Collectors.toList());
+ target.setHealthInfos(healthInfos);
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/services/HealthCheckImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/services/HealthCheckImpl.java
new file mode 100644
index 0000000000..047adaa25e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-services/src/main/java/org/openecomp/sdcrests/health/rest/services/HealthCheckImpl.java
@@ -0,0 +1,94 @@
+/*-
+ * ============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.sdcrests.health.rest.services;
+
+import org.apache.cxf.jaxrs.impl.ResponseBuilderImpl;
+import org.openecomp.sdc.health.HealthCheckManager;
+import org.openecomp.sdc.health.HealthCheckManagerFactory;
+import org.openecomp.sdc.health.data.HealthCheckResult;
+import org.openecomp.sdc.health.data.HealthCheckStatus;
+import org.openecomp.sdc.health.data.HealthInfo;
+import org.openecomp.sdc.health.data.SiteMode;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdcrests.health.types.HealthInfoDtos;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+import java.util.Arrays;
+import java.util.Collection;
+
+@Named
+@Service("healthCheck")
+@Scope(value = "prototype")
+public class HealthCheckImpl implements org.openecomp.sdcrests.health.rest.HealthCheck {
+
+ private HealthCheckManager healthCheckManager;
+ private static final Logger logger = LoggerFactory.getLogger(HealthCheckImpl.class);
+
+ public HealthCheckImpl() {
+ try {
+ healthCheckManager = HealthCheckManagerFactory.getInstance().createInterface();
+ } catch (Exception e){
+ logger.error(e.getMessage(),e);
+ }
+ }
+
+ @Override
+ public Response checkHealth() {
+ HealthCheckResult healthCheckResult = new HealthCheckResult();
+
+ try {
+ MdcUtil.initMdc(LoggerServiceName.Health_check.toString());
+ Collection<HealthInfo> healthInfos = healthCheckManager.checkHealth();
+ healthCheckResult.setComponentsInfo(healthInfos);
+ boolean someIsDown = healthInfos.stream()
+ .anyMatch(healthInfo -> healthInfo.getHealthCheckStatus().equals(HealthCheckStatus.DOWN));
+ healthInfos.stream().
+ filter(healthInfo -> healthInfo.getHealthCheckComponent()
+ .equals(org.openecomp.sdc.health.data.MonitoredModules.BE)).
+ findFirst().ifPresent(healthInfo -> healthCheckResult.setSdcVersion(healthInfo.getVersion()));
+ if (someIsDown) {
+ Response.ResponseBuilder responseBuilder = new ResponseBuilderImpl();
+ return responseBuilder.entity(healthCheckResult).status(500).build();
+ }
+ return Response.ok(healthCheckResult).build();
+ } catch (Exception ex) {
+ logger.error("Health check failed", ex);
+ Response.ResponseBuilder responseBuilder = new ResponseBuilderImpl();
+ GenericCollectionWrapper<HealthInfoDtos> results = new GenericCollectionWrapper<>();
+ HealthInfo healthInfo = new HealthInfo(org.openecomp.sdc.health.data.MonitoredModules.BE ,
+ HealthCheckStatus.DOWN,
+ "", "Failed to perform Health Check");
+ Collection<HealthInfo> healthInfos = Arrays.asList(healthInfo);
+ healthCheckResult.setComponentsInfo(healthInfos);
+ return responseBuilder.entity(healthCheckResult).status(500).build();
+ }
+ }
+
+
+}
+
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/pom.xml
new file mode 100644
index 0000000000..2922980d9e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/pom.xml
@@ -0,0 +1,17 @@
+<?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>healthcheck-rest</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>healthcheck-rest-types</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthCheckStatus.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthCheckStatus.java
new file mode 100644
index 0000000000..b634a98532
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthCheckStatus.java
@@ -0,0 +1,28 @@
+package org.openecomp.sdcrests.health.types;
+
+
+public enum HealthCheckStatus {
+ UP("UP"),
+ DOWN("DOWN");
+
+ private String name;
+
+ HealthCheckStatus(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ public static final HealthCheckStatus toValue(String inVal){
+ for (HealthCheckStatus val : values()){
+ if (val.toString().equals(inVal)){
+ return val;
+ }
+ }
+ return null;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDto.java
new file mode 100644
index 0000000000..9ed93cfec7
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDto.java
@@ -0,0 +1,61 @@
+package org.openecomp.sdcrests.health.types;
+
+
+public class HealthInfoDto {
+ private MonitoredModules healthCheckComponent;
+ private HealthCheckStatus healthStatus;
+ private String version;
+ private String description;
+
+ public HealthInfoDto() {
+ }
+
+ public HealthInfoDto(MonitoredModules healthCheckComponent, HealthCheckStatus healthStatus, String version, String description) {
+ this.healthCheckComponent = healthCheckComponent;
+ this.healthStatus = healthStatus;
+ this.version = version;
+ this.description = description;
+ }
+
+ public MonitoredModules getHealthCheckComponent() {
+ return healthCheckComponent;
+ }
+
+ public void setHealthCheckComponent(MonitoredModules healthCheckComponent) {
+ this.healthCheckComponent = healthCheckComponent;
+ }
+
+ public HealthCheckStatus getHealthStatus() {
+ return healthStatus;
+ }
+
+ public void setHealthStatus(HealthCheckStatus healthStatus) {
+ this.healthStatus = healthStatus;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
+ public String toString() {
+ return "HealthInfo{" +
+ "healthCheckComponent='" + healthCheckComponent + '\'' +
+ ", healthStatus=" + healthStatus +
+ ", version='" + version + '\'' +
+ ", description='" + description + '\'' +
+ '}';
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDtos.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDtos.java
new file mode 100644
index 0000000000..e1385d6b80
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/HealthInfoDtos.java
@@ -0,0 +1,31 @@
+package org.openecomp.sdcrests.health.types;
+
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class HealthInfoDtos {
+ private List<HealthInfoDto> healthInfos;
+
+ public HealthInfoDtos() {
+ }
+
+ public HealthInfoDtos(List<HealthInfoDto> healthInfos) {
+ this.healthInfos = healthInfos;
+ }
+
+ public List<HealthInfoDto> getHealthInfos() {
+ return healthInfos;
+ }
+
+ public void setHealthInfos(List<HealthInfoDto> healthInfos) {
+ this.healthInfos = healthInfos;
+ }
+
+ @Override
+ public String toString() {
+ return healthInfos.stream().map(healthInfoDto -> healthInfoDto.toString())
+ .collect(Collectors.joining(", "));
+
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/MonitoredModules.java b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/MonitoredModules.java
new file mode 100644
index 0000000000..5ecb37a99b
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/healthcheck-rest-types/src/main/java/org/openecomp/sdcrests/health/types/MonitoredModules.java
@@ -0,0 +1,29 @@
+package org.openecomp.sdcrests.health.types;
+
+
+public enum MonitoredModules {
+ BE("BE"),
+ CAS("Cassandra"),
+ ZU("Zusammen");
+
+ private String name;
+
+ MonitoredModules(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ public static final MonitoredModules toValue(String inVal){
+ for (MonitoredModules val : values()){
+ if (val.toString().equals(inVal)){
+ return val;
+ }
+ }
+ return null;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/pom.xml
new file mode 100644
index 0000000000..1bb3e98bd0
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/healthcheck-rest/pom.xml
@@ -0,0 +1,24 @@
+<?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-rest-webapp</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>healthcheck-rest</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+
+ <modules>
+ <module>healthcheck-rest-types</module>
+ <module>healthcheck-rest-services</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml
index db4b48600e..b45ee838a3 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml
@@ -35,6 +35,11 @@
<artifactId>validation-rest-services</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>healthcheck-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!--dependency>
<groupId>org.openecomp.sdc.onboarding</groupId>
<artifactId>application-config-rest-services</artifactId>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup
new file mode 100644
index 0000000000..983518fd29
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup
@@ -0,0 +1,226 @@
+<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.onboarding</groupId>
+ <artifactId>onboarding-be</artifactId>
+ <name>onboarding-rest-war</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-software-products-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>validation-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>application-config-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency-->
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>application-config-rest-services</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>action-library-rest-services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>${javax.servlet.version}</version>
+ </dependency>
+ <!-- JSON -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-jaxrs</artifactId>
+ <version>${org.codehaus.jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ <version>${org.codehaus.jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlets</artifactId>
+ <version>9.0.6.v20130930</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-application-config-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ <version>${groovy.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <!--dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>commons-compiler</artifactId>
+ <version>3.0.6</version>
+ <scope>compile</scope>
+ </dependency-->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjweaver</artifactId>
+ <version>1.8.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>1.8.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjtools</artifactId>
+ <version>1.8.9</version>
+ </dependency>
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ <systemProperties>
+ <property>
+ <name>buildNumber</name>
+ <value>${buildNumber}</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1.1</version>
+ <configuration>
+ <attachClasses>true</attachClasses>
+ <webResources>
+ <resource>
+ <!-- this is relative to the pom.xml directory -->
+ <directory>${basedir}/target/generated/swagger-ui</directory>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.github.kongchen</groupId>
+ <artifactId>swagger-maven-plugin</artifactId>
+ <version>3.1.0</version>
+ <configuration>
+ <apiSources>
+ <apiSource>
+ <springmvc>false</springmvc>
+ <locations>org.openecomp.sdcrests</locations>
+ <schemes>http</schemes>
+ <basePath>/onboarding-api</basePath>
+ <info>
+ <title>Rest API</title>
+ <version>v1.0, build #${buildNumber}</version>
+ <description>Rest API Documentation</description>
+ <termsOfService>
+ http://www.github.com/kongchen/swagger-maven-plugin
+ </termsOfService>
+ </info>
+ <templatePath>${basedir}/templates/strapdown.html.hbs</templatePath>
+ <outputPath>${basedir}/target/generated/api.html</outputPath>
+ <swaggerDirectory>${basedir}/target/generated/swagger-ui
+ </swaggerDirectory>
+ </apiSource>
+ </apiSources>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ <!--finalName>onboarding-api</finalName-->
+ </build>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/src/main/webapp/WEB-INF/beans-services.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/src/main/webapp/WEB-INF/beans-services.xml
index 609d69f9f8..c83ae4471a 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/src/main/webapp/WEB-INF/beans-services.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/src/main/webapp/WEB-INF/beans-services.xml
@@ -37,7 +37,7 @@
<!-- aspect beans -->
<bean id = "debugAspect" class="org.openecomp.sdc.logging.aspects.DebugAspect"/>
-
+ <bean id = "healthCheck" class="org.openecomp.sdcrests.health.rest.services.HealthCheckImpl"/>
<!--aop:config>
< aspect pointcuts>
<aop:pointcut id="loggingDebugPointcut" expression="execution(* org.openecomp.sdc.*.*.*(..))"/>
@@ -60,20 +60,26 @@
<ref bean="licenseAgreements"/>
<ref bean="featureGroups"/>
<ref bean="entitlementPools"/>
+ <ref bean="entitlementPoolLimits"/>
<ref bean="licenseKeyGroups"/>
+ <ref bean="licenseKeyGroupLimits"/>
<ref bean="vendorSoftwareProducts"/>
<ref bean="networks"/>
<ref bean="components"/>
<ref bean="nics"/>
+ <ref bean="computes"/>
<ref bean="processes"/>
<ref bean="componentProcesses"/>
<ref bean="validation"/>
<ref bean="actions"/>
<ref bean="applicationConfiguration"/>
- <ref bean="componentUploads"/>
+ <ref bean="componentMonitoringUploads"/>
+ <ref bean="deploymentFlavors"/>
+ <ref bean="images"/>
<ref bean="orchestrationTemplateCandidate"/>
<ref bean="componentDependencyModel"/>
<ref bean="activityLog"/>
+ <ref bean="healthCheck"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..aaf3383c42
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup
@@ -0,0 +1,44 @@
+<?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-common-rest</artifactId>
+ <name>openecomp-sdc-common-rest</name>
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>${hibernate.validator.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+ <!-- Swagger -->
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-core</artifactId>
+ <version>${swagger.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
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 af77268599..e8a6c7e7db 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
@@ -22,8 +22,6 @@ package org.openecomp.sdcrests.errors;
import org.codehaus.jackson.map.JsonMappingException;
import org.hibernate.validator.internal.engine.path.PathImpl;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
@@ -34,10 +32,10 @@ import org.openecomp.sdc.common.errors.ErrorCodeAndMessage;
import org.openecomp.sdc.common.errors.GeneralErrorBuilder;
import org.openecomp.sdc.common.errors.JsonMappingErrorBuilder;
import org.openecomp.sdc.common.errors.ValidationErrorBuilder;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
-import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -50,8 +48,8 @@ import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Path;
import javax.ws.rs.core.MediaType;
-import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.ExceptionMapper;
public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
private static final String ERROR_CODES_TO_RESPONSE_STATUS_MAPPING_FILE =
@@ -78,8 +76,8 @@ public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
try {
writeStackTraceToFile(exception);
- } catch (IOException e) {
- e.printStackTrace();
+ } catch (IOException ex) {
+ ex.printStackTrace();
}
List<Object> contentTypes = new ArrayList<>();
contentTypes.add(MediaType.APPLICATION_JSON);
@@ -174,15 +172,14 @@ public class DefaultExceptionMapper implements ExceptionMapper<Exception> {
private void writeStackTraceToFile(Exception exception) throws IOException {
File file = new File("stack_trace.txt");
- OutputStream outputStream = new FileOutputStream(file);
-
- if(!file.exists()){
+ if (!file.exists()) {
file.createNewFile();
}
-
+ OutputStream outputStream = new FileOutputStream(file);
PrintWriter printWriter = new PrintWriter(file);
exception.printStackTrace(printWriter);
printWriter.close();
+ outputStream.close();
}
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml
index 907e68f807..9fe4ff88a1 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml
@@ -23,6 +23,7 @@
<module>/action-library-rest</module>
<module>/application-config-rest</module>
<module>/activity-log-rest</module>
+ <module>/healthcheck-rest</module>
</modules>
</project>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup
new file mode 100644
index 0000000000..cd9b491c08
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup
@@ -0,0 +1,28 @@
+<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-rest-webapp</artifactId>
+ <name>openecomp-sdc-rest-webapp</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <modules>
+ <module>/openecomp-sdc-common-rest</module>
+ <module>/vendor-license-rest</module>
+ <module>/onboarding-rest-war</module>
+ <module>/vendor-software-products-rest</module>
+ <module>/sequence-rest</module>
+ <module>/validation-rest</module>
+ <module>/action-library-rest</module>
+ <module>/application-config-rest</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..313a50ca9d
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup
@@ -0,0 +1,15 @@
+<?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">
+ <parent>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>sequence-rest</artifactId>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..8bacd99f69
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup
@@ -0,0 +1,21 @@
+<?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>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>validation-rest</artifactId>
+ <name>validation-rest</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modules>
+ <module>/validation-rest-services</module>
+ <module>/validation-rest-types</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup
new file mode 100644
index 0000000000..ffc417313a
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup
@@ -0,0 +1,152 @@
+<?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>validation-rest-services</artifactId>
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>validation-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+
+ <!-- Other Stuff-->
+ <!--dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ <scope>runtime</scope>
+ </dependency-->
+
+ <!-- Java Stuff -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ <version>1.19.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>validation-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-multipart</artifactId>
+ <version>1.18.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ <!-- Error codes generator plugin -->
+ <!--plugin>
+ <groupId>org.openecomp.nfv.tools</groupId>
+ <artifactId>error-codes-maven-plugin</artifactId>
+ </plugin-->
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup
new file mode 100644
index 0000000000..5cc8ee7c51
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup
@@ -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>
+
+ <artifactId>validation-rest-types</artifactId>
+ <name>validation-rest-types</name>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>validation-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..ae9c3063bc
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup
@@ -0,0 +1,23 @@
+<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.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <name>vendor-license-rest</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <modules>
+ <module>/vendor-license-rest-services</module>
+ <module>/vendor-license-rest-types</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup
new file mode 100644
index 0000000000..187135e1f4
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup
@@ -0,0 +1,135 @@
+<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>vendor-license-rest-services</artifactId>
+ <name>vendor-license-rest-services</name>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+
+ <properties>
+ <errorcode.dir>${project.build.directory}/generated-sources/error-codes</errorcode.dir>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>vendor-license-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+
+ <!-- Other Stuff-->
+ <!--dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ <scope>runtime</scope>
+ </dependency-->
+
+ <!-- Java Stuff -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ <!-- Error codes generator plugin -->
+ <!--plugin>
+ <groupId>org.openecomp.nfv.tools</groupId>
+ <artifactId>error-codes-maven-plugin</artifactId>
+ </plugin-->
+ </plugins>
+ </build>
+
+
+
+
+</project> \ No newline at end of file
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/EntitlementPoolLimits.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPoolLimits.java
new file mode 100644
index 0000000000..3e7adc845d
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/EntitlementPoolLimits.java
@@ -0,0 +1,103 @@
+package org.openecomp.sdcrests.vendorlicense.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.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.POST;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/versions/{versionId}/entitlement-pools" +
+ "/{entitlementPoolId}/limits")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - Entitlement Pool Limits")
+@Validated
+public interface EntitlementPoolLimits {
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor entitlement pool limits")
+ Response createLimit(@Valid LimitRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam
+ ("versionId")
+ String versionId,
+ @ApiParam(value = "Vendor license model Entitlement Pool Id")
+ @PathParam("entitlementPoolId")
+ String entitlementPoolId ,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor entitlement pool limits",
+ response = LimitRequestDto.class,
+ responseContainer = "List")
+ Response listLimits(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model Entitlement Pool Id") @PathParam("entitlementPoolId")
+ String entitlementPoolId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{limitId}")
+ @ApiOperation(value = "Update vendor entitlement pool limit")
+ Response updateLimit(@Valid LimitRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam
+ ("versionId")
+ String versionId,
+ @ApiParam(value = "Vendor license model Entitlement Pool Id")
+ @PathParam("entitlementPoolId")
+ String entitlementPoolId ,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @PathParam("limitId") String limitId,
+ @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{limitId}")
+ @ApiOperation(value = "Get vendor entitlement pool limit",
+ response = LimitEntityDto.class)
+ Response getLimit(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model Entitlement Pool Id") @PathParam
+ ("entitlementPoolId") String entitlementPoolId,
+ @ApiParam(value = "Vendor license model Entitlement Pool Limit Id") @PathParam("limitId")
+ String limitId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{limitId}")
+ @ApiOperation(value = "Delete vendor entitlement pool limit")
+ Response deleteLimit(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model Entitlement pool Id") @PathParam("entitlementPoolId") String entitlementPoolId,
+ @PathParam("limitId") String limitId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+}
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/LicenseKeyGroupLimits.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroupLimits.java
new file mode 100644
index 0000000000..bfb2d51af0
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/LicenseKeyGroupLimits.java
@@ -0,0 +1,101 @@
+package org.openecomp.sdcrests.vendorlicense.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.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+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.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-license-models/{vlmId}/versions/{versionId}/license-key-groups" +
+ "/{licenseKeyGroupId}/limits")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor License Model - License Key Group Limits")
+@Validated
+public interface LicenseKeyGroupLimits {
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create vendor license key group limit")
+ Response createLimit(@Valid LimitRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam
+ ("versionId")
+ String versionId,
+ @ApiParam(value = "Vendor license model License Key Group Id")
+ @PathParam("licenseKeyGroupId")
+ String licenseKeyGroupId ,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor license key group limits",
+ response = LimitEntityDto.class,
+ responseContainer = "List")
+ Response listLimits(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model License Key Group Id") @PathParam("licenseKeyGroupId")
+ String licenseKeyGroupId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @PUT
+ @Path("/{limitId}")
+ @ApiOperation(value = "Update vendor license key group limit")
+ Response updateLimit(@Valid LimitRequestDto request,
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId")
+ String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam
+ ("versionId")
+ String versionId,
+ @ApiParam(value = "Vendor license model License Key Group Id")
+ @PathParam("licenseKeyGroupId")
+ String licenseKeyGroupId ,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @PathParam("limitId") String limitId,
+ @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{limitId}")
+ @ApiOperation(value = "Get vendor entitlement pool limit",
+ response = LimitEntityDto.class)
+ Response getLimit(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model License Key Group") @PathParam
+ ("licenseKeyGroupId") String entitlementPoolId,
+ @ApiParam(value = "Vendor license model License Key Group Limit Id") @PathParam("limitId")
+ String limitId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @DELETE
+ @Path("/{limitId}")
+ @ApiOperation(value = "Delete vendor license key group limit")
+ Response deleteLimit(
+ @ApiParam(value = "Vendor license model Id") @PathParam("vlmId") String vlmId,
+ @ApiParam(value = "Vendor license model version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor license model license key group Id") @PathParam("licenseKeyGroupId") String licenseKeyGroupId,
+ @PathParam("limitId") String limitId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+}
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/mapping/LimitCreationDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/LimitCreationDto.java
new file mode 100644
index 0000000000..da7852da2c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/LimitCreationDto.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+public class LimitCreationDto {
+ private String limitId;
+
+ public String getLimitId() {
+ return limitId;
+ }
+
+ public void setLimitId(String limitId) {
+ this.limitId = 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/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
index c9f4ab894b..d35c06c30d 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
@@ -47,7 +47,9 @@ public class MapEntitlementPoolEntityToEntitlementPoolEntityDto
.applyMapping(source.getOperationalScope(), MultiChoiceOrOtherDto.class));
target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOtherDto.class));
target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
-
target.setReferencingFeatureGroups(source.getReferencingFeatureGroups());
+
+ target.setStartDate(source.getStartDate());
+ target.setExpiryDate(source.getExpiryDate());
}
}
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/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
index fe626e374c..5442e1af61 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
@@ -45,7 +45,8 @@ public class MapEntitlementPoolRequestDtoToEntitlementPoolEntity
target.setOperationalScope(new MapMultiChoiceOrOtherDtoToMultiChoiceOrOther()
.applyMapping(source.getOperationalScope(), MultiChoiceOrOther.class));
target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOther.class));
-
target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
+ target.setStartDate(source.getStartDate());
+ target.setExpiryDate(source.getExpiryDate());
}
}
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/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java
index 9875a332bd..dedc2a01f0 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupDescriptorDtoToFeatureGroupEntity.java
@@ -31,5 +31,6 @@ public class MapFeatureGroupDescriptorDtoToFeatureGroupEntity
target.setName(source.getName());
target.setDescription(source.getDescription());
target.setPartNumber(source.getPartNumber());
+ target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
}
-}
+} \ No newline at end of file
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/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java
index 70f5666bcb..ce69384f41 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapFeatureGroupEntityToFeatureGroupDescriptorDto.java
@@ -31,5 +31,6 @@ public class MapFeatureGroupEntityToFeatureGroupDescriptorDto
target.setName(source.getName());
target.setDescription(source.getDescription());
target.setPartNumber(source.getPartNumber());
+ target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
}
}
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/mapping/MapLimitEntityToLimitCreationDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitEntityToLimitCreationDto.java
new file mode 100644
index 0000000000..6883f3e48c
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitEntityToLimitCreationDto.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+
+public class MapLimitEntityToLimitCreationDto extends
+ MappingBase<LimitEntity, LimitCreationDto> {
+ @Override
+ public void doMapping(LimitEntity source, LimitCreationDto target) {
+ target.setLimitId(source.getId());
+ }
+}
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/mapping/MapLimitEntityToLimitDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitEntityToLimitDto.java
new file mode 100644
index 0000000000..9678f927b0
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitEntityToLimitDto.java
@@ -0,0 +1,23 @@
+package org.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+
+public class MapLimitEntityToLimitDto extends MappingBase<LimitEntity, LimitEntityDto> {
+
+ @Override
+ public void doMapping(LimitEntity source, LimitEntityDto target) {
+ target.setId(source.getId());
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ target.setMetric(source.getMetric() != null ? source.getMetric().name() : null);
+ target.setAggregationFunction(source.getAggregationFunction() != null ? source
+ .getAggregationFunction().name() : null);
+ target.setTime(source.getTime() != null ? source.getTime().name() : null);
+ target.setType(source.getType() != null ? source.getType().name() : null);
+ target.setUnit(source.getUnit());
+ target.setValue(source.getValue());
+ }
+}
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/mapping/MapLimitRequestDtoToLimitEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitRequestDtoToLimitEntity.java
new file mode 100644
index 0000000000..7f48ece1cf
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLimitRequestDtoToLimitEntity.java
@@ -0,0 +1,75 @@
+package org.openecomp.sdcrests.vendorlicense.rest.mapping;
+
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.vendorlicense.errors.LimitErrorBuilder;
+import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.ImageErrorBuilder;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
+
+
+public class MapLimitRequestDtoToLimitEntity extends MappingBase<LimitRequestDto, LimitEntity> {
+ @Override
+ public void doMapping(LimitRequestDto source, LimitEntity target) {
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ try {
+ LimitType type = LimitType.valueOf(source.getType());
+ target.setType(type);
+ }
+ catch (IllegalArgumentException exception) {
+ throwInvalidValueError("type", VendorLicenseErrorCodes.LIMIT_INVALID_TYPE);
+ }
+
+ try {
+ EntitlementMetric metric = EntitlementMetric.valueOf(source.getMetric());
+ target.setMetric(metric);
+ }
+ catch (IllegalArgumentException exception) {
+ throwInvalidValueError("metric", VendorLicenseErrorCodes.LIMIT_INVALID_METRIC);
+ }
+
+ try {
+ AggregationFunction function = source.getAggregationFunction() != null ?
+ AggregationFunction.valueOf(source.getAggregationFunction()) : null;
+ target.setAggregationFunction(function);
+ }
+ catch (IllegalArgumentException exception) {
+ throwInvalidValueError("aggregationFunction",
+ VendorLicenseErrorCodes.LIMIT_INVALID_AGGREGATIONFUNCTION);
+ }
+
+ try {
+ EntitlementTime time = source.getTime() != null ?
+ EntitlementTime.valueOf(source.getTime()) : null;
+ target.setTime(time);
+ }
+ catch (IllegalArgumentException exception) {
+ throwInvalidValueError("time", VendorLicenseErrorCodes.LIMIT_INVALID_TIME);
+ }
+
+ target.setValue(source.getValue());
+ target.setUnit(source.getUnit());
+
+ }
+
+ private void throwInvalidValueError(String attribute, String vendorLicenseErrorCode) {
+ ErrorCode errorCode = LimitErrorBuilder.getInvalidValueErrorBuilder(attribute,
+ vendorLicenseErrorCode);
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerServiceName.Create_LIMIT.toString(), ErrorLevel.ERROR.name(),
+ errorCode.id(), errorCode.message() );
+ throw new CoreException(errorCode);
+ }
+}
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
new file mode 100644
index 0000000000..3a08822048
--- /dev/null
+++ 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
@@ -0,0 +1,178 @@
+package org.openecomp.sdcrests.vendorlicense.rest.services;
+
+
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.rest.EntitlementPoolLimits;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.LimitCreationDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitCreationDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitRequestDtoToLimitEntity;
+import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("entitlementPoolLimits")
+@Scope(value = "prototype")
+public class EntitlementPoolLimitsImpl implements EntitlementPoolLimits {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ @Override
+ public Response createLimit(LimitRequestDto request,
+ String vlmId,
+ String versionId,
+ String entitlementPoolId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP id", entitlementPoolId);
+
+ MdcUtil.initMdc(LoggerServiceName.Create_LIMIT.toString());
+ vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
+ (versionId), entitlementPoolId), user);
+
+ LimitEntity limitEntity =
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
+ limitEntity.setEpLkgId(entitlementPoolId);
+ limitEntity.setVendorLicenseModelId(vlmId);
+
+ LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity, user);
+ MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
+ LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto
+ .class);
+
+ /*StringWrapperResponse result =
+ createdLimit != null ? new StringWrapperResponse(createdLimit.getId())
+ : null;*/
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP id", entitlementPoolId);
+
+ //return Response.ok(result).build();
+ return Response.ok(createdLimitDto != null ? createdLimitDto : null)
+ .build();
+ }
+
+ @Override
+ public Response listLimits(String vlmId, String versionId, String entitlementPoolId, String
+ 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);
+
+ Collection<LimitEntity> limits =
+ vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), entitlementPoolId, user);
+
+ GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
+ MapLimitEntityToLimitDto outputMapper =
+ new MapLimitEntityToLimitDto();
+ for (LimitEntity limit : limits) {
+ result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP id", entitlementPoolId);
+
+ return Response.ok(result).build();
+ }
+
+ @Override
+ public Response getLimit( String vlmId, String versionId, String entitlementPoolId,
+ String limitId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id, EP id, Limit Id", vlmId, entitlementPoolId,
+ limitId);
+
+ MdcUtil.initMdc(LoggerServiceName.Get_LIMIT.toString());
+
+ vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
+ (versionId), entitlementPoolId), user);
+ LimitEntity epInput = new LimitEntity();
+ epInput.setVendorLicenseModelId(vlmId);
+ epInput.setVersion(Version.valueOf(versionId));
+ epInput.setEpLkgId(entitlementPoolId);
+ epInput.setId(limitId);
+ LimitEntity limit = vendorLicenseManager.getLimit(epInput, user);
+
+ LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
+ new MapLimitEntityToLimitDto()
+ .applyMapping(limit, LimitEntityDto.class);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id, EP id, Limit Id", vlmId, entitlementPoolId,
+ limitId);
+
+ return Response.ok(entitlementPoolEntityDto).build();
+ }
+
+ @Override
+ public Response updateLimit(LimitRequestDto request,
+ String vlmId,
+ String versionId,
+ String entitlementPoolId,
+ String limitId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP id", entitlementPoolId, "limit Id",
+ limitId);
+
+ MdcUtil.initMdc(LoggerServiceName.Update_LIMIT.toString());
+
+ vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
+ (versionId), entitlementPoolId), user);
+
+ LimitEntity limitEntity =
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
+ limitEntity.setEpLkgId(entitlementPoolId);
+ limitEntity.setVendorLicenseModelId(vlmId);
+ limitEntity.setId(limitId);
+
+ vendorLicenseManager.updateLimit(limitEntity, user);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP id", entitlementPoolId, "limit Id",
+ 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
+ */
+ public Response deleteLimit(String vlmId, String versionId, String entitlementPoolId,
+ String limitId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id, Verison Id, EP id, Limit Id", vlmId, versionId, entitlementPoolId, limitId);
+
+ MdcUtil.initMdc(LoggerServiceName.Delete_LIMIT.toString());
+ vendorLicenseManager.getEntitlementPool(new EntitlementPoolEntity(vlmId, Version.valueOf
+ (versionId), entitlementPoolId), user);
+
+ LimitEntity limitInput = new LimitEntity();
+ limitInput.setVendorLicenseModelId(vlmId);
+ limitInput.setEpLkgId(entitlementPoolId);
+ limitInput.setId(limitId);
+ vendorLicenseManager.deleteLimit(limitInput, user);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id, Verison Id, EP id, Limit Id", vlmId, versionId, entitlementPoolId, limitId);
+
+ return Response.ok().build();
+ }
+}
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
new file mode 100644
index 0000000000..aabba71a5c
--- /dev/null
+++ 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
@@ -0,0 +1,179 @@
+package org.openecomp.sdcrests.vendorlicense.rest.services;
+
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
+import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorlicense.rest.LicenseKeyGroupLimits;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.LimitCreationDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitCreationDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitEntityToLimitDto;
+import org.openecomp.sdcrests.vendorlicense.rest.mapping.MapLimitRequestDtoToLimitEntity;
+import org.openecomp.sdcrests.vendorlicense.types.LimitEntityDto;
+import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("licenseKeyGroupLimits")
+@Scope(value = "prototype")
+public class LicenseKeyGroupLimitsImpl implements LicenseKeyGroupLimits {
+
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ @Autowired
+ private VendorLicenseManager vendorLicenseManager;
+
+ @Override
+ public Response createLimit(LimitRequestDto request,
+ String vlmId,
+ String versionId,
+ String licenseKeyGroupId,
+ String user) {
+
+ mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
+
+ MdcUtil.initMdc(LoggerServiceName.Create_LIMIT.toString());
+ vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
+ (versionId), licenseKeyGroupId), user);
+
+ LimitEntity limitEntity =
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
+ limitEntity.setEpLkgId(licenseKeyGroupId);
+ limitEntity.setVendorLicenseModelId(vlmId);
+
+ LimitEntity createdLimit = vendorLicenseManager.createLimit(limitEntity, user);
+ MapLimitEntityToLimitCreationDto mapper = new MapLimitEntityToLimitCreationDto();
+ LimitCreationDto createdLimitDto = mapper.applyMapping(createdLimit, LimitCreationDto
+ .class);
+ /*StringWrapperResponse result =
+ createdLimit != null ? new StringWrapperResponse(createdLimit.getId())
+ : null;*/
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
+
+ //return Response.ok(result).build();
+ return Response.ok(createdLimitDto != null ? createdLimitDto : null)
+ .build();
+ }
+
+ @Override
+ public Response listLimits(String vlmId, String versionId, String licenseKeyGroupId, String
+ 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);
+
+ Collection<LimitEntity> limits =
+ vendorLicenseManager.listLimits(vlmId, Version.valueOf(versionId), licenseKeyGroupId, user);
+
+ GenericCollectionWrapper<LimitEntityDto> result = new GenericCollectionWrapper<>();
+ MapLimitEntityToLimitDto outputMapper =
+ new MapLimitEntityToLimitDto();
+ for (LimitEntity limit : limits) {
+ result.add(outputMapper.applyMapping(limit, LimitEntityDto.class));
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId);
+
+ return Response.ok(result).build();
+ }
+
+ @Override
+ public Response updateLimit(LimitRequestDto request,
+ String vlmId,
+ String versionId,
+ String licenseKeyGroupId,
+ String limitId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id",
+ limitId);
+
+ MdcUtil.initMdc(LoggerServiceName.Update_LIMIT.toString());
+
+ vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
+ (versionId), licenseKeyGroupId), user);
+
+ LimitEntity limitEntity =
+ new MapLimitRequestDtoToLimitEntity()
+ .applyMapping(request, LimitEntity.class);
+ limitEntity.setEpLkgId(licenseKeyGroupId);
+ limitEntity.setVendorLicenseModelId(vlmId);
+ limitEntity.setId(limitId);
+
+ vendorLicenseManager.updateLimit(limitEntity, user);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "LKG id", licenseKeyGroupId, "limit Id",
+ limitId);
+
+ return Response.ok().build();
+ }
+
+ /**
+ * Delete License Key Group.
+ *
+ * @param vlmId the vlm id
+ * @param licenseKeyGroupId the license Key Group id
+ * @param limitId the limitId
+ * @param user the user
+ * @return the response
+ */
+ 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);
+
+ MdcUtil.initMdc(LoggerServiceName.Delete_LIMIT.toString());
+ vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
+ (versionId), licenseKeyGroupId), user);
+
+ LimitEntity limitInput = new LimitEntity();
+ limitInput.setVendorLicenseModelId(vlmId);
+ limitInput.setEpLkgId(licenseKeyGroupId);
+ limitInput.setId(limitId);
+ vendorLicenseManager.deleteLimit(limitInput, user);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id, Verison Id, LKG id, Limit Id", vlmId, versionId,
+ licenseKeyGroupId, limitId);
+
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response getLimit( String vlmId, String versionId, String licenseKeyGroupId,
+ String limitId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId,
+ limitId);
+
+ MdcUtil.initMdc(LoggerServiceName.Get_LIMIT.toString());
+ vendorLicenseManager.getLicenseKeyGroup(new LicenseKeyGroupEntity(vlmId, Version.valueOf
+ (versionId), licenseKeyGroupId), user);
+ LimitEntity epInput = new LimitEntity();
+ epInput.setVendorLicenseModelId(vlmId);
+ epInput.setVersion(Version.valueOf(versionId));
+ epInput.setEpLkgId(licenseKeyGroupId);
+ epInput.setId(limitId);
+ LimitEntity limit = vendorLicenseManager.getLimit(epInput, user);
+
+ LimitEntityDto entitlementPoolEntityDto = limit == null ? null :
+ new MapLimitEntityToLimitDto()
+ .applyMapping(limit, LimitEntityDto.class);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id, LKG id, Limit Id", vlmId, licenseKeyGroupId,
+ limitId);
+
+ return Response.ok(entitlementPoolEntityDto).build();
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d24c315f39
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup
@@ -0,0 +1,29 @@
+<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>vendor-license-rest-types</artifactId>
+ <name>vendor-license-rest-types</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-license-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
index b70504e20e..b49a138a09 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
@@ -21,6 +21,7 @@
package org.openecomp.sdcrests.vendorlicense.types;
import io.swagger.annotations.ApiModel;
+import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
@@ -32,17 +33,18 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@ApiModel(value = "EntitlementPoolRequest")
+//@JsonIgnoreProperties(value = {"manufacturerReferenceNumber"})
public class EntitlementPoolRequestDto {
@NotNull
@Size(max = 120)
private String name;
- @NotNull
+
@Size(max = 1000)
private String description;
- @NotNull
- private int thresholdValue;
- @NotNull
+
+ private Integer thresholdValue;
+
private ThresholdUnit thresholdUnits;
@NotNull
@Valid
@@ -52,7 +54,7 @@ public class EntitlementPoolRequestDto {
@NotNull
@Valid
private ChoiceOrOtherDto<AggregationFunction> aggregationFunction;
- @NotNull
+
@Valid
private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
@NotNull
@@ -62,6 +64,9 @@ public class EntitlementPoolRequestDto {
@Size(max = 100)
private String manufacturerReferenceNumber;
+ private String startDate;
+ private String expiryDate;
+
public String getName() {
return name;
}
@@ -78,11 +83,11 @@ public class EntitlementPoolRequestDto {
this.description = description;
}
- public int getThresholdValue() {
+ public Integer getThresholdValue() {
return thresholdValue;
}
- public void setThresholdValue(int thresholdValue) {
+ public void setThresholdValue(Integer thresholdValue) {
this.thresholdValue = thresholdValue;
}
@@ -141,4 +146,20 @@ public class EntitlementPoolRequestDto {
public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
this.manufacturerReferenceNumber = manufacturerReferenceNumber;
}
+
+ public String getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(String startDate) {
+ this.startDate = startDate;
+ }
+
+ public String getExpiryDate() {
+ return expiryDate;
+ }
+
+ public void setExpiryDate(String expiryDate) {
+ this.expiryDate = expiryDate;
+ }
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
index 5c1f8f2cfc..f2d0d651ef 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
@@ -20,6 +20,8 @@
package org.openecomp.sdcrests.vendorlicense.types;
+import org.hibernate.validator.constraints.NotBlank;
+
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@@ -27,12 +29,16 @@ public class FeatureGroupDescriptorDto {
@NotNull
@Size(max = 120)
private String name;
- @NotNull
+
@Size(max = 1000)
private String description;
@NotNull
private String partNumber;
+ //@NotBlank(message = "is mandatory and should not be empty")
+ @Size(max = 100)
+ private String manufacturerReferenceNumber;
+
public String getName() {
return name;
}
@@ -56,4 +62,12 @@ public class FeatureGroupDescriptorDto {
public void setPartNumber(String partNumber) {
this.partNumber = partNumber;
}
+
+ public String getManufacturerReferenceNumber() {
+ return manufacturerReferenceNumber;
+ }
+
+ public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
+ this.manufacturerReferenceNumber = manufacturerReferenceNumber;
+ }
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java
index acfc130ed1..4239488124 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseAgreementDescriptorDto.java
@@ -31,7 +31,7 @@ public class LicenseAgreementDescriptorDto {
@NotNull
@Size(max = 120)
private String name;
- @NotNull
+
@Size(max = 1000)
private String description;
@NotNull
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
index 0df2e3251f..a9072f5e94 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
@@ -31,12 +31,11 @@ public class LicenseKeyGroupRequestDto {
@NotNull
@Size(max = 120)
private String name;
- @NotNull
@Size(max = 1000)
private String description;
@NotNull
private LicenseKeyType type;
- @NotNull
+
@Valid
private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitEntityDto.java
new file mode 100644
index 0000000000..0cc18949d8
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitEntityDto.java
@@ -0,0 +1,86 @@
+package org.openecomp.sdcrests.vendorlicense.types;
+
+public class LimitEntityDto {
+
+ private String id;
+ private String name;
+ private String type;
+ private String description;
+ private String metric;
+ private Integer value;
+ private Integer unit;
+ private String aggregationFunction;
+ private String time;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getMetric() {
+ return metric;
+ }
+
+ public void setMetric(String metric) {
+ this.metric = metric;
+ }
+
+ public Integer getUnit() {
+ return unit;
+ }
+
+ public void setUnit(Integer unit) {
+ this.unit = unit;
+ }
+
+ public String getAggregationFunction() {
+ return aggregationFunction;
+ }
+
+ public void setAggregationFunction(String aggregationFunction) {
+ this.aggregationFunction = aggregationFunction;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitRequestDto.java
new file mode 100644
index 0000000000..61f30916f8
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LimitRequestDto.java
@@ -0,0 +1,96 @@
+package org.openecomp.sdcrests.vendorlicense.types;
+
+import io.swagger.annotations.ApiModel;
+import org.hibernate.validator.constraints.NotBlank;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@ApiModel(value = "LimitRequest")
+public class LimitRequestDto {
+
+ @NotBlank(message = "is mandatory and should not be empty")
+ @Size(max = 120, message = "length should not exceed 120 characters.")
+ private String name;
+ @NotBlank(message = "is mandatory and should not be empty")
+ private String type;
+ @Size(max = 1000, message = "length should not exceed 1000 characters.")
+ private String description;
+ @NotBlank(message = "is mandatory and should not be empty")
+ private String metric;
+ @NotNull(message = "is mandatory and should not be empty")
+ @Min(value = 1, message = "should be integer and > 0")
+ private Integer value;
+ @Min(value = 1, message = "should be integer and > 0")
+ private Integer unit;
+ private String aggregationFunction;
+ private String time;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getMetric() {
+ return metric;
+ }
+
+ public void setMetric(String metric) {
+ this.metric = metric;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAggregationFunction() {
+ return aggregationFunction;
+ }
+
+ public void setAggregationFunction(
+ String aggregationFunction) {
+ this.aggregationFunction = aggregationFunction;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public Integer getUnit() {
+ return unit;
+ }
+
+ public void setUnit(Integer unit) {
+ this.unit = unit;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+
+}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup
new file mode 100644
index 0000000000..074c8d9e10
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup
@@ -0,0 +1,21 @@
+<?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>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-software-products-rest</artifactId>
+ <name>vendor-software-products-rest</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-rest-webapp</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modules>
+ <module>/vendor-software-products-rest-services</module>
+ <module>/vendor-software-products-rest-types</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup
new file mode 100644
index 0000000000..ba2814613e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup
@@ -0,0 +1,153 @@
+<?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>vendor-software-products-rest-services</artifactId>
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-software-products-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.framework.version}</version>
+ </dependency>
+
+ <!-- CXF -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${cxf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${http.client.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+
+ <!-- Other Stuff-->
+ <!--dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <version>${cglib.nodep.version}</version>
+ <scope>runtime</scope>
+ </dependency-->
+
+ <!-- Java Stuff -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>${ws.rs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ <version>1.19.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-software-products-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey.contribs</groupId>
+ <artifactId>jersey-multipart</artifactId>
+ <version>1.18.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>test/core/unittest/offline/**</include>
+ </includes>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ <!-- Error codes generator plugin -->
+ <!--plugin>
+ <groupId>org.openecomp.nfv.tools</groupId>
+ <artifactId>error-codes-maven-plugin</artifactId>
+ </plugin-->
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
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/ComponentMonitoringForSwaggerFileUpload.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/ComponentMonitoringForSwaggerFileUpload.java
new file mode 100644
index 0000000000..e7e8ba1b50
--- /dev/null
+++ 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/ComponentMonitoringForSwaggerFileUpload.java
@@ -0,0 +1,65 @@
+///*-
+// * ============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.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.springframework.validation.annotation.Validated;
+//
+//import javax.validation.constraints.NotNull;
+//import javax.ws.rs.Consumes;
+//import javax.ws.rs.HeaderParam;
+//import javax.ws.rs.Path;
+//import javax.ws.rs.PathParam;
+//import javax.ws.rs.Produces;
+//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")
+//@Produces(MediaType.APPLICATION_JSON)
+//@Consumes(MediaType.APPLICATION_JSON)
+//@Api(value = "Vendor Software Products")
+//@Validated
+//public interface ComponentMonitoringForSwaggerFileUpload {
+//
+//
+//
+// @Path("/{vspId}/versions/{versionId}/components/{componentId}/uploads/type{type}")
+// @Consumes(MediaType.MULTIPART_FORM_DATA)
+// @ApiOperation(value = "Upload file for component by type")
+// Response upload(@Multipart("upload") Attachment attachment,
+// @ApiParam(value = "Vendor software product Id") @PathParam("vspId")
+// String vspId,
+// @ApiParam(value = "Vendor software product version Id")
+// @PathParam("versionId") String versionId,
+// @ApiParam(value = "Component Id") @PathParam("componentId") String
+// componentId,
+// @ApiParam(value = "Upload Type") @PathParam("type") String type,
+// @NotNull(message = USER_MISSING_ERROR_MSG)
+// @HeaderParam(USER_ID_HEADER_PARAM) String user) throws Exception;
+//
+// }
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/ComponentMonitoringUploads.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/ComponentMonitoringUploads.java
new file mode 100644
index 0000000000..c8c29b668f
--- /dev/null
+++ 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/ComponentMonitoringUploads.java
@@ -0,0 +1,91 @@
+/*-
+ * ============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.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.sdcrests.vendorsoftwareproducts.types.MonitoringUploadStatusDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotNull;
+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.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+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}/uploads/")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor Software Product Component Uploads")
+@Validated
+public interface ComponentMonitoringUploads extends VspEntities {
+ @POST
+ @Path("types/{type}/")
+ @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @ApiOperation(value = "Upload file for component by type")
+ Response upload(@Multipart("upload") Attachment attachment,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId")
+ String vspId,
+ @ApiParam(value = "Vendor software product version Id")
+ @PathParam("versionId") String versionId,
+ @ApiParam(value = "Component Id") @PathParam("componentId") String
+ componentId,
+ @ApiParam(value = "Upload Type") @PathParam("type") String type,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_ID_HEADER_PARAM) String user) throws Exception;
+
+ @DELETE
+ @Path("types/{type}")
+ @ApiOperation(value = "Delete file uploaded for component")
+ Response delete(
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Vendor software product version Id") @PathParam("versionId")
+ String versionId,
+ @ApiParam(value = "Component Id") @PathParam("componentId") String componentId,
+ @ApiParam(value = "Upload Type") @PathParam("type") String type,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user)
+ throws Exception;
+
+ @GET
+ @Path("")
+ @ApiOperation(value = "Get the filenames of uploaded files by type",
+ response = MonitoringUploadStatusDto.class)
+ Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Vendor software product version Id") @PathParam("versionId")
+ String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+}
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/ComponentUploads.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/ComponentUploads.java
index 313ae24e95..9c327f5718 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/ComponentUploads.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/ComponentUploads.java
@@ -1,108 +1,108 @@
-/*-
- * ============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.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.sdcrests.vendorsoftwareproducts.types.MibUploadStatusDto;
-import org.springframework.validation.annotation.Validated;
-
-import javax.validation.constraints.NotNull;
-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.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-@Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/components/{componentId}/monitors")
-@Produces(MediaType.APPLICATION_JSON)
-@Consumes(MediaType.APPLICATION_JSON)
-@Api(value = "Vendor Software Product Component MIB Uploads")
-@Validated
-public interface ComponentUploads extends VspEntities {
- @POST
- @Path("/snmp-trap/upload")
- @Consumes(MediaType.MULTIPART_FORM_DATA)
- @ApiOperation(value = "Upload vendor software product MIB SNMP_TRAP Definitions file")
- Response uploadTrapMibFile(@Multipart("upload") Attachment attachment,
- @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
- @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
- @ApiParam(value = "Component Id") @PathParam("componentId") String
- componentId,
- @NotNull(message = USER_MISSING_ERROR_MSG)
- @HeaderParam(USER_ID_HEADER_PARAM) String user);
-
- @DELETE
- @Path("/snmp-trap")
- @ApiOperation(value = "Delete vendor software product MIB SNMP_TRAP Definitions file")
- Response deleteTrapMibFile(
- @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
- @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
- @ApiParam(value = "Component Id") @PathParam("componentId") String componentId,
- @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
-
- @POST
- @Path("/snmp/upload")
- @Consumes(MediaType.MULTIPART_FORM_DATA)
- @ApiOperation(value = "Upload vendor software product MIB SNMP_POLL Definitions file")
- Response uploadPollMibFile(@Multipart("upload") Attachment attachment,
- @ApiParam(value = "Vendor software product Id") @PathParam("vspId")
- String vspId,
- @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
- @ApiParam(value = "Vendor software product component Id")
- @PathParam("componentId") String componentId,
- @NotNull(message = USER_MISSING_ERROR_MSG)
- @HeaderParam(USER_ID_HEADER_PARAM) String user);
-
- @DELETE
- @Path("/snmp")
- @ApiOperation(value = "Delete vendor software product MIB SNMP_POLL Definitions file")
- Response deletePollMibFile(
- @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
- @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
- @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
- String componentId,
- @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
-
-
- // TODO: 2/27/2017 add version
- @GET
- @Path("/snmp/")
- @ApiOperation(value = "Get the filenames of uploaded MIB definitions",
- response = MibUploadStatusDto.class)
- Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
- @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
- @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
- String componentId,
- @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
- String user);
-}
+///*-
+// * ============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.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.sdcrests.vendorsoftwareproducts.types.MonitoringUploadStatusDto;
+//import org.springframework.validation.annotation.Validated;
+//
+//import javax.validation.constraints.NotNull;
+//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.Path;
+//import javax.ws.rs.PathParam;
+//import javax.ws.rs.Produces;
+//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}/monitors")
+//@Produces(MediaType.APPLICATION_JSON)
+//@Consumes(MediaType.APPLICATION_JSON)
+//@Api(value = "Vendor Software Product Component MIB Uploads")
+//@Validated
+//public interface ComponentUploads extends VspEntities {
+// @POST
+// @Path("/snmp-trap/upload")
+// @Consumes(MediaType.MULTIPART_FORM_DATA)
+// @ApiOperation(value = "Upload vendor software product MIB SNMP_TRAP Definitions file")
+// Response uploadTrapMibFile(@Multipart("upload") Attachment attachment,
+// @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+// @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
+// @ApiParam(value = "Component Id") @PathParam("componentId") String
+// componentId,
+// @NotNull(message = USER_MISSING_ERROR_MSG)
+// @HeaderParam(USER_ID_HEADER_PARAM) String user);
+//
+// @DELETE
+// @Path("/snmp-trap")
+// @ApiOperation(value = "Delete vendor software product MIB SNMP_TRAP Definitions file")
+// Response deleteTrapMibFile(
+// @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+// @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
+// @ApiParam(value = "Component Id") @PathParam("componentId") String componentId,
+// @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+//
+// @POST
+// @Path("/snmp/upload")
+// @Consumes(MediaType.MULTIPART_FORM_DATA)
+// @ApiOperation(value = "Upload vendor software product MIB SNMP_POLL Definitions file")
+// Response uploadPollMibFile(@Multipart("upload") Attachment attachment,
+// @ApiParam(value = "Vendor software product Id") @PathParam("vspId")
+// String vspId,
+// @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
+// @ApiParam(value = "Vendor software product component Id")
+// @PathParam("componentId") String componentId,
+// @NotNull(message = USER_MISSING_ERROR_MSG)
+// @HeaderParam(USER_ID_HEADER_PARAM) String user);
+//
+// @DELETE
+// @Path("/snmp")
+// @ApiOperation(value = "Delete vendor software product MIB SNMP_POLL Definitions file")
+// Response deletePollMibFile(
+// @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+// @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
+// @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+// String componentId,
+// @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+//
+//
+// // TODO: 2/27/2017 add version
+// @GET
+// @Path("/snmp/")
+// @ApiOperation(value = "Get the filenames of uploaded MIB definitions",
+// response = MonitoringUploadStatusDto.class)
+// Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+// @ApiParam(value = "Vendor software product version Id") @PathParam("versionId") String versionId,
+// @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+// String componentId,
+// @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+// String user);
+//}
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/Compute.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/Compute.java
new file mode 100644
index 0000000000..13d9a049c8
--- /dev/null
+++ 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/Compute.java
@@ -0,0 +1,131 @@
+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.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDetailsDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.validation.IsValidJson;
+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.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/components/{componentId" +
+ "}/compute-flavors")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor Software Product Component Compute-flavors")
+@Validated
+public interface Compute extends VspEntities {
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "Get list of vendor software product component compute-flavors",
+ response = ComputeDto.class,
+ responseContainer = "List")
+ Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/{computeFlavorId}")
+ @ApiOperation(value = "Get vendor software product component compute-flavor",
+ response = ComputeDetailsDto.class,
+ responseContainer = "CompositionEntityResponse")
+ Response get(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @ApiParam(value = "Vendor software product compute-flavor Id") @PathParam
+ ("computeFlavorId")
+ String computeId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create a vendor software product component compute-flavor")
+ Response create(@Valid ComputeDetailsDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{computeFlavorId}")
+ @ApiOperation(value = "Update vendor software product component compute-flavor")
+ Response update(@Valid ComputeDetailsDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product compute-flavor Id") @PathParam
+ ("computeFlavorId")
+ String computeFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{computeFlavorId}/questionnaire")
+ @ApiOperation(value = "Update vendor software product component compute-flavor questionnaire")
+ Response updateQuestionnaire(@NotNull @IsValidJson String questionnaireData,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product compute-flavor Id") @PathParam
+ ("computeFlavorId")
+ String computeFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @DELETE
+ @Path("/{computeFlavorId}")
+ @ApiOperation(value = "Delete vendor software product component compute-flavor")
+ Response delete(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product compute-flavor Id") @PathParam
+ ("computeFlavorId")
+ String computeFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/{computeFlavorId}/questionnaire")
+ @ApiOperation(value = "Get vendor software product component compute-flavor questionnaire",
+ response = QuestionnaireResponseDto.class)
+ Response getQuestionnaire(
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @ApiParam(value = "Vendor software product compute-flavor Id") @PathParam
+ ("computeFlavorId") String computeId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+}
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/DeploymentFlavors.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/DeploymentFlavors.java
new file mode 100644
index 0000000000..581b15199c
--- /dev/null
+++ 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/DeploymentFlavors.java
@@ -0,0 +1,88 @@
+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.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorListResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+
+@Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/deployment-flavors")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor Software Product deployment-flavors")
+@Validated
+public interface DeploymentFlavors extends VspEntities {
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create a vendor software product Deployment Flavor")
+ Response create(@Valid DeploymentFlavorRequestDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor software product Deployment Flavor",
+ response = DeploymentFlavorListResponseDto.class,
+ responseContainer = "List")
+ Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/{deploymentFlavorId}")
+ @ApiOperation(value = "Get vendor software product Deployment Flavor",
+ response = DeploymentFlavorDto.class)
+ Response get(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product Deployment Flavor Id") @PathParam
+ ("deploymentFlavorId") String deploymentFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/schema")
+ Response getSchema(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String
+ vspId,
+ @PathParam("versionId") String versionId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @DELETE
+ @Path("/{deploymentFlavorId}")
+ @ApiOperation(value = "Delete vendor software product Deployment Flavor")
+ Response delete(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product Deployment Flavor Id")
+ @PathParam("deploymentFlavorId") String deploymentFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{deploymentFlavorId}")
+ @ApiOperation(value = "Update vendor software product Deployment Flavor")
+ Response update(@Valid DeploymentFlavorRequestDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product Deployment Flavor Id")
+ @PathParam("deploymentFlavorId") String deploymentFlavorId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+}
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/Images.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/Images.java
new file mode 100644
index 0000000000..8939faa13f
--- /dev/null
+++ 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/Images.java
@@ -0,0 +1,159 @@
+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.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageData;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageRequestDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.validation.IsValidJson;
+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.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/components/{componentId}/images")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Api(value = "Vendor Software Product Images")
+@Validated
+public interface Images extends VspEntities {
+
+ @GET
+ @Path("/")
+ @ApiOperation(value = "List vendor software product component images",
+ response = ImageDto.class,
+ responseContainer = "List")
+ Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @POST
+ @Path("/")
+ @ApiOperation(value = "Create a vendor software product component image")
+ Response create(@Valid ImageRequestDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @GET
+ @Path("/schema")
+ //@ApiOperation(value = "Get schema for vendor software product component Image" ,
+ // response = QuestionnaireResponseDto.class)
+ Response getImageSchema(@ApiParam(value = "Vendor software product Id") @PathParam("vspId")
+ String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,@NotNull
+ (message = USER_MISSING_ERROR_MSG) @HeaderParam
+ (USER_ID_HEADER_PARAM) String user);
+
+ /*@GET
+ @Path("/{imageId}")
+ @ApiOperation(value = "Get vendor software product component Image",
+ response = ImageDto.class,
+ responseContainer = "ImageEntityResponse")
+ Response get(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @ApiParam(value = "Vendor software product image Id") @PathParam("imageId")
+ String imageId,
+ @Pattern(regexp = Version.VERSION_REGEX,
+ message = Version.VERSION_STRING_VIOLATION_MSG) @QueryParam("version")
+ String version,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);*/
+
+ @GET
+ @Path("/{imageId}")
+ @ApiOperation(value = "Get vendor software product component Image",
+ response = ImageDto.class,
+ responseContainer = "CompositionEntityResponse")
+ Response get(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @ApiParam(value = "Vendor software product Image Id") @PathParam
+ ("imageId")
+ String imageId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @DELETE
+ @Path("/{imageId}")
+ @ApiOperation(value = "Delete vendor software product Image")
+ Response delete(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product Image Id") @PathParam("imageId")
+ String imageId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{imageId}")
+ @ApiOperation(value = "Update vendor software product Image")
+ Response update(@Valid ImageRequestDto request,
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product Image Id") @PathParam("imageId")
+ String imageId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
+
+ @PUT
+ @Path("/{imageId}/questionnaire")
+ @ApiOperation(value = "Update vendor software product component image questionnaire")
+ Response updateQuestionnaire(@NotNull @IsValidJson String questionnaireData,
+ @ApiParam(value = "Vendor software product Id")
+ @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id")
+ @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id")
+ @PathParam("componentId") String componentId,
+ @ApiParam(value = "Vendor software product image Id")
+ @PathParam ("imageId") String imageId,
+ @NotNull(message = USER_MISSING_ERROR_MSG)
+ @HeaderParam(USER_ID_HEADER_PARAM) String user);
+
+ @GET
+ @Path("/{imageId}/questionnaire")
+ @ApiOperation(value = "Get vendor software product component image questionnaire",
+ response = QuestionnaireResponseDto.class)
+ Response getQuestionnaire(
+ @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
+ @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
+ @ApiParam(value = "Vendor software product component Id") @PathParam("componentId")
+ String componentId,
+ @ApiParam(value = "Vendor software product image Id") @PathParam
+ ("imageId") String imageId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM) String user);
+}
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/VendorSoftwareProducts.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/VendorSoftwareProducts.java
index 53fe2af31d..4366b2c3d1 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/VendorSoftwareProducts.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/VendorSoftwareProducts.java
@@ -23,21 +23,41 @@ package org.openecomp.sdcrests.vsp.rest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.*;
+import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+import org.openecomp.sdc.vendorsoftwareproduct.types.FileDataStructureDto;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.PackageInfoDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto;
+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.validation.IsValidJson;
import org.springframework.validation.annotation.Validated;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
-import javax.ws.rs.*;
+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.core.MediaType;
import javax.ws.rs.core.Response;
-import java.io.File;
-import java.io.IOException;
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")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@@ -183,4 +203,14 @@ public interface VendorSoftwareProducts extends VspEntities {
@NotNull(message = USER_MISSING_ERROR_MSG)
@HeaderParam(USER_ID_HEADER_PARAM) String user);
+ @GET
+ @Path("/{vspId}/versions/{versionId}/compute-flavors")
+ @ApiOperation(value = "Get list of vendor software product compute-flavors",
+ response = VspComputeDto.class,
+ responseContainer = "List")
+ Response listCompute(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String
+ vspId,
+ @PathParam("versionId") String versionId,
+ @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
+ String user);
}
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/MapComponentDataToComponentDto.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/MapComponentDataToComponentDto.java
index b669830bc7..346b39a6b7 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/MapComponentDataToComponentDto.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/MapComponentDataToComponentDto.java
@@ -32,6 +32,9 @@ public class MapComponentDataToComponentDto extends MappingBase<ComponentData, C
source.getDisplayName() == null ? source.getName() : source.getDisplayName());
target.setVfcCode(
source.getVfcCode() == null ? target.getDisplayName() : source.getVfcCode());
+ target.setNfcCode(
+ source.getNfcCode() == null ? source.getDisplayName() : source.getNfcCode());
+ target.setNfcFunction(source.getNfcFunction());
target.setDescription(source.getDescription());
}
}
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/MapComponentEntityToComponentCreationDto.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/MapComponentEntityToComponentCreationDto.java
new file mode 100644
index 0000000000..372a83ac78
--- /dev/null
+++ 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/MapComponentEntityToComponentCreationDto.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentCreationDto;
+
+public class MapComponentEntityToComponentCreationDto extends MappingBase<ComponentEntity,
+ ComponentCreationDto> {
+ @Override
+ public void doMapping(ComponentEntity source, ComponentCreationDto target) {
+ target.setVfcId(source.getId());
+ }
+}
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/MapComponentRequestDtoToComponentEntity.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/MapComponentRequestDtoToComponentEntity.java
index f61ee0d4ab..6649c117e3 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/MapComponentRequestDtoToComponentEntity.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/MapComponentRequestDtoToComponentEntity.java
@@ -33,6 +33,8 @@ public class MapComponentRequestDtoToComponentEntity
component.setName(source.getName());
component.setDisplayName(source.getDisplayName());
component.setVfcCode(source.getVfcCode());
+ component.setNfcCode(source.getNfcCode());
+ component.setNfcFunction(source.getNfcFunction());
component.setDescription(source.getDescription());
target.setComponentCompositionData(component);
}
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/MapComputeDataToComputeDetailsDto.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/MapComputeDataToComputeDetailsDto.java
new file mode 100644
index 0000000000..f0408bb73e
--- /dev/null
+++ 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/MapComputeDataToComputeDetailsDto.java
@@ -0,0 +1,15 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDetailsDto;
+
+public class MapComputeDataToComputeDetailsDto extends MappingBase<ComputeData, ComputeDetailsDto> {
+
+ @Override
+ public void doMapping(ComputeData source, ComputeDetailsDto target) {
+
+ target.setName(source.getName());
+ target.setDescription(source.getDescription());
+ }
+}
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/MapComputeDetailsDtoToComputeEntity.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/MapComputeDetailsDtoToComputeEntity.java
new file mode 100644
index 0000000000..7db9a0a9b1
--- /dev/null
+++ 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/MapComputeDetailsDtoToComputeEntity.java
@@ -0,0 +1,17 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDescription;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDetailsDto;
+
+public class MapComputeDetailsDtoToComputeEntity extends MappingBase<ComputeDetailsDto,
+ ComputeEntity> {
+ @Override
+ public void doMapping(ComputeDetailsDto source, ComputeEntity target) {
+ ComputeDescription computeDesc = new ComputeDescription(source.getName(), source
+ .getDescription());
+ target.setCompositionData(computeDesc == null ? null : JsonUtil.object2Json(computeDesc));
+ }
+}
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/MapComputeEntityToComputeCreationDto.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/MapComputeEntityToComputeCreationDto.java
new file mode 100644
index 0000000000..23f7b52079
--- /dev/null
+++ 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/MapComputeEntityToComputeCreationDto.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeCreationDto;
+
+public class MapComputeEntityToComputeCreationDto extends
+ MappingBase<ComputeEntity, ComputeCreationDto> {
+ @Override
+ public void doMapping(ComputeEntity source, ComputeCreationDto target) {
+ target.setId(source.getId());
+ }
+}
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/MapComputeEntityToComputeDto.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/MapComputeEntityToComputeDto.java
new file mode 100644
index 0000000000..d7586471b5
--- /dev/null
+++ 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/MapComputeEntityToComputeDto.java
@@ -0,0 +1,22 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDescription;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDto;
+
+public class MapComputeEntityToComputeDto extends MappingBase<ListComputeResponse, ComputeDto> {
+ @Override
+ public void doMapping(ListComputeResponse source, ComputeDto target) {
+ target.setId(source.getComputeEntity().getId());
+ if (source.getComputeEntity().getCompositionData() != null) {
+ ComputeDescription desc = JsonUtil.json2Object(source.getComputeEntity().getCompositionData
+ (), ComputeDescription.class);
+ target.setName(desc.getName());
+ target.setDescription(desc.getDescription());
+ target.setAssociatedToDeploymentFlavor(source.isAssociatedWithDeploymentFlavor());
+ }
+ }
+}
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/MapComputeEntityToVspComputeDto.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/MapComputeEntityToVspComputeDto.java
new file mode 100644
index 0000000000..f02bf3778e
--- /dev/null
+++ 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/MapComputeEntityToVspComputeDto.java
@@ -0,0 +1,20 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDescription;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspComputeDto;
+
+public class MapComputeEntityToVspComputeDto extends MappingBase<ComputeEntity, VspComputeDto> {
+ @Override
+ public void doMapping(ComputeEntity source, VspComputeDto target) {
+ target.setComputeFlavorId(source.getId());
+ if (source.getCompositionData() != null) {
+ ComputeDescription desc = JsonUtil.json2Object(source.getCompositionData(), ComputeDescription
+ .class);
+ target.setName(desc.getName());
+ target.setComponentId(source.getComponentId());
+ }
+ }
+} \ No newline at end of file
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/MapDeploymentFlavorEntityDeploymentFlavorToListResponse.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/MapDeploymentFlavorEntityDeploymentFlavorToListResponse.java
new file mode 100644
index 0000000000..edfbccf1da
--- /dev/null
+++ 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/MapDeploymentFlavorEntityDeploymentFlavorToListResponse.java
@@ -0,0 +1,22 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorListResponseDto;
+
+public class MapDeploymentFlavorEntityDeploymentFlavorToListResponse extends
+ MappingBase<DeploymentFlavorEntity, DeploymentFlavorListResponseDto> {
+
+ @Override
+ public void doMapping(DeploymentFlavorEntity source,
+ DeploymentFlavorListResponseDto target) {
+ target.setId(source.getId());
+ DeploymentFlavor deploymentFlavor = source.getDeploymentFlavorCompositionData();
+
+ if (deploymentFlavor != null) {
+ target.setModel(deploymentFlavor.getModel());
+ target.setDescription(deploymentFlavor.getDescription());
+ }
+ }
+}
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/MapDeploymentFlavorEntityToDeploymentFlavorCreationDto.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/MapDeploymentFlavorEntityToDeploymentFlavorCreationDto.java
new file mode 100644
index 0000000000..0ca990c66c
--- /dev/null
+++ 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/MapDeploymentFlavorEntityToDeploymentFlavorCreationDto.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorCreationDto;
+
+
+public class MapDeploymentFlavorEntityToDeploymentFlavorCreationDto extends MappingBase<DeploymentFlavorEntity,
+ DeploymentFlavorCreationDto> {
+
+ @Override
+ public void doMapping(DeploymentFlavorEntity source,
+ DeploymentFlavorCreationDto target) {
+ target.setDeploymentFlavorId(source.getId());
+ }
+}
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/MapDeploymentFlavorEntityToDeploymentFlavorDto.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/MapDeploymentFlavorEntityToDeploymentFlavorDto.java
new file mode 100644
index 0000000000..41795eebe0
--- /dev/null
+++ 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/MapDeploymentFlavorEntityToDeploymentFlavorDto.java
@@ -0,0 +1,19 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorDto;
+
+public class MapDeploymentFlavorEntityToDeploymentFlavorDto extends
+ MappingBase<DeploymentFlavorEntity, DeploymentFlavorDto> {
+ @Override
+ public void doMapping(DeploymentFlavorEntity source, DeploymentFlavorDto target) {
+ target.setId(source.getId());
+ DeploymentFlavor deploymentFlavor = source.getDeploymentFlavorCompositionData();
+ if (deploymentFlavor != null) {
+ //new MapNetworkToNetworkDto().doMapping(deploymentFlavor, target);
+ }
+ }
+}
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/MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity.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/MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity.java
new file mode 100644
index 0000000000..b956313331
--- /dev/null
+++ 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/MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity.java
@@ -0,0 +1,20 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
+
+public class MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity
+ extends MappingBase<DeploymentFlavorRequestDto, DeploymentFlavorEntity> {
+
+ @Override
+ public void doMapping(DeploymentFlavorRequestDto source, DeploymentFlavorEntity target) {
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel(source.getModel());
+ deploymentFlavor.setDescription(source.getDescription());
+ deploymentFlavor.setFeatureGroupId(source.getFeatureGroupId());
+ deploymentFlavor.setComponentComputeAssociations(source.getComponentComputeAssociations());
+ target.setDeploymentFlavorCompositionData(deploymentFlavor);
+ }
+}
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/MapDeploymentFlavorToDeploymentDto.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/MapDeploymentFlavorToDeploymentDto.java
new file mode 100644
index 0000000000..fceeb8f2ca
--- /dev/null
+++ 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/MapDeploymentFlavorToDeploymentDto.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorDto;
+
+
+public class MapDeploymentFlavorToDeploymentDto extends MappingBase<DeploymentFlavor, DeploymentFlavorDto> {
+ @Override
+ public void doMapping(DeploymentFlavor source, DeploymentFlavorDto target) {
+ target.setModel(source.getModel());
+ target.setDescription(source.getDescription());
+ target.setFeatureGroupId(source.getFeatureGroupId());
+ target.setComponentComputeAssociations(source.getComponentComputeAssociations());
+ }
+}
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/MapImageDataToImageDto.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/MapImageDataToImageDto.java
new file mode 100644
index 0000000000..684cd4c31d
--- /dev/null
+++ 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/MapImageDataToImageDto.java
@@ -0,0 +1,22 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageData;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageDto;
+
+
+public class MapImageDataToImageDto extends MappingBase<ImageData, ImageDto> {
+
+ @Override
+ public void doMapping(ImageData source, ImageDto target) {
+ target.setFileName(source.getFileName());
+ target.setDescription(source.getDescription());
+ }
+}
+
+
+
+
+
+
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/MapImageEntityToImageCreationDto.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/MapImageEntityToImageCreationDto.java
new file mode 100644
index 0000000000..5710fbe02e
--- /dev/null
+++ 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/MapImageEntityToImageCreationDto.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentCreationDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageCreationDto;
+
+public class MapImageEntityToImageCreationDto extends MappingBase<ImageEntity,
+ ImageCreationDto> {
+
+ @Override
+ public void doMapping(ImageEntity source, ImageCreationDto target) {
+ target.setId(source.getId());
+ }
+}
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/MapImageEntityToImageDto.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/MapImageEntityToImageDto.java
new file mode 100644
index 0000000000..62d37465e1
--- /dev/null
+++ 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/MapImageEntityToImageDto.java
@@ -0,0 +1,21 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageData;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageDto;
+
+public class MapImageEntityToImageDto extends MappingBase<ImageEntity, ImageDto> {
+ @Override
+ public void doMapping(ImageEntity source, ImageDto target) {
+ target.setId(source.getId());
+ Image image = source.getImageCompositionData();
+
+ if (image != null) {
+ ImageData imageData = new ImageData(image.getFileName(), image.getDescription());
+ new MapImageDataToImageDto().doMapping(imageData, target);
+ }
+ }
+}
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/MapImageRequestDtoToImageEntity.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/MapImageRequestDtoToImageEntity.java
new file mode 100644
index 0000000000..0b8a501f16
--- /dev/null
+++ 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/MapImageRequestDtoToImageEntity.java
@@ -0,0 +1,44 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+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.datatypes.error.ErrorLevel;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.ImageErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageFormat;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageRequestDto;
+
+public class MapImageRequestDtoToImageEntity extends MappingBase<ImageRequestDto, ImageEntity> {
+
+ @Override
+ public void doMapping(ImageRequestDto source, ImageEntity target) {
+ Image image = new Image();
+ image.setFileName(source.getFileName());
+ image.setDescription(source.getDescription());
+ /*try {
+ if (source.getFormat() != null) {
+ final ImageFormat imageFormat = ImageFormat.valueOf(source.getFormat());
+ image.setFormat(source.getFormat());
+ }
+ } catch (IllegalArgumentException exception) {
+ ErrorCode errorCode = ImageErrorBuilder.getInvalidImageFormatErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_IMAGE, ErrorLevel.ERROR.name(),
+ errorCode.id(), errorCode.message() );
+ throw new CoreException(errorCode);
+ }
+ image.setMd5(source.getMd5());
+ image.setVersion(source.getVersion());
+ //image.setProvidedBy(source.getProvidedBy());*/
+ target.setImageCompositionData(image);
+ }
+
+}
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/MapMibUploadStatusToDto.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/MapMonitoringUploadStatusToDto.java
index d69e078ac1..08d322dad0 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/MapMibUploadStatusToDto.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/MapMonitoringUploadStatusToDto.java
@@ -20,14 +20,16 @@
package org.openecomp.sdcrests.vsp.rest.mapping;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
import org.openecomp.sdcrests.mapping.MappingBase;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.MibUploadStatusDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.MonitoringUploadStatusDto;
-public class MapMibUploadStatusToDto extends MappingBase<MibUploadStatus, MibUploadStatusDto> {
+public class MapMonitoringUploadStatusToDto
+ extends MappingBase<MonitoringUploadStatus, MonitoringUploadStatusDto> {
@Override
- public void doMapping(MibUploadStatus source, MibUploadStatusDto target) {
+ public void doMapping(MonitoringUploadStatus source, MonitoringUploadStatusDto target) {
target.setSnmpPoll(source.getSnmpPoll());
target.setSnmpTrap(source.getSnmpTrap());
+ target.setVesEvent(source.getVesEvent());
}
}
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/MapNicEntityToNicCreationResponseDto.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/MapNicEntityToNicCreationResponseDto.java
new file mode 100644
index 0000000000..23bf5d5357
--- /dev/null
+++ 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/MapNicEntityToNicCreationResponseDto.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdcrests.vsp.rest.mapping;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicCreationResponseDto;
+
+public class MapNicEntityToNicCreationResponseDto extends MappingBase<NicEntity,
+ NicCreationResponseDto> {
+
+
+ @Override
+ public void doMapping(NicEntity source, NicCreationResponseDto target) {
+ target.setNicId(source.getId());
+ }
+}
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/MapNicRequestDtoToNicEntity.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/MapNicRequestDtoToNicEntity.java
index 4744364ea6..7fd0253556 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/MapNicRequestDtoToNicEntity.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/MapNicRequestDtoToNicEntity.java
@@ -21,6 +21,7 @@
package org.openecomp.sdcrests.vsp.rest.mapping;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdcrests.mapping.MappingBase;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicRequestDto;
@@ -32,6 +33,8 @@ public class MapNicRequestDtoToNicEntity extends MappingBase<NicRequestDto, NicE
nic.setName(source.getName());
nic.setDescription(source.getDescription());
nic.setNetworkId(source.getNetworkId());
+ nic.setNetworkType(NetworkType.valueOf(source.getNetworkType()));
+ nic.setNetworkDescription(source.getNetworkDescription());
target.setNicCompositionData(nic);
}
}
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/MapNicToNicDto.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/MapNicToNicDto.java
index 2fcfd36b3f..8c48f18b3d 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/MapNicToNicDto.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/MapNicToNicDto.java
@@ -31,5 +31,9 @@ public class MapNicToNicDto extends MappingBase<Nic, NicDto> {
target.setDescription(source.getDescription());
target.setNetworkId(source.getNetworkId());
target.setNetworkName(source.getNetworkName());
+ if (source.getNetworkType() != null) {
+ target.setNetworkType(source.getNetworkType().name());
+ }
+ target.setNetworkDescription(source.getNetworkDescription());
}
}
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 e6346c452d..89d210f372 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,6 +24,8 @@ 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;
@@ -32,15 +34,17 @@ import org.openecomp.sdcrests.common.mapping.MapErrorMessageToDto;
import org.openecomp.sdcrests.common.types.ErrorCodeDto;
import org.openecomp.sdcrests.common.types.ErrorMessageDto;
import org.openecomp.sdcrests.mapping.MappingBase;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentValidationResultDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorValidationResultDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireValidationResultDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ValidationResponseDto;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -57,7 +61,8 @@ public class MapValidationResponseToDto
private static QuestionnaireValidationResultDto mapQuestionnaireValidationResult(
QuestionnaireValidationResult questionnaireValidationResult) {
- if (questionnaireValidationResult == null) {
+ if (Objects.isNull(questionnaireValidationResult)
+ || Objects.isNull(questionnaireValidationResult.getValidationData())) {
return null;
}
QuestionnaireValidationResultDto questionnaireValidationResultDto =
@@ -74,6 +79,44 @@ public class MapValidationResponseToDto
return questionnaireValidationResultDto;
}
+ private static ComponentValidationResultDto mapcomponentValidationResult(
+ ComponentValidationResult componentValidationResult) {
+ if (componentValidationResult == null) {
+ return null;
+ }
+ ComponentValidationResultDto componentValidationResultDto =
+ new ComponentValidationResultDto();
+ componentValidationResultDto.setValid(componentValidationResult.isValid());
+
+ Set<CompositionEntityValidationDataDto> validationDataDto = new HashSet<>();
+ for(CompositionEntityValidationData validationData : componentValidationResult.getValidationData()){
+ validationDataDto.add(new MapCompositionEntityValidationDataToDto().applyMapping
+ (validationData, CompositionEntityValidationDataDto.class));
+ }
+
+ componentValidationResultDto.setValidationData(validationDataDto);
+ return componentValidationResultDto;
+ }
+
+ private static DeploymentFlavorValidationResultDto mapdeploymentFlavorValidationResult(
+ DeploymentFlavorValidationResult deploymentFlavorValidationResult) {
+ if (deploymentFlavorValidationResult == null) {
+ return null;
+ }
+ DeploymentFlavorValidationResultDto deploymentFlavorValidationResultDto =
+ new DeploymentFlavorValidationResultDto();
+ deploymentFlavorValidationResultDto.setValid(deploymentFlavorValidationResult.isValid());
+
+ Set<CompositionEntityValidationDataDto> validationDataDto = new HashSet<>();
+ for(CompositionEntityValidationData validationData : deploymentFlavorValidationResult.getValidationData()){
+ validationDataDto.add(new MapCompositionEntityValidationDataToDto().applyMapping
+ (validationData, CompositionEntityValidationDataDto.class));
+ }
+
+ deploymentFlavorValidationResultDto.setValidationData(validationDataDto);
+ return deploymentFlavorValidationResultDto;
+ }
+
private static List<ErrorMessageDto> mapErrorMessages(List<ErrorMessage> errorMessages) {
return errorMessages == null ? null : errorMessages.stream().map(
errorMessage -> new MapErrorMessageToDto()
@@ -94,5 +137,7 @@ public class MapValidationResponseToDto
target.setUploadDataErrors(mapUploadDataErrors(source.getUploadDataErrors()));
target.setQuestionnaireValidationResult(
mapQuestionnaireValidationResult(source.getQuestionnaireValidationResult()));
+ target.setComponentValidationResult(mapcomponentValidationResult(source.getComponentValidationResult()));
+ target.setDeploymentFlavorValidationResult(mapdeploymentFlavorValidationResult(source.getDeploymentFlavorValidationResult()));
}
}
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 6eca00e8aa..9093da599f 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
@@ -7,9 +7,9 @@
* 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.
@@ -73,5 +73,9 @@ public class MapVersionedVendorSoftwareProductInfoToVspDetailsDto
.map(version -> new VersionDto(version.toString(), version.toString()))
.collect(Collectors.toList()));
}
+
+ //Onboarding Method valid value will always be present in VSP saved in DB
+ target.setOnboardingMethod(vsp.getOnboardingMethod());
+
}
}
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 ec0843263a..9808bbb2b6 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
@@ -38,6 +38,7 @@ public class MapVspDescriptionDtoToVspDetails extends MappingBase<VspDescription
target.setIcon(source.getIcon());
target.setVendorName(source.getVendorName());
target.setVendorId(source.getVendorId());
+ target.setOnboardingMethod(source.getOnboardingMethod());
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/mapping/MspVspDetailsToVspCreationDto.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/MapVspDetailsToVspCreationDto.java
index 5480dc13d5..f009d8bbc6 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/MspVspDetailsToVspCreationDto.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/MapVspDetailsToVspCreationDto.java
@@ -24,10 +24,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdcrests.mapping.MappingBase;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspCreationDto;
-/**
- * Created by TALIO on 5/15/2016.
- */
-public class MspVspDetailsToVspCreationDto extends MappingBase<VspDetails, VspCreationDto> {
+public class MapVspDetailsToVspCreationDto extends MappingBase<VspDetails, VspCreationDto> {
@Override
public void doMapping(VspDetails source, VspCreationDto target) {
target.setVspId(source.getId());
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/ComponentMonitoringUploadsImpl.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/ComponentMonitoringUploadsImpl.java
new file mode 100644
index 0000000000..a971782a15
--- /dev/null
+++ 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/ComponentMonitoringUploadsImpl.java
@@ -0,0 +1,117 @@
+package org.openecomp.sdcrests.vsp.rest.services;
+
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
+import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.messages.AuditMessages;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
+import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.MonitoringUploadStatusDto;
+import org.openecomp.sdcrests.vsp.rest.ComponentMonitoringUploads;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapMonitoringUploadStatusToDto;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+import java.io.InputStream;
+
+/**
+ * @author katyr
+ * @since June 26, 2017
+ */
+
+@Named
+@Service("componentMonitoringUploads")
+@Scope(value = "prototype")
+//@Validated
+public class ComponentMonitoringUploadsImpl implements ComponentMonitoringUploads {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private MonitoringUploadsManager
+ monitoringUploadsManager = MonitoringUploadsManagerFactory.getInstance().createInterface();
+ private ComponentManager componentManager =
+ ComponentManagerFactory.getInstance().createInterface();
+ private static final Logger logger =
+ LoggerFactory.getLogger(ComponentMonitoringUploadsImpl.class);
+
+ @Override
+ public Response upload(Attachment attachment,
+ String vspId, String versionId, String componentId, String type,
+ String user) throws Exception {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+ MdcUtil.initMdc(LoggerServiceName.Upload_Monitoring_Artifact.toString());
+ logger.audit(AuditMessages.AUDIT_MSG + String.format(AuditMessages
+ .UPLOAD_MONITORING_FILE, type, vspId, componentId));
+
+ Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, version, componentId, user);
+
+ MonitoringUploadType monitoringUploadType = getMonitoringUploadType(vspId, componentId, type);
+ monitoringUploadsManager.upload(attachment.getObject(InputStream.class),
+ attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
+ monitoringUploadType, user);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+ return Response.ok().build();
+ }
+
+ private MonitoringUploadType getMonitoringUploadType(String vspId, String componentId,
+ String type) throws Exception {
+ MonitoringUploadType monitoringUploadType;
+ try {
+ monitoringUploadType = MonitoringUploadType.valueOf(type);
+ } catch (IllegalArgumentException exception) {
+ String errorWithParameters = ErrorMessagesFormatBuilder
+ .getErrorWithParameters(Messages.ILLEGAL_MONITORING_ARTIFACT_TYPE.getErrorMessage(),
+ componentId, vspId);
+ throw new Exception(errorWithParameters, exception);
+ }
+ return monitoringUploadType;
+ }
+
+ @Override
+ public Response delete(String vspId, String versionId, String componentId,
+ String type, String user) throws Exception {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+ MdcUtil.initMdc(LoggerServiceName.Delete_Monitoring_Artifact.toString());
+
+ MonitoringUploadType monitoringUploadType = getMonitoringUploadType(vspId, componentId, type);
+
+ Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, version, componentId, user);
+ monitoringUploadsManager
+ .delete(vspId, version, componentId, monitoringUploadType, user);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response list(String vspId, String versionId, String componentId,
+ String user) {
+ MdcUtil.initMdc(LoggerServiceName.List_Monitoring_Artifacts.toString());
+
+ Version version = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, version, componentId, user);
+
+ MonitoringUploadStatus response = monitoringUploadsManager
+ .listFilenames(vspId, version, componentId, user);
+
+ MonitoringUploadStatusDto returnEntity =
+ new MapMonitoringUploadStatusToDto()
+ .applyMapping(response, MonitoringUploadStatusDto.class);
+ return Response.status(Response.Status.OK).entity(returnEntity).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/ComponentUploadsImpl.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/ComponentUploadsImpl.java
index 7a2a1578b6..f88508250a 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/ComponentUploadsImpl.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/ComponentUploadsImpl.java
@@ -1,137 +1,142 @@
-/*-
- * ============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.sdcrests.vsp.rest.services;
-
-import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.logging.context.MdcUtil;
-import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-import org.openecomp.sdc.logging.messages.AuditMessages;
-import org.openecomp.sdc.logging.types.LoggerServiceName;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManager;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.types.VersionableEntityAction;
-import org.openecomp.sdcrests.vendorsoftwareproducts.types.MibUploadStatusDto;
-import org.openecomp.sdcrests.vsp.rest.ComponentUploads;
-import org.openecomp.sdcrests.vsp.rest.mapping.MapMibUploadStatusToDto;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
-import java.io.InputStream;
-
-@Named
-@Service("componentUploads")
-@Scope(value = "prototype")
-@Validated
-public class ComponentUploadsImpl implements ComponentUploads {
- private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
- private MibManager mibManager = MibManagerFactory.getInstance().createInterface();
- private ComponentManager componentManager =
- ComponentManagerFactory.getInstance().createInterface();
- private static final Logger logger =
- LoggerFactory.getLogger(ComponentUploadsImpl.class);
-
- @Override
- public Response uploadTrapMibFile(Attachment attachment, String vspId, String versionId, String componentId,
- String user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
- MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString());
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_TRAP + vspId);
-
- Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
- componentManager.validateComponentExistence(vspId, version, componentId, user);
- mibManager.upload(attachment.getObject(InputStream.class),
- attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
- ArtifactType.SNMP_TRAP, user);
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
- return Response.ok().build();
- }
-
- @Override
- public Response deleteTrapMibFile(String vspId, String versionId, String componentId, String user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
- MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString());
-
- Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
- componentManager.validateComponentExistence(vspId, version, componentId, user);
- mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_TRAP, user);
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
- return Response.ok().build();
- }
-
- @Override
- public Response uploadPollMibFile(Attachment attachment, String vspId, String versionId, String componentId,
- String user) {
-
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_POLL + vspId);
- MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString());
-
- Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
- componentManager.validateComponentExistence(vspId, version, componentId, user);
- mibManager.upload(attachment.getObject(InputStream.class),
- attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
- ArtifactType.SNMP_POLL, user);
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
- return Response.ok().build();
- }
-
- @Override
- public Response deletePollMibFile(String vspId, String versionId, String componentId, String
- user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
- MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString());
-
- Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
- componentManager.validateComponentExistence(vspId, version, componentId, user);
- mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_POLL, user);
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
- return Response.ok().build();
- }
-
- @Override
- public Response list(String vspId, String versionId, String componentId, String user) {
- MdcUtil.initMdc(LoggerServiceName.List_MIB_Files.toString());
-
- Version version = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
- componentManager.validateComponentExistence(vspId, version, componentId, user);
-
- MibUploadStatus response = mibManager.listFilenames(vspId, version, componentId, user);
-
- MibUploadStatusDto returnEntity =
- new MapMibUploadStatusToDto().applyMapping(response, MibUploadStatusDto.class);
- return Response.status(Response.Status.OK).entity(returnEntity).build();
-
- }
-}
+///*-
+// * ============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.sdcrests.vsp.rest.services;
+//
+//import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+//import org.openecomp.core.enrichment.types.MonitoringUploadType;
+//import org.openecomp.sdc.logging.api.Logger;
+//import org.openecomp.sdc.logging.api.LoggerFactory;
+//import org.openecomp.sdc.logging.context.MdcUtil;
+//import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+//import org.openecomp.sdc.logging.messages.AuditMessages;
+//import org.openecomp.sdc.logging.types.LoggerServiceName;
+//import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
+//import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
+//import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
+//import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManagerFactory;
+//import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
+//import org.openecomp.sdc.versioning.dao.types.Version;
+//import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+//import org.openecomp.sdcrests.vendorsoftwareproducts.types.MonitoringUploadStatusDto;
+//import org.openecomp.sdcrests.vsp.rest.ComponentUploads;
+//import org.openecomp.sdcrests.vsp.rest.mapping.MapMonitoringUploadStatusToDto;
+//import org.springframework.context.annotation.Scope;
+//import org.springframework.stereotype.Service;
+//import org.springframework.validation.annotation.Validated;
+//
+//import javax.inject.Named;
+//import javax.ws.rs.core.Response;
+//import java.io.InputStream;
+//
+//@Named
+//@Service("componentUploads")
+//@Scope(value = "prototype")
+//@Validated
+//public class ComponentUploadsImpl implements ComponentUploads {
+// private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+// private MonitoringUploadsManager
+// monitoringUploadsManager = MonitoringUploadsManagerFactory.getInstance().createInterface();
+// private ComponentManager componentManager =
+// ComponentManagerFactory.getInstance().createInterface();
+// private static final Logger logger =
+// LoggerFactory.getLogger(ComponentUploadsImpl.class);
+//
+// @Override
+// public Response uploadTrapMibFile(Attachment attachment, String vspId, String versionId, String componentId,
+// String user) {
+// mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+// MdcUtil.initMdc(LoggerServiceName.Upload_Monitoring_Artifact.toString());
+// logger.audit(AuditMessages.AUDIT_MSG + String.format(AuditMessages.UPLOAD_MONITORING_FILE ,
+// vspId,componentId));
+//
+// Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+// componentManager.validateComponentExistence(vspId, version, componentId, user);
+// monitoringUploadsManager.upload(attachment.getObject(InputStream.class),
+// attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
+// MonitoringUploadType.SNMP_TRAP, user);
+//
+// mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+// return Response.ok().build();
+// }
+//
+// @Override
+// public Response deleteTrapMibFile(String vspId, String versionId, String componentId, String user) {
+// mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+// MdcUtil.initMdc(LoggerServiceName.Delete_Monitoring_Artifact.toString());
+//
+// Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+// componentManager.validateComponentExistence(vspId, version, componentId, user);
+// monitoringUploadsManager
+// .delete(vspId, version, componentId, MonitoringUploadType.SNMP_TRAP, user);
+//
+// mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+// return Response.ok().build();
+// }
+//
+// @Override
+// public Response uploadPollMibFile(Attachment attachment, String vspId, String versionId, String componentId,
+// String user) {
+//
+// mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+// logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_MONITORING_FILE + vspId);
+// MdcUtil.initMdc(LoggerServiceName.Upload_Monitoring_Artifact.toString());
+//
+// Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+// componentManager.validateComponentExistence(vspId, version, componentId, user);
+// monitoringUploadsManager.upload(attachment.getObject(InputStream.class),
+// attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
+// MonitoringUploadType.SNMP_POLL, user);
+//
+// mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+// return Response.ok().build();
+// }
+//
+// @Override
+// public Response deletePollMibFile(String vspId, String versionId, String componentId, String
+// user) {
+// mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
+// MdcUtil.initMdc(LoggerServiceName.Delete_Monitoring_Artifact.toString());
+//
+// Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+// componentManager.validateComponentExistence(vspId, version, componentId, user);
+// monitoringUploadsManager
+// .delete(vspId, version, componentId, MonitoringUploadType.SNMP_POLL, user);
+//
+// mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
+// return Response.ok().build();
+// }
+//
+// @Override
+// public Response list(String vspId, String versionId, String componentId, String user) {
+// MdcUtil.initMdc(LoggerServiceName.List_Monitoring_Artifacts.toString());
+//
+// Version version = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+// componentManager.validateComponentExistence(vspId, version, componentId, user);
+//
+// MonitoringUploadStatus response = monitoringUploadsManager
+// .listFilenames(vspId, version, componentId, user);
+//
+// MonitoringUploadStatusDto returnEntity =
+// new MapMonitoringUploadStatusToDto().applyMapping(response, MonitoringUploadStatusDto.class);
+// return Response.status(Response.Status.OK).entity(returnEntity).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/ComponentsImpl.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/ComponentsImpl.java
index a36534ae4f..51955b7b69 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/ComponentsImpl.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/ComponentsImpl.java
@@ -7,9 +7,9 @@
* 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.
@@ -32,6 +32,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentCreationDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentRequestDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
@@ -39,6 +40,7 @@ import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityVali
import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
import org.openecomp.sdcrests.vsp.rest.Components;
import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDataToComponentDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentEntityToComponentCreationDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentEntityToComponentDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentRequestDtoToComponentEntity;
import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
@@ -93,8 +95,12 @@ public class ComponentsImpl implements Components {
component.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
ComponentEntity createdComponent = componentManager.createComponent(component, user);
+ MapComponentEntityToComponentCreationDto mapping =
+ new MapComponentEntityToComponentCreationDto();
+ ComponentCreationDto createdComponentDto = mapping.applyMapping(createdComponent,
+ ComponentCreationDto.class);
return Response
- .ok(createdComponent != null ? new StringWrapperResponse(createdComponent.getId()) : null)
+ .ok(createdComponent != null ? createdComponentDto : null)
.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/ComputeImpl.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/ComputeImpl.java
new file mode 100644
index 0000000000..ec445af0e8
--- /dev/null
+++ 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/ComputeImpl.java
@@ -0,0 +1,162 @@
+package org.openecomp.sdcrests.vsp.rest.services;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeCreationDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDetailsDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComputeDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
+import org.openecomp.sdcrests.vsp.rest.Compute;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeDataToComputeDetailsDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeDetailsDtoToComputeEntity;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeEntityToComputeCreationDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeEntityToComputeDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("computes")
+@Scope(value = "prototype")
+public class ComputeImpl implements Compute {
+ private ComputeManager computetManager =
+ ComputeManagerFactory.getInstance().createInterface();
+ private ComponentManager componentManager =
+ ComponentManagerFactory.getInstance().createInterface();
+
+ @Override
+ public Response list(String vspId, String version, String componentId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.List_Computes.toString());
+ Version vspVersion = resolveVspVersion(vspId, version, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ Collection<ListComputeResponse> computes =
+ computetManager
+ .listCompute(vspId, vspVersion, componentId, user);
+
+ MapComputeEntityToComputeDto mapper = new MapComputeEntityToComputeDto();
+ GenericCollectionWrapper<ComputeDto> results = new GenericCollectionWrapper<>();
+ for (ListComputeResponse compute : computes) {
+ results.add(mapper.applyMapping(compute, ComputeDto.class));
+ }
+
+ return Response.ok(results).build();
+ }
+
+ @Override
+ public Response get(String vspId, String version, String componentId, String computeId,
+ String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_Compute.toString());
+ Version vspVersion = resolveVspVersion(vspId, version, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ CompositionEntityResponse<ComputeData> response = computetManager
+ .getCompute(vspId, vspVersion, componentId, computeId, user);
+
+ CompositionEntityResponseDto<ComputeDetailsDto> responseDto = new
+ CompositionEntityResponseDto<>();
+ new MapCompositionEntityResponseToDto<>(new MapComputeDataToComputeDetailsDto(),
+ ComputeDetailsDto.class).doMapping(response, responseDto);
+ return Response.ok(responseDto).build();
+ }
+
+ @Override
+ public Response create(ComputeDetailsDto request, String vspId, String versionId,
+ String componentId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Create_Compute.toString());
+ ComputeEntity compute = new MapComputeDetailsDtoToComputeEntity().applyMapping(request,
+ ComputeEntity.class);
+ compute.setVspId(vspId);
+ compute.setComponentId(componentId);
+ compute.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
+ componentManager.validateComponentExistence(vspId, compute.getVersion(), componentId, user);
+
+ ComputeEntity createdCompute = computetManager.createCompute(compute, user);
+
+ MapComputeEntityToComputeCreationDto mapper = new MapComputeEntityToComputeCreationDto();
+ ComputeCreationDto createdComputeDto = mapper.applyMapping(createdCompute, ComputeCreationDto
+ .class);
+ return Response.ok(createdComputeDto != null ? createdComputeDto : null)
+ .build();
+ }
+
+ @Override
+ public Response update(ComputeDetailsDto request, String vspId, String versionId, String
+ componentId, String computeFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Update_Compute.toString());
+ ComputeEntity compute = new MapComputeDetailsDtoToComputeEntity().applyMapping(request,
+ ComputeEntity.class);
+ compute.setVspId(vspId);
+ compute.setComponentId(componentId);
+ compute.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
+ compute.setId(computeFlavorId);
+
+ componentManager.validateComponentExistence(vspId, compute.getVersion(), componentId, user);
+ CompositionEntityValidationData validationData =
+ computetManager.updateCompute(compute, user);
+ return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
+ ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
+ new MapCompositionEntityValidationDataToDto().applyMapping(validationData,
+ CompositionEntityValidationDataDto.class)).build() : Response.ok().build();
+ }
+
+ @Override
+ public Response delete(String vspId, String versionId, String componentId, String
+ computeFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Delete_Compute.toString());
+ Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, version, componentId, user);
+ computetManager.deleteCompute(vspId, version, componentId, computeFlavorId, user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response getQuestionnaire(String vspId, String versionId, String componentId, String
+ computeFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_Questionnaire_Compute.toString());
+ Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ QuestionnaireResponse questionnaireResponse = computetManager
+ .getComputeQuestionnaire(vspId, vspVersion, componentId, computeFlavorId, user);
+
+ QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto()
+ .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class);
+ return Response.ok(result).build();
+ }
+
+ @Override
+ public Response updateQuestionnaire(String questionnaireData, String vspId, String versionId,
+ String componentId,
+ String computeFlavorId, String user) {
+ MdcUtil
+ .initMdc(LoggerServiceName.Update_Questionnaire_Compute.toString()
+ );
+ Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, version, componentId, user);
+ computetManager
+ .updateComputeQuestionnaire(vspId, version, componentId, computeFlavorId,
+ questionnaireData, user);
+ return Response.ok().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/DeploymentFlavorsImpl.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/DeploymentFlavorsImpl.java
new file mode 100644
index 0000000000..adcdacaa88
--- /dev/null
+++ 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/DeploymentFlavorsImpl.java
@@ -0,0 +1,129 @@
+package org.openecomp.sdcrests.vsp.rest.services;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorCreationDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorListResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
+import org.openecomp.sdcrests.vsp.rest.DeploymentFlavors;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorEntityDeploymentFlavorToListResponse;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorEntityToDeploymentFlavorCreationDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorToDeploymentDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.ws.rs.core.Response;
+
+@Named
+@Service("deploymentFlavors")
+@Scope(value = "prototype")
+public class DeploymentFlavorsImpl implements DeploymentFlavors
+{
+ private DeploymentFlavorManager deploymentFlavorManager =
+ DeploymentFlavorManagerFactory.getInstance().createInterface();
+
+ @Override
+ public Response create(DeploymentFlavorRequestDto request, String vspId, String versionId,
+ String user) {
+ MdcUtil.initMdc(LoggerServiceName.Create_Deployment_Flavor.toString());
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity()
+ .applyMapping(request, DeploymentFlavorEntity.class);
+ deploymentFlavorEntity.setVspId(vspId);
+ deploymentFlavorEntity.setVersion(resolveVspVersion(vspId, null, user,
+ VersionableEntityAction.Write));
+ DeploymentFlavorEntity createdDeploymentFlavor =
+ deploymentFlavorManager.createDeploymentFlavor(deploymentFlavorEntity, user);
+ MapDeploymentFlavorEntityToDeploymentFlavorCreationDto mapping =
+ new MapDeploymentFlavorEntityToDeploymentFlavorCreationDto();
+ DeploymentFlavorCreationDto deploymentFlavorCreatedDto= mapping.applyMapping
+ (createdDeploymentFlavor,DeploymentFlavorCreationDto.class);
+ return Response
+ .ok(createdDeploymentFlavor != null ? deploymentFlavorCreatedDto : null)
+ .build();
+ }
+
+ @Override
+ public Response list(String vspId,String version,String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_List_Deployment_flavor.toString());
+ Collection<DeploymentFlavorEntity> deploymentFlavors =
+ deploymentFlavorManager.listDeploymentFlavors(vspId, resolveVspVersion(vspId, version, user,
+ VersionableEntityAction.Read), user);
+
+ MapDeploymentFlavorEntityDeploymentFlavorToListResponse mapper = new
+ MapDeploymentFlavorEntityDeploymentFlavorToListResponse();
+ GenericCollectionWrapper<DeploymentFlavorListResponseDto> results = new GenericCollectionWrapper<>();
+ for (DeploymentFlavorEntity deploymentFlavor : deploymentFlavors) {
+ results.add(mapper.applyMapping(deploymentFlavor, DeploymentFlavorListResponseDto.class));
+ }
+ return Response.ok(results).build();
+ }
+
+ @Override
+ public Response get(String vspId, String version, String deploymentFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_Deployment_flavor.toString());
+ CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
+ .getDeploymentFlavor(vspId, resolveVspVersion(vspId, version, user,
+ VersionableEntityAction.Read), deploymentFlavorId, user);
+
+ CompositionEntityResponseDto<DeploymentFlavorDto> responseDto = new
+ CompositionEntityResponseDto<>();
+ new MapCompositionEntityResponseToDto<>(new MapDeploymentFlavorToDeploymentDto(), DeploymentFlavorDto.class)
+ .doMapping(response, responseDto);
+ return Response.ok(responseDto).build();
+ }
+
+ @Override
+ public Response getSchema(String vspId, String version, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_Deployment_flavor.toString());
+ CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
+ .getDeploymentFlavorSchema(vspId, Version.valueOf(version), user);
+ return Response.ok(response).build();
+ }
+
+ @Override
+ public Response delete(String vspId, String versionId, String deploymentFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Delete_Deployment_flavor.toString());
+ Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ deploymentFlavorManager.deleteDeploymentFlavor(vspId, version, deploymentFlavorId, user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response update(DeploymentFlavorRequestDto request, String vspId, String versionId,
+ String deploymentFlavorId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Update_Deployment_flavor.toString());
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity().applyMapping(request,
+ DeploymentFlavorEntity.class);
+ deploymentFlavorEntity.setVspId(vspId);
+ deploymentFlavorEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
+ deploymentFlavorEntity.setId(deploymentFlavorId);
+
+ CompositionEntityValidationData validationData =
+ deploymentFlavorManager.updateDeploymentFlavor(deploymentFlavorEntity, user);
+ return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
+ ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
+ new MapCompositionEntityValidationDataToDto().applyMapping(validationData,
+ CompositionEntityValidationDataDto.class)).build() : Response.ok().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/ImagesImpl.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/ImagesImpl.java
new file mode 100644
index 0000000000..c939eb57ae
--- /dev/null
+++ 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/ImagesImpl.java
@@ -0,0 +1,175 @@
+package org.openecomp.sdcrests.vsp.rest.services;
+
+
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.collections.CollectionUtils;
+import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageData;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageCreationDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageRequestDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
+import org.openecomp.sdcrests.vsp.rest.Images;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapImageDataToImageDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapImageEntityToImageCreationDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapImageEntityToImageDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapImageRequestDtoToImageEntity;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto;
+import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import javax.inject.Named;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.core.Response;
+
+
+@Named
+@Service("images")
+@Scope(value = "prototype")
+public class ImagesImpl implements Images
+ {
+
+ private ImageManager imageManager = ImageManagerFactory.getInstance().createInterface();
+ private ComponentManager componentManager =
+ ComponentManagerFactory.getInstance().createInterface();
+
+ @Override
+ public Response create(ImageRequestDto request, String vspId, String versionId,String
+ componentId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Create_Image.toString());
+ ImageEntity image =
+ new MapImageRequestDtoToImageEntity().applyMapping(request, ImageEntity.class);
+ image.setVspId(vspId);
+ image.setComponentId(componentId);
+ image.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
+ componentManager.validateComponentExistence(vspId, image.getVersion(), componentId, user);
+ ImageEntity createdImage = imageManager.createImage(image, user);
+ MapImageEntityToImageCreationDto mapping = new MapImageEntityToImageCreationDto();
+ ImageCreationDto createdImageDto = mapping.applyMapping(createdImage, ImageCreationDto.class);
+ return Response
+ .ok(createdImage != null ? createdImageDto : null)
+ .build();
+ }
+
+ @Override
+ public Response getImageSchema(String vspId, String versionId, String componentId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.GET_Image_Schema.toString());
+ CompositionEntityResponse<Image> response =
+ imageManager.getImageSchema(vspId, user);
+ return Response.ok(response).build();
+ }
+
+ @Override
+ public Response get(String vspId, String versionId, String componentId, String imageId, String
+ user) {
+ MdcUtil.initMdc(LoggerServiceName.GET_Image.toString());
+ Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ CompositionEntityResponse<Image> response = imageManager.getImage(vspId,
+ vspVersion, componentId, imageId, user);
+
+ return Response.ok(response).build();
+ }
+
+ @Override
+ public Response list(String vspId, String versionId, String componentId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.List_Images.toString());
+ Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ Collection<ImageEntity> images =
+ imageManager.listImages(vspId, vspVersion, componentId, user);
+
+ MapImageEntityToImageDto mapper = new MapImageEntityToImageDto();
+ GenericCollectionWrapper<ImageDto> results = new GenericCollectionWrapper<>();
+ for (ImageEntity image : images) {
+ results.add(mapper.applyMapping(image, ImageDto.class));
+ }
+
+ return Response.ok(results).build();
+ }
+
+ @Override
+ public Response delete(String vspId, String versionId, String componentId, String imageId,
+ String user) {
+ MdcUtil.initMdc(LoggerServiceName.Delete_Image.toString());
+ Version vspVersion = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ imageManager.deleteImage(vspId, vspVersion, componentId, imageId, user);
+ return Response.ok().build();
+ }
+
+ @Override
+ public Response update(ImageRequestDto request, String vspId, String versionId, String
+ componentId,
+ String imageId,
+ String user) {
+ MdcUtil.initMdc(LoggerServiceName.Update_Image.toString());
+ ImageEntity imageEntity = new MapImageRequestDtoToImageEntity().applyMapping(request,
+ ImageEntity.class);
+ imageEntity.setVspId(vspId);
+ imageEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
+ imageEntity.setComponentId(componentId);
+ imageEntity.setId(imageId);
+ componentManager.validateComponentExistence(vspId, imageEntity.getVersion(), componentId, user);
+
+ CompositionEntityValidationData validationData =
+ imageManager.updateImage(imageEntity, user);
+ return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
+ ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
+ new MapCompositionEntityValidationDataToDto()
+ .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() :
+ Response.ok().build();
+ }
+
+ @Override
+ public Response getQuestionnaire(String vspId, String versionId, String componentId, String
+ imageId, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Get_Questionnaire_Compute.toString());
+ Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ QuestionnaireResponse questionnaireResponse = imageManager
+ .getImageQuestionnaire(vspId, vspVersion, componentId, imageId,
+ user);
+
+ QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto()
+ .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class);
+ return Response.ok(result).build();
+
+ }
+
+ @Override
+ public Response updateQuestionnaire(String questionnaireData, String vspId, String
+ versionId,String componentId,String imageId, String user) {
+ MdcUtil
+ .initMdc(LoggerServiceName.Update_Questionnaire_Compute.toString()
+ );
+ Version vspVersion = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
+ componentManager.validateComponentExistence(vspId, vspVersion, componentId, user);
+ imageManager.updateImageQuestionnaire(vspId, vspVersion, componentId, imageId,
+ questionnaireData, user);
+ return Response.ok().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/NicsImpl.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/NicsImpl.java
index 922700671c..1612c964a1 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/NicsImpl.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/NicsImpl.java
@@ -36,12 +36,14 @@ import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.types.VersionableEntityAction;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicCreationResponseDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicRequestDto;
import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
import org.openecomp.sdcrests.vsp.rest.Nics;
import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapNicEntityToNicCreationResponseDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapNicEntityToNicDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapNicRequestDtoToNicEntity;
import org.openecomp.sdcrests.vsp.rest.mapping.MapNicToNicDto;
@@ -89,7 +91,11 @@ public class NicsImpl implements Nics {
componentManager.validateComponentExistence(vspId, nic.getVersion(), componentId, user);
NicEntity createdNic = nicManager.createNic(nic, user);
- return Response.ok(createdNic != null ? new StringWrapperResponse(createdNic.getId()) : null)
+ MapNicEntityToNicCreationResponseDto mapping =
+ new MapNicEntityToNicCreationResponseDto();
+ NicCreationResponseDto createdNicDto = mapping.applyMapping(createdNic,
+ NicCreationResponseDto.class);
+ return Response.ok(createdNic != null ? createdNicDto : null)
.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 c730066770..6dcb63dfdd 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
@@ -22,16 +22,24 @@ package org.openecomp.sdcrests.vsp.rest.services;
import org.openecomp.sdc.activityLog.ActivityLogManager;
import org.openecomp.sdc.activityLog.ActivityLogManagerFactory;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.logging.context.MdcUtil;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.messages.AuditMessages;
import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerErrorCode;
import org.openecomp.sdc.logging.types.LoggerServiceName;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.OnboardingMethodErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
@@ -42,16 +50,18 @@ 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.vsp.rest.VendorSoftwareProducts;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapComputeEntityToVspComputeDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapPackageInfoToPackageInfoDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapValidationResponseToDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapVersionedVendorSoftwareProductInfoToVspDetailsDto;
import org.openecomp.sdcrests.vsp.rest.mapping.MapVspDescriptionDtoToVspDetails;
-import org.openecomp.sdcrests.vsp.rest.mapping.MspVspDetailsToVspCreationDto;
+import org.openecomp.sdcrests.vsp.rest.mapping.MapVspDetailsToVspCreationDto;
import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
import org.openecomp.sdcrests.wrappers.StringWrapperResponse;
import org.slf4j.MDC;
@@ -62,6 +72,7 @@ import javax.inject.Named;
import javax.ws.rs.core.Response;
import java.io.File;
import java.io.IOException;
+import java.util.Collection;
import java.util.List;
@@ -79,21 +90,35 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
private ActivityLogManager activityLogManager =
ActivityLogManagerFactory.getInstance().createInterface();
- @Override
- public Response createVsp(VspDescriptionDto vspDescriptionDto, String user) {
- MdcUtil.initMdc(LoggerServiceName.Create_VSP.toString());
- logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CREATE_VSP + vspDescriptionDto.getName());
-
- VspDetails vspDetails =
- new MapVspDescriptionDtoToVspDetails().applyMapping(vspDescriptionDto, VspDetails.class);
-
- vspDetails = vendorSoftwareProductManager.createVsp(vspDetails, user);
-
- MspVspDetailsToVspCreationDto mapping = new MspVspDetailsToVspCreationDto();
- VspCreationDto vspCreationDto = mapping.applyMapping(vspDetails, VspCreationDto.class);
+ @Override
+ public Response createVsp(VspDescriptionDto vspDescriptionDto, String user) {
+ MdcUtil.initMdc(LoggerServiceName.Create_VSP.toString());
+ logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CREATE_VSP
+ + vspDescriptionDto.getName());
+
+ VspCreationDto vspCreationDto = null;
+ switch (vspDescriptionDto.getOnboardingMethod()) {
+ case "HEAT":
+ case "Manual":
+ VspDetails vspDetails = new MapVspDescriptionDtoToVspDetails().
+ applyMapping(vspDescriptionDto, VspDetails.class);
+
+ vspDetails = vendorSoftwareProductManager.createVsp(vspDetails, user);
+
+ MapVspDetailsToVspCreationDto mapping = new MapVspDetailsToVspCreationDto();
+ 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 Response.ok(vspCreationDto).build();
- }
+ return Response.ok(vspCreationDto).build();
+ }
@Override
public Response listVsps(String versionFilter, String user) {
@@ -324,12 +349,26 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts {
vendorSoftwareProductManager.getInformationArtifact(vspId,
resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), user);
- Response.ResponseBuilder response = Response.ok(textInformationArtifact);
- if (textInformationArtifact == null) {
- return Response.status(Response.Status.NOT_FOUND).build();
+ Response.ResponseBuilder response = Response.ok(textInformationArtifact);
+ if (textInformationArtifact == null) {
+ return Response.status(Response.Status.NOT_FOUND).build();
+ }
+ response
+ .header("Content-Disposition", "attachment; filename=" + textInformationArtifact.getName());
+ return response.build();
}
- response
- .header("Content-Disposition", "attachment; filename=" + textInformationArtifact.getName());
- return response.build();
+
+ public Response listCompute(String vspId, String version, String user) {
+
+ Collection<ComputeEntity> computes = vendorSoftwareProductManager.getComputeByVsp(vspId,
+ resolveVspVersion(vspId, version, user, VersionableEntityAction.Read), user);
+
+ MapComputeEntityToVspComputeDto mapper = new MapComputeEntityToVspComputeDto();
+ GenericCollectionWrapper<VspComputeDto> results = new GenericCollectionWrapper<>();
+ for (ComputeEntity compute : computes) {
+ results.add(mapper.applyMapping(compute, VspComputeDto.class));
+ }
+
+ return Response.ok(results).build();
}
}
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup
new file mode 100644
index 0000000000..7fb5fd711e
--- /dev/null
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup
@@ -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>
+
+ <artifactId>vendor-software-products-rest-types</artifactId>
+ <name>vendor-software-products-rest-types</name>
+
+ <parent>
+ <groupId>org.openecomp.sdc.onboarding</groupId>
+ <artifactId>vendor-software-products-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-common-rest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
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/ComponentCreationDto.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/ComponentCreationDto.java
new file mode 100644
index 0000000000..a4ec05c074
--- /dev/null
+++ 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/ComponentCreationDto.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class ComponentCreationDto {
+ private String vfcId;
+
+ public String getVfcId() {
+ return vfcId;
+ }
+
+ public void setVfcId(String vfcId) {
+ this.vfcId = vfcId;
+ }
+}
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/ComponentRequestDto.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/ComponentRequestDto.java
index 8d2fd4b48d..364e11936c 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/ComponentRequestDto.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/ComponentRequestDto.java
@@ -7,9 +7,9 @@
* 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.
@@ -20,11 +20,19 @@
package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
public class ComponentRequestDto {
private String name;
+ @NotNull(message = "VFC displayName is mandatory.")
+ @Size(min = 1, max = 30,message = "VFC displayName length should be between 1 and 30.")
private String displayName;
+ @Size(min = 0, max = 1000,message = "description length should not exceed 1000.")
private String vfcCode;
+ private String nfcCode;
+ private String nfcFunction;
private String description;
public String getName() {
@@ -58,4 +66,20 @@ public class ComponentRequestDto {
public void setVfcCode(String vfcCode) {
this.vfcCode = vfcCode;
}
+
+ public String getNfcCode() {
+ return nfcCode;
+ }
+
+ public void setNfcCode(String nfcCode) {
+ this.nfcCode = nfcCode;
+ }
+
+ public String getNfcFunction() {
+ return nfcFunction;
+ }
+
+ public void setNfcFunction(String nfcFunction) {
+ this.nfcFunction = nfcFunction;
+ }
}
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/ComponentValidationResultDto.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/ComponentValidationResultDto.java
new file mode 100644
index 0000000000..b5456b7e88
--- /dev/null
+++ 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/ComponentValidationResultDto.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+import java.util.Set;
+
+public class ComponentValidationResultDto {
+ private boolean valid;
+ private Set<CompositionEntityValidationDataDto> validationData;
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public void setValid(boolean valid) {
+ this.valid = valid;
+ }
+
+ public Set<CompositionEntityValidationDataDto> getValidationData() {
+ return validationData;
+ }
+
+ public void setValidationData(Set<CompositionEntityValidationDataDto> validationData) {
+ this.validationData = validationData;
+ }
+}
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/ComputeCreationDto.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/ComputeCreationDto.java
new file mode 100644
index 0000000000..f2b0689cd4
--- /dev/null
+++ 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/ComputeCreationDto.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class ComputeCreationDto {
+ private String id;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
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/ComputeDescription.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/ComputeDescription.java
new file mode 100644
index 0000000000..1c4283acfc
--- /dev/null
+++ 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/ComputeDescription.java
@@ -0,0 +1,31 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class ComputeDescription {
+ private String name;
+ private String description;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ComputeDescription() {
+
+ }
+
+ public ComputeDescription(String name, String description) {
+ this.name = name;
+ this.description = description;
+ }
+}
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/ComputeDetailsDto.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/ComputeDetailsDto.java
new file mode 100644
index 0000000000..4b7889b16d
--- /dev/null
+++ 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/ComputeDetailsDto.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+import org.hibernate.validator.constraints.NotBlank;
+
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+public class ComputeDetailsDto implements CompositionDataEntityDto {
+ @NotBlank(message = "is mandatory and should not be empty")
+ @Size(min = 0, max = 30, message = "length should not exceed 30 characters.")
+ @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
+ private String name;
+ @Size(min = 0, max = 300, message = "length should not exceed 300 characters.")
+ private String description;
+
+ public ComputeDetailsDto() {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
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/ComputeDto.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/ComputeDto.java
new file mode 100644
index 0000000000..829e2c58b5
--- /dev/null
+++ 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/ComputeDto.java
@@ -0,0 +1,40 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class ComputeDto {
+ private String name;
+ private String id;
+ private String description;
+ private boolean associatedToDeploymentFlavor;
+
+ public boolean isAssociatedToDeploymentFlavor() {
+ return associatedToDeploymentFlavor;
+ }
+
+ public void setAssociatedToDeploymentFlavor(boolean associatedToDeploymentFlavor) {
+ this.associatedToDeploymentFlavor = associatedToDeploymentFlavor;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
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/DeploymentFlavorCreationDto.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/DeploymentFlavorCreationDto.java
new file mode 100644
index 0000000000..d4c3443deb
--- /dev/null
+++ 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/DeploymentFlavorCreationDto.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+public class DeploymentFlavorCreationDto {
+ private String deploymentFlavorId;
+
+ public String getDeploymentFlavorId() {
+ return deploymentFlavorId;
+ }
+
+ public void setDeploymentFlavorId(String deploymentFlavorId) {
+ this.deploymentFlavorId = deploymentFlavorId;
+ }
+}
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/DeploymentFlavorDto.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/DeploymentFlavorDto.java
new file mode 100644
index 0000000000..1748603d92
--- /dev/null
+++ 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/DeploymentFlavorDto.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class DeploymentFlavorDto extends DeploymentFlavorRequestDto implements CompositionDataEntityDto {
+
+ private String id;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
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/DeploymentFlavorListResponseDto.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/DeploymentFlavorListResponseDto.java
new file mode 100644
index 0000000000..fe51c9ebac
--- /dev/null
+++ 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/DeploymentFlavorListResponseDto.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+public class DeploymentFlavorListResponseDto {
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ private String model;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ private String description;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ private String id;
+}
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/DeploymentFlavorRequestDto.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/DeploymentFlavorRequestDto.java
new file mode 100644
index 0000000000..54ce63b252
--- /dev/null
+++ 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/DeploymentFlavorRequestDto.java
@@ -0,0 +1,53 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+import org.hibernate.validator.constraints.NotBlank;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+
+import java.util.List;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+public class DeploymentFlavorRequestDto {
+ @NotBlank(message = "is mandatory and should not be empty")
+ @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
+ @Size(min = 0, max = 30,message = "length should not exceed 30 characters.")
+ private String model;
+ @Size(min = 0, max = 300,message = "length should not exceed 300 characters.")
+ private String description;
+ private String featureGroupId;
+ private List<ComponentComputeAssociation> componentComputeAssociations;
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getFeatureGroupId() {
+ return featureGroupId;
+ }
+
+ public void setFeatureGroupId(String featureGroupId) {
+ this.featureGroupId = featureGroupId;
+ }
+
+ public List<ComponentComputeAssociation> getComponentComputeAssociations() {
+ return componentComputeAssociations;
+ }
+
+ public void setComponentComputeAssociations(List<ComponentComputeAssociation> componentComputeAssociations) {
+ this.componentComputeAssociations = componentComputeAssociations;
+ }
+
+}
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/DeploymentFlavorValidationResultDto.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/DeploymentFlavorValidationResultDto.java
new file mode 100644
index 0000000000..d6f557c461
--- /dev/null
+++ 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/DeploymentFlavorValidationResultDto.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+import java.util.Set;
+
+public class DeploymentFlavorValidationResultDto {
+ private boolean valid;
+ private Set<CompositionEntityValidationDataDto> validationData;
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public void setValid(boolean valid) {
+ this.valid = valid;
+ }
+
+ public Set<CompositionEntityValidationDataDto> getValidationData() {
+ return validationData;
+ }
+
+ public void setValidationData(Set<CompositionEntityValidationDataDto> validationData) {
+ this.validationData = validationData;
+ }
+}
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/ImageCreationDto.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/ImageCreationDto.java
new file mode 100644
index 0000000000..7e1987e4c2
--- /dev/null
+++ 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/ImageCreationDto.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class ImageCreationDto {
+
+ private String id;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
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/ImageDto.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/ImageDto.java
new file mode 100644
index 0000000000..7b300222aa
--- /dev/null
+++ 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/ImageDto.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+public class ImageDto extends ImageRequestDto implements CompositionDataEntityDto {
+ private String id;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
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/ImageRequestDto.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/ImageRequestDto.java
new file mode 100644
index 0000000000..6164522dda
--- /dev/null
+++ 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/ImageRequestDto.java
@@ -0,0 +1,75 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+import org.hibernate.validator.constraints.NotBlank;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+public class ImageRequestDto implements CompositionDataEntityDto {
+
+ @NotBlank(message = "is mandatory and should not be empty")
+ @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
+ private String fileName;
+ private String description;
+ /*private String version;
+ private String format;
+ private String md5;
+ //private String providedBy;*/
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ /*public String getMd5() {
+ return md5;
+ }
+
+ public void setMd5(String md5) {
+ this.md5 = md5;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(String format) {
+ this.format = format;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ /*public String getProvidedBy() {
+ return providedBy;
+ }
+
+ public void setProvidedBy(String providedBy) {
+ this.providedBy = providedBy;
+ }*/
+
+}
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/MibUploadStatusDto.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/MonitoringUploadStatusDto.java
index 7331115c3f..38cd631c02 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/MibUploadStatusDto.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/MonitoringUploadStatusDto.java
@@ -20,12 +20,13 @@
package org.openecomp.sdcrests.vendorsoftwareproducts.types;
-public class MibUploadStatusDto {
+public class MonitoringUploadStatusDto {
private String snmpTrap;
private String snmpPoll;
+ private String vesEvent;
- public MibUploadStatusDto() {
+ public MonitoringUploadStatusDto() {
}
public String getSnmpTrap() {
@@ -40,7 +41,16 @@ public class MibUploadStatusDto {
return snmpPoll;
}
+ public String getVesEvent() {
+ return vesEvent;
+ }
+
+ public void setVesEvent(String vesEvent) {
+ this.vesEvent = vesEvent;
+ }
+
public void setSnmpPoll(String snmpPoll) {
this.snmpPoll = snmpPoll;
+
}
}
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/NicCreationResponseDto.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/NicCreationResponseDto.java
new file mode 100644
index 0000000000..469e444a76
--- /dev/null
+++ 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/NicCreationResponseDto.java
@@ -0,0 +1,14 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+
+public class NicCreationResponseDto {
+ private String nicId;
+
+ public String getNicId() {
+ return nicId;
+ }
+
+ public void setNicId(String nicId) {
+ this.nicId = nicId;
+ }
+}
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/NicRequestDto.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/NicRequestDto.java
index bd14012eee..fba85b64ed 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/NicRequestDto.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/NicRequestDto.java
@@ -20,11 +20,25 @@
package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+import org.hibernate.validator.constraints.NotBlank;
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.validation.ValidateString;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
public class NicRequestDto {
+ @NotBlank(message = "is mandatory and should not be empty")
+ @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
private String name;
private String description;
private String networkId;
+ @NotNull
+ @ValidateString(acceptedValues = {"External", "Internal"}, message = "doesn't "
+ + "meet the expected attribute value.", isCaseSensitive = true)
+ private String networkType;
+
+ private String networkDescription;
public String getName() {
return name;
@@ -49,4 +63,20 @@ public class NicRequestDto {
public void setNetworkId(String networkId) {
this.networkId = networkId;
}
+
+ public String getNetworkType(){
+ return networkType;
+ }
+
+ public void setNetworkType(String networkType){
+ this.networkType = networkType;
+ }
+
+ public String getNetworkDescription(){
+ return networkDescription;
+ }
+
+ public void setNetworkDescription(String networkDescription){
+ this.networkDescription = networkDescription;
+ }
}
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
new file mode 100644
index 0000000000..3059efb171
--- /dev/null
+++ 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
@@ -0,0 +1,6 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public enum OnboardingMethod {
+ HEAT,
+ 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/ValidationResponseDto.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/ValidationResponseDto.java
index d76ae665ae..bc03ec9f49 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/ValidationResponseDto.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/ValidationResponseDto.java
@@ -33,6 +33,8 @@ public class ValidationResponseDto {
private Collection<ErrorCodeDto> licensingDataErrors;
private Map<String, List<ErrorMessageDto>> uploadDataErrors;
private QuestionnaireValidationResultDto questionnaireValidationResult;
+ private ComponentValidationResultDto componentValidationResult;
+ private DeploymentFlavorValidationResultDto deploymentFlavorValidationResult;
public boolean isValid() {
return valid;
@@ -74,4 +76,23 @@ public class ValidationResponseDto {
QuestionnaireValidationResultDto questionnaireValidationResult) {
this.questionnaireValidationResult = questionnaireValidationResult;
}
+
+ public ComponentValidationResultDto getComponentValidationResult() {
+ return componentValidationResult;
+ }
+
+ public void setComponentValidationResult(
+ ComponentValidationResultDto componentValidationResult) {
+ this.componentValidationResult = componentValidationResult;
+ }
+
+ public DeploymentFlavorValidationResultDto getDeploymentFlavorValidationResult() {
+ return deploymentFlavorValidationResult;
+ }
+
+ public void setDeploymentFlavorValidationResult(
+ DeploymentFlavorValidationResultDto deploymentFlavorValidationResult) {
+ this.deploymentFlavorValidationResult = deploymentFlavorValidationResult;
+ }
+
}
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/VmSizing.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/VmSizing.java
new file mode 100644
index 0000000000..c7f9d12788
--- /dev/null
+++ 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/VmSizing.java
@@ -0,0 +1,72 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+import org.openecomp.sdcrests.vendorsoftwareproducts.types.validation.ValidateString;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+
+public class VmSizing {
+ @Min(value = 1, message = "should be integer and > 0")
+ @Max(value = 16, message = "should be integer and <= 16")
+ private int numOfCPUs;
+ @Min(value = 1, message = "should be integer and > 0")
+ private int fileSystemSizeGB;
+ @Min(value = 1, message = "should be integer and > 0")
+ private int persistentStorageVolumeSize;
+ @Min(value = 1, message = "should be integer and > 0")
+ private int ioOperationsPerSec;
+ @ValidateString(acceptedValues = {"1:1", "4:1", "16:1"}, message = "doesn't meet the expected "
+ + "attribute value.")
+ private String cpuOverSubscriptionRatio;
+ @ValidateString(acceptedValues = {"1", "2", "4", "8"}, message = "doesn't meet the expected "
+ + "attribute value.")
+ private String memoryRAM;
+
+ public int getNumOfCPUs() {
+ return numOfCPUs;
+ }
+
+ public void setNumOfCPUs(int numOfCPUs) {
+ this.numOfCPUs = numOfCPUs;
+ }
+
+ public int getFileSystemSizeGB() {
+ return fileSystemSizeGB;
+ }
+
+ public void setFileSystemSizeGB(int fileSystemSizeGB) {
+ this.fileSystemSizeGB = fileSystemSizeGB;
+ }
+
+ public int getPersistentStorageVolumeSize() {
+ return persistentStorageVolumeSize;
+ }
+
+ public void setPersistentStorageVolumeSize(int persistentStorageVolumeSize) {
+ this.persistentStorageVolumeSize = persistentStorageVolumeSize;
+ }
+
+ public int getIoOperationsPerSec() {
+ return ioOperationsPerSec;
+ }
+
+ public void setIoOperationsPerSec(int ioOperationsPerSec) {
+ this.ioOperationsPerSec = ioOperationsPerSec;
+ }
+
+ public String getCpuOverSubscriptionRatio() {
+ return cpuOverSubscriptionRatio;
+ }
+
+ public void setCpuOverSubscriptionRatio(String cpuOverSubscriptionRatio) {
+ this.cpuOverSubscriptionRatio = cpuOverSubscriptionRatio;
+ }
+
+ public String getMemoryRAM() {
+ return memoryRAM;
+ }
+
+ public void setMemoryRAM(String memoryRAM) {
+ this.memoryRAM = memoryRAM;
+ }
+}
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/VspComputeDto.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/VspComputeDto.java
new file mode 100644
index 0000000000..a41ae5f0af
--- /dev/null
+++ 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/VspComputeDto.java
@@ -0,0 +1,31 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types;
+
+public class VspComputeDto {
+ private String name;
+ private String componentId;
+ private String computeFlavorId;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getComponentId() {
+ return componentId;
+ }
+
+ public void setComponentId(String componentId) {
+ this.componentId = componentId;
+ }
+
+ public String getComputeFlavorId() {
+ return computeFlavorId;
+ }
+
+ public void setComputeFlavorId(String computeFlavorId) {
+ this.computeFlavorId = computeFlavorId;
+ }
+}
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 92e9d74bad..80b68deeeb 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
@@ -25,9 +25,6 @@ import org.openecomp.sdcrests.common.types.VersionDto;
import javax.validation.constraints.NotNull;
-/**
- * Created by TALIO on 4/20/2016.
- */
public class VspDescriptionDto {
@NotNull
private String name;
@@ -45,6 +42,9 @@ public class VspDescriptionDto {
private VersionDto licensingVersion; // this will be populated with vlm version
private LicensingData licensingData;
+ @NotNull
+ private String onboardingMethod;
+
public String getName() {
return name;
}
@@ -116,4 +116,12 @@ public class VspDescriptionDto {
public void setLicensingData(LicensingData licensingData) {
this.licensingData = licensingData;
}
+
+ public String getOnboardingMethod() {
+ return onboardingMethod;
+ }
+
+ public void setOnboardingMethod(String onboardingMethod) {
+ this.onboardingMethod = onboardingMethod;
+ }
}
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/validation/StringValidator.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/validation/StringValidator.java
new file mode 100644
index 0000000000..0fc2fd7e82
--- /dev/null
+++ 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/validation/StringValidator.java
@@ -0,0 +1,36 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+public class StringValidator implements ConstraintValidator<ValidateString, String> {
+
+ private List<String> valueList;
+ boolean isCaseSensitive;
+
+ @Override
+ public void initialize(ValidateString constraintAnnotation) {
+ valueList = new ArrayList<String>();
+ isCaseSensitive = constraintAnnotation.isCaseSensitive();
+ for (String val : constraintAnnotation.acceptedValues()) {
+ if (!isCaseSensitive) {
+ val = val.toUpperCase();
+ }
+ valueList.add(val);
+ }
+ }
+
+ @Override
+ public boolean isValid(String value, ConstraintValidatorContext context) {
+ if (!isCaseSensitive) {
+ value = value.toUpperCase();
+ }
+ if (value != null && !valueList.contains(value)) {
+ return false;
+ }
+ return true;
+ }
+
+} \ No newline at end of file
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/validation/ValidateString.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/validation/ValidateString.java
new file mode 100644
index 0000000000..1218bb1c22
--- /dev/null
+++ 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/validation/ValidateString.java
@@ -0,0 +1,44 @@
+package org.openecomp.sdcrests.vendorsoftwareproducts.types.validation;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ * The interface Validate string.
+ */
+@Documented
+@Constraint(validatedBy = StringValidator.class)
+@Target({METHOD, FIELD, ANNOTATION_TYPE, PARAMETER, CONSTRUCTOR})
+@Retention(RUNTIME)
+public @interface ValidateString {
+ /**
+ * The constant message.
+ */
+ String message = "";
+
+ /**
+ * Accepted values string [ ].
+ *
+ * @return the string [ ]
+ */
+ String[] acceptedValues();
+
+ String message() default "{org.openecomp.sdcrests.vendorsoftwareproducts.types.validation"
+ + ".message}";
+
+ boolean isCaseSensitive() default false;
+
+ Class<?>[] groups() default {};
+
+ Class<? extends Payload>[] payload() default {};
+}
diff --git a/openecomp-be/api/pom.xml.versionsBackup b/openecomp-be/api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..4c41573002
--- /dev/null
+++ b/openecomp-be/api/pom.xml.versionsBackup
@@ -0,0 +1,21 @@
+<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-api</artifactId>
+ <name>openecomp-sdc-api</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <url>http://maven.apache.org</url>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>/openecomp-sdc-rest-webapp</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup
new file mode 100644
index 0000000000..21cfd19b02
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup
@@ -0,0 +1,76 @@
+<?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-action-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>backend</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup
new file mode 100644
index 0000000000..a9cc7a32f6
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup
@@ -0,0 +1,36 @@
+<?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>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-application-config-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>backend</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml
new file mode 100644
index 0000000000..ea105b1f90
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml
@@ -0,0 +1,83 @@
+<?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>backend</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>openecomp-sdc-healthcheck-manager</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>activity-log-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>activity-log-rest-types</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-zusammen-core</artifactId>
+ <version>${project.version}</version>
+
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addDefaultImplementationEntries>
+ true
+ </addDefaultImplementationEntries>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/catalog-ui/src/app/models/componentsInstances/productInstance.ts b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDao.java
index 91f0999b9a..947387b4a6 100644
--- a/catalog-ui/src/app/models/componentsInstances/productInstance.ts
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDao.java
@@ -18,16 +18,9 @@
* ============LICENSE_END=========================================================
*/
-/**
- * Created by obarda on 2/4/2016.
- */
-'use strict';
-import {ComponentInstance} from "./componentInstance";
-
-export class ProductInstance extends ComponentInstance {
+package org.openecomp.sdc.health;
- constructor(componentInstance?:ProductInstance) {
- super(componentInstance);
- this.iconSprite = "sprite-product-icons";
- }
+public interface HealthCheckDao {
+ boolean checkHealth() throws Exception;
+ String getVersion();
}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDaoFactory.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDaoFactory.java
new file mode 100644
index 0000000000..387d24d07c
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckDaoFactory.java
@@ -0,0 +1,30 @@
+/*-
+ * ============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.health;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class HealthCheckDaoFactory extends AbstractComponentFactory<HealthCheckDao> {
+ public static HealthCheckDaoFactory getInstance() {
+ return AbstractFactory.getInstance(HealthCheckDaoFactory.class);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManager.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManager.java
new file mode 100644
index 0000000000..0575d06058
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManager.java
@@ -0,0 +1,29 @@
+/*-
+ * ============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.health;
+
+import org.openecomp.sdc.health.data.HealthInfo;
+
+import java.util.Collection;
+
+public interface HealthCheckManager {
+ Collection<HealthInfo> checkHealth();
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManagerFactory.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManagerFactory.java
new file mode 100644
index 0000000000..c3766068b2
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/HealthCheckManagerFactory.java
@@ -0,0 +1,30 @@
+/*-
+ * ============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.health;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+
+public abstract class HealthCheckManagerFactory extends AbstractComponentFactory<HealthCheckManager> {
+ public static HealthCheckManagerFactory getInstance() {
+ return AbstractFactory.getInstance(HealthCheckManagerFactory.class);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckResult.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckResult.java
new file mode 100644
index 0000000000..3bb78aa180
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckResult.java
@@ -0,0 +1,45 @@
+package org.openecomp.sdc.health.data;
+
+import java.util.Collection;
+
+/**
+ * {
+ "sdcVersion": "1702.0.83.37.1",
+
+ "componentsInfo": [
+ {
+ "healthCheckComponent": “<component name>",
+ "healthCheckStatus": “<UP / DOWN>",
+ "version": “<component version>",
+ "description": “<OK or error description>"
+ },
+ …..
+ ]
+ }
+
+ */
+public class HealthCheckResult {
+ String sdcVersion;
+ Collection<HealthInfo> componentsInfo;
+
+ public HealthCheckResult() {
+ }
+
+ public String getSdcVersion() {
+ return sdcVersion;
+ }
+
+ public void setSdcVersion(String sdcVersion) {
+ this.sdcVersion = sdcVersion;
+ }
+
+ public Collection<HealthInfo> getComponentsInfo() {
+ return componentsInfo;
+ }
+
+ public void setComponentsInfo(Collection<HealthInfo> componentsInfo) {
+ this.componentsInfo = componentsInfo;
+ }
+
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckStatus.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckStatus.java
new file mode 100644
index 0000000000..a876128bce
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthCheckStatus.java
@@ -0,0 +1,28 @@
+package org.openecomp.sdc.health.data;
+
+
+public enum HealthCheckStatus {
+ UP("UP"),
+ DOWN("DOWN");
+
+ private String name;
+
+ HealthCheckStatus(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ public static final HealthCheckStatus toValue(String inVal){
+ for (HealthCheckStatus val : values()){
+ if (val.toString().equals(inVal)){
+ return val;
+ }
+ }
+ return null;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthInfo.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthInfo.java
new file mode 100644
index 0000000000..6b005b0c53
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/HealthInfo.java
@@ -0,0 +1,73 @@
+package org.openecomp.sdc.health.data;
+
+/**
+ * {
+   "sdcVersion": "<SERVER_FULL_VERSION>"
+   "componentsInfo": [
+     {
+       "healthCheckComponent": "<COMPONENT_NAME>",
+       "healthCheckStatus": "<UP_OR_DOWN>",
+       "version": "<COMPONENT_VERSION>",
+       "description": "<OK_OR_ERROR_VERSION>"
+     }
+   ]
+ }
+ */
+public class HealthInfo {
+ private MonitoredModules healthCheckComponent;
+ private HealthCheckStatus healthCheckStatus;
+ private String version;
+ private String description;
+
+ public HealthInfo() {
+ }
+
+ public HealthInfo(MonitoredModules healthCheckComponent, HealthCheckStatus healthCheckStatus, String version, String description) {
+ this.healthCheckComponent = healthCheckComponent;
+ this.healthCheckStatus = healthCheckStatus;
+ this.version = version;
+ this.description = description;
+ }
+
+ public MonitoredModules getHealthCheckComponent() {
+ return healthCheckComponent;
+ }
+
+ public void setHealthCheckComponent(MonitoredModules healthCheckComponent) {
+ this.healthCheckComponent = healthCheckComponent;
+ }
+
+ public HealthCheckStatus getHealthCheckStatus() {
+ return healthCheckStatus;
+ }
+
+ public void setHealthCheckStatus(HealthCheckStatus healthCheckStatus) {
+ this.healthCheckStatus = healthCheckStatus;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
+ public String toString() {
+ return "HealthInfo{" +
+ "healthCheckComponent='" + healthCheckComponent + '\'' +
+ ", healthCheckStatus=" + healthCheckStatus +
+ ", version='" + version + '\'' +
+ ", description='" + description + '\'' +
+ '}';
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/MonitoredModules.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/MonitoredModules.java
new file mode 100644
index 0000000000..576f4c4076
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/MonitoredModules.java
@@ -0,0 +1,28 @@
+package org.openecomp.sdc.health.data;
+
+
+public enum MonitoredModules {
+ BE("BE"), CAS("Cassandra"),
+ ZU("Zusammen");
+
+ private String name;
+
+ MonitoredModules(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ public static final MonitoredModules toValue(String inVal) {
+ for (MonitoredModules val : values()) {
+ if (val.toString().equals(inVal)) {
+ return val;
+ }
+ }
+ return null;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/SiteMode.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/SiteMode.java
new file mode 100644
index 0000000000..94d48d79fd
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/data/SiteMode.java
@@ -0,0 +1,27 @@
+package org.openecomp.sdc.health.data;
+
+
+public enum SiteMode {
+ Active("active"), NOT_ACTIVE("NotActive");
+
+ private String name;
+
+ SiteMode(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ public static final SiteMode toValue(String inVal) {
+ for (SiteMode val : values()) {
+ if (val.toString().equals(inVal)) {
+ return val;
+ }
+ }
+ return null;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoFactoryImpl.java
new file mode 100644
index 0000000000..ec0931c90b
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoFactoryImpl.java
@@ -0,0 +1,36 @@
+/*-
+ * ============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.health.impl;
+
+
+import org.openecomp.sdc.health.HealthCheckDao;
+import org.openecomp.sdc.health.HealthCheckDaoFactory;
+
+public class HealthCheckDaoFactoryImpl
+ extends HealthCheckDaoFactory {
+ private static final HealthCheckDao INSTANCE =
+ new HealthCheckDaoImpl();
+
+ @Override
+ public HealthCheckDao createInterface() {
+ return INSTANCE;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoImpl.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoImpl.java
new file mode 100644
index 0000000000..f9b4215322
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckDaoImpl.java
@@ -0,0 +1,69 @@
+/*-
+ * ============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.health.impl;
+
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.exceptions.DriverException;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.health.HealthCheckDao;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+public class HealthCheckDaoImpl implements HealthCheckDao {
+
+ private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
+
+ private static final CheckHealthAccessor accessor =
+ noSqlDb.getMappingManager().createAccessor(CheckHealthAccessor.class);
+ private static final Logger logger = LoggerFactory.getLogger(HealthCheckDaoImpl.class);
+
+ @Override
+ public boolean checkHealth() throws Exception {
+ try {
+ ResultSet resultSet = accessor.checkHealth();
+ return resultSet.getColumnDefinitions().contains("key");
+ } catch (DriverException ex) {
+ logger.error("Health check failure" + ex.getMessage(), ex);
+ throw ex;
+ } catch (Exception ex) {
+ logger.error("Health check failure" + ex.getMessage(), ex);
+ throw new Exception("Internal Error.");
+ }
+ }
+
+ @Override
+ public String getVersion() {
+ return noSqlDb.getVersion();
+ }
+
+ @Accessor
+ interface CheckHealthAccessor {
+
+ @Query("SELECT * FROM application_config LIMIT 1")
+ ResultSet checkHealth();
+
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerFactoryImpl.java
new file mode 100644
index 0000000000..1da515fac0
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerFactoryImpl.java
@@ -0,0 +1,33 @@
+/*-
+ * ============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.health.impl;
+
+import org.openecomp.sdc.health.*;
+
+public class HealthCheckManagerFactoryImpl extends HealthCheckManagerFactory {
+ private static final HealthCheckManager INSTANCE ;
+
+ static {
+ INSTANCE = new HealthCheckManagerImpl();
+ }
+
+ @Override
+ public HealthCheckManager createInterface() {return INSTANCE;}
+}
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerImpl.java b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerImpl.java
new file mode 100644
index 0000000000..2ee15811af
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/java/org/openecomp/sdc/health/impl/HealthCheckManagerImpl.java
@@ -0,0 +1,134 @@
+/*-
+ * ============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.health.impl;
+
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
+import com.amdocs.zusammen.commons.health.data.HealthStatus;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.core.zusammen.api.ZusammenUtil;
+import org.openecomp.sdc.health.HealthCheckManager;
+import org.openecomp.sdc.health.data.HealthCheckStatus;
+import org.openecomp.sdc.health.data.MonitoredModules;
+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.health.HealthCheckDao;
+import org.openecomp.sdc.health.HealthCheckDaoFactory;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class HealthCheckManagerImpl implements HealthCheckManager {
+
+ private static MdcDataDebugMessage mdcDataDebugMessage;
+ private HealthCheckDao healthCheckDao;
+
+ private static final Logger logger;
+
+ static {
+ mdcDataDebugMessage = new MdcDataDebugMessage();
+ logger = LoggerFactory.getLogger(HealthCheckManagerImpl.class);
+ }
+
+ public HealthCheckManagerImpl() {
+ healthCheckDao = HealthCheckDaoFactory.getInstance().createInterface();
+ }
+
+ public String getBEVersion() {
+ return this.getClass().getPackage().getImplementationVersion();
+ }
+
+ @Override
+ public Collection<org.openecomp.sdc.health.data.HealthInfo> checkHealth() {
+ org.openecomp.sdc.health.data.HealthInfo zeHealthInfo = null;
+ org.openecomp.sdc.health.data.HealthInfo beHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.BE, HealthCheckStatus.UP, getBEVersion(), "OK");
+ org.openecomp.sdc.health.data.HealthInfo cassandraHealthInfo = null;
+ String zVersion = "Unknown";
+ try {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ ZusammenAdaptor zusammenAdaptor = ZusammenAdaptorFactory
+ .getInstance().createInterface();
+ Collection<HealthInfo> zeHealthInfos = new ArrayList<>();
+ try {
+ zeHealthInfos = zusammenAdaptor.checkHealth(context);
+ } catch (Exception ex) {
+ logger.error(ex.getMessage(), ex);
+ zeHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.ZU, HealthCheckStatus.DOWN,
+ zVersion, ex.getMessage());
+ }
+ boolean cassandraHealth = false;
+ String description = "OK";
+ try {
+ cassandraHealth = healthCheckDao.checkHealth();
+ } catch (Exception ex) {
+ logger.error(ex.getMessage(), ex);
+ description = ex.getMessage();
+ cassandraHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.CAS, HealthCheckStatus.DOWN, zVersion, ex.getMessage());
+ }
+ zVersion = zusammenAdaptor.getVersion(context);
+ if (cassandraHealthInfo == null) {
+ HealthCheckStatus status = cassandraHealth ? HealthCheckStatus.UP : HealthCheckStatus.DOWN;
+ if (!cassandraHealth){
+ description = "Cassandra is not available";
+ }
+ cassandraHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(MonitoredModules.CAS, status,
+ healthCheckDao.getVersion(), description);
+ }
+ if (zeHealthInfo == null) {
+ List<HealthInfo> downHealth = zeHealthInfos.stream().
+ filter(h -> h.getHealthStatus().equals(HealthStatus.DOWN)).
+ collect(Collectors.toList());
+
+ if (downHealth.isEmpty()) {
+ zeHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.ZU, HealthCheckStatus.UP,
+ zVersion, "OK");
+ } else {
+ String desc = downHealth.stream().map(healthInfo -> healthInfo.getDescription())
+ .collect(Collectors.joining(" , ", "[", "]"));
+ zeHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.ZU, HealthCheckStatus.DOWN,
+ zVersion, desc);
+ }
+
+ }
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ zeHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.ZU, HealthCheckStatus.DOWN, zVersion, e.getMessage()
+ );
+ cassandraHealthInfo = new org.openecomp.sdc.health.data.HealthInfo(
+ MonitoredModules.CAS, HealthCheckStatus.DOWN, zVersion, e.getMessage());
+ }
+ return Arrays.asList(zeHealthInfo, beHealthInfo, cassandraHealthInfo);
+ }
+
+
+}
+
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/resources/factoryConfiguration.json b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/resources/factoryConfiguration.json
new file mode 100644
index 0000000000..e0da4d732f
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/src/main/resources/factoryConfiguration.json
@@ -0,0 +1,4 @@
+{
+ "org.openecomp.sdc.health.HealthCheckManagerFactory": "org.openecomp.sdc.health.impl.HealthCheckManagerFactoryImpl",
+ "org.openecomp.sdc.health.HealthCheckDaoFactory": "org.openecomp.sdc.health.impl.HealthCheckDaoFactoryImpl"
+} \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup
new file mode 100644
index 0000000000..4d678ad77d
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup
@@ -0,0 +1,78 @@
+<?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-validation-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!--dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency-->
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>backend</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
index ac39119ed2..0a5f5b6e6c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
@@ -52,7 +52,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup
new file mode 100644
index 0000000000..85b34a187e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup
@@ -0,0 +1,77 @@
+<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>
+
+ <name>openecomp-sdc-vendor-license-manager</name>
+ <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
+
+ <parent>
+ <artifactId>backend</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.web</groupId>
+ <artifactId>javax.el</artifactId>
+ <version>2.2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons.io.version}</version>
+ </dependency>
+
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseManager.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseManager.java
index aa9fc0a8cd..a76b9b865d 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseManager.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseManager.java
@@ -26,7 +26,9 @@ import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
+import org.openecomp.sdc.vendorlicense.errors.LimitErrorBuilder;
import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -109,4 +111,14 @@ public interface VendorLicenseManager {
void deleteLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user);
+ LimitEntity createLimit(LimitEntity limitEntity, String user);
+
+ Collection<LimitEntity> listLimits(String vlmId, Version version, String epLkgId, String user);
+
+ void deleteLimit(LimitEntity limitEntity, String user);
+
+ void updateLimit(LimitEntity limitEntity, String user);
+
+ LimitEntity getLimit(LimitEntity entitlementPool, String user);
+
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/errors/LimitErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/errors/LimitErrorBuilder.java
new file mode 100644
index 0000000000..4889b5a04a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/errors/LimitErrorBuilder.java
@@ -0,0 +1,30 @@
+package org.openecomp.sdc.vendorlicense.errors;
+
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class LimitErrorBuilder {
+
+ private static final String LIMIT_INVALID_ATTR_VALUE_MSG = "The %s value doesn't meet the "
+ + "expected attribute value.";
+
+ private static final String DUPLICATE_LIMIT_NAME_NOT_ALLOWED_MSG =
+ "Invalid request, Limit with name %s already exists for type %s.";
+
+ public static ErrorCode getInvalidValueErrorBuilder(String attribute, String errorCode) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(errorCode);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(LIMIT_INVALID_ATTR_VALUE_MSG, attribute));
+ return builder.build();
+ }
+
+ public static ErrorCode getDuplicateNameErrorbuilder(String name, String type) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorLicenseErrorCodes.DUPLICATE_LIMIT_NAME_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DUPLICATE_LIMIT_NAME_NOT_ALLOWED_MSG, name, type ));
+ return builder.build();
+ }
+}
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 eb559f2e62..622ff02501 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
@@ -24,6 +24,8 @@ import org.openecomp.core.util.UniqueValueUtil;
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.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
@@ -32,6 +34,7 @@ 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.LoggerServiceName;
import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorlicense.VendorLicenseConstants;
import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
@@ -43,6 +46,8 @@ import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao;
import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.LimitDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
@@ -51,7 +56,11 @@ import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
+import org.openecomp.sdc.vendorlicense.errors.InvalidDateErrorBuilder;
+import org.openecomp.sdc.vendorlicense.errors.LimitErrorBuilder;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
@@ -64,10 +73,14 @@ import org.openecomp.sdc.versioning.types.VersionInfo;
import org.openecomp.sdc.versioning.types.VersionableEntityAction;
import org.openecomp.sdcrests.activitylog.types.ActivityType;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE;
@@ -75,7 +88,7 @@ import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICE
public class VendorLicenseManagerImpl implements VendorLicenseManager {
private static final VersioningManager versioningManager =
VersioningManagerFactory.getInstance().createInterface();
- private static final VendorLicenseFacade vendorLicenseFacade =
+ private VendorLicenseFacade vendorLicenseFacade =
VendorLicenseFacadeFactory.getInstance().createInterface();
private static final VendorLicenseModelDao vendorLicenseModelDao =
VendorLicenseModelDaoFactory.getInstance().createInterface();
@@ -87,6 +100,9 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
EntitlementPoolDaoFactory.getInstance().createInterface();
private static final LicenseKeyGroupDao licenseKeyGroupDao =
LicenseKeyGroupDaoFactory.getInstance().createInterface();
+ private static final LimitDao limitDao =
+ LimitDaoFactory.getInstance().createInterface();
+
private ActivityLogManager activityLogManager = ActivityLogManagerFactory.getInstance().createInterface();
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private static final Logger logger =
@@ -471,14 +487,110 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
.debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
mdcDataDebugMessage
.debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
+ validateCreateDate(entitlementPool);
return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
}
+ private void validateCreateDate(EntitlementPoolEntity entitlementPool){
+ mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate
+ ()+" "+entitlementPool.getExpiryDate());
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
+
+ entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
+ .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);
+
+ if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) {
+ if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore
+ (LocalDate.now().atStartOfDay()) ||
+ LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay()
+ .isEqual(LocalDate.now().atStartOfDay()) ||
+ LocalDate.parse(entitlementPool.getExpiryDate(), formatter)
+ .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ throw new CoreException(
+ new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+ .build());
+ }
+ }
+
+ if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() == null) {
+ if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore
+ (LocalDate.now().atStartOfDay())) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ throw new CoreException(
+ new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+ .build());
+ }
+ }
+
+ if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ throw new CoreException(
+ new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+ .build());
+
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null,null);
+ }
+
+ private void validateUpdateDate(EntitlementPoolEntity entitlementPool){
+ mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate
+ ()+" "+entitlementPool.getExpiryDate());
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
+
+ entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
+ .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);
+
+ if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) {
+ if (LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay()
+ .isEqual(LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay()) ||
+ LocalDate.parse(entitlementPool.getExpiryDate(), formatter)
+ .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ throw new CoreException(
+ new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+ .build());
+ }
+ }
+
+ if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
+ throw new CoreException(
+ new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+ .build());
+
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null,null);
+ }
+
@Override
public void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
.getVendorLicenseModelId(), entitlementPool.getId());
+ validateUpdateDate(entitlementPool);
Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
user), user);
@@ -504,6 +616,18 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
VersioningUtil
.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));
+ }
+
+ if(retrieved.getExpiryDate() != null){
+ retrieved.setExpiryDate(LocalDate.parse(retrieved.getExpiryDate(),formatter).format
+ (targetFormatter));
+ }
+
mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
.getVendorLicenseModelId(), entitlementPool.getId());
return retrieved;
@@ -529,6 +653,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
referencingFeatureGroupId), entitlementPool.getId());
}
+ deleteChildLimits(entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion(), entitlementPool.getId(), user);
+
entitlementPoolDao.delete(entitlementPool);
UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME,
@@ -542,6 +668,14 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
.getVendorLicenseModelId(), entitlementPool.getId());
}
+ private 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)));
+ }
+
@Override
public Collection<LicenseKeyGroupEntity> listLicenseKeyGroups(String vlmId, Version version,
String user) {
@@ -617,6 +751,8 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
referencingFeatureGroupId), licenseKeyGroup.getId());
}
+ deleteChildLimits(licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion(), licenseKeyGroup.getId(), user);
+
licenseKeyGroupDao.delete(licenseKeyGroup);
UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME,
@@ -630,6 +766,124 @@ public class VendorLicenseManagerImpl implements VendorLicenseManager {
.getVendorLicenseModelId(), licenseKeyGroup.getId());
}
+ @Override
+ public LimitEntity createLimit(LimitEntity limit, String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
+ mdcDataDebugMessage
+ .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
+ validateLimit(limit, user);
+ return vendorLicenseFacade.createLimit(limit, user);
+ }
+
+ private void validateLimit(LimitEntity limit, String user) {
+ Version version = VersioningUtil.resolveVersion(limit.getVersion(),
+ getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
+ Collection<LimitEntity> limitList = listLimits(limit.getVendorLicenseModelId(),version
+ ,limit.getEpLkgId(), user);
+
+ if (!isLimitNameUnique(limitList,limit.getName(), limit.getType(), limit.getId())) {
+ final ErrorCode duplicateLimitNameErrorBuilder =
+ 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());
+ throw new CoreException(duplicateLimitNameErrorBuilder);
+ }
+ }
+
+ private boolean isLimitNameUnique(Collection<LimitEntity> limitList, String name, LimitType
+ type, String id) {
+ for (LimitEntity limit : limitList) {
+ if(limit.getName().equalsIgnoreCase(name) &&
+ limit.getType().name().equalsIgnoreCase(type.name())) {
+ if(id != null && limit.getId().equals(id)){
+ continue;
+ }
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public Collection<LimitEntity> listLimits(String vlmId, Version version, String epLkgId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP/LKGId", epLkgId);
+ mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP/LKGId", epLkgId);
+ return vendorLicenseFacade.listLimits(vlmId, version, epLkgId, user);
+ }
+
+ @Override
+ public void deleteLimit(LimitEntity limitEntity, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id, EP id, Limit Id", limitEntity
+ .getVendorLicenseModelId(), limitEntity.getEpLkgId(), limitEntity.getId());
+
+ Version version = VersioningUtil.resolveVersion(limitEntity.getVersion(),
+ getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user);
+ limitEntity.setVersion(version);
+
+ if(!isLimitPresent(limitEntity)){
+ VersioningUtil
+ .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+ }
+ LimitEntity retrieved = limitDao.get(limitEntity);
+ VersioningUtil
+ .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+
+ limitDao.delete(limitEntity);
+
+ vendorLicenseFacade.updateVlmLastModificationTime(limitEntity.getVendorLicenseModelId(),
+ limitEntity.getVersion());
+
+ mdcDataDebugMessage.debugExitMessage("VLM id, EP id, Limit Id", limitEntity
+ .getVendorLicenseModelId(), limitEntity.getEpLkgId(), limitEntity.getId());
+ }
+
+ @Override
+ public void updateLimit(LimitEntity limit, String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
+ getLimit(limit,user);
+ validateLimit(limit, user);
+ vendorLicenseFacade.updateLimit(limit, user);
+ mdcDataDebugMessage
+ .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
+ .getEpLkgId());
+ }
+
+ private boolean isLimitPresent(LimitEntity limit) {
+ return limitDao.isLimitPresent(limit);
+ }
+
+ @Override
+ public LimitEntity getLimit(LimitEntity limitEntity,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VLM id", limitEntity.getVendorLicenseModelId(),
+ "EP/LKGId", limitEntity.getEpLkgId());
+
+ limitEntity.setVersion(VersioningUtil.resolveVersion(limitEntity.getVersion(),
+ getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Read,
+ user), user));
+ if(!isLimitPresent(limitEntity)){
+ VersioningUtil
+ .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+ }
+ LimitEntity retrieved = limitDao.get(limitEntity);
+ VersioningUtil
+ .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
+
+ mdcDataDebugMessage.debugExitMessage("VLM id", limitEntity.getVendorLicenseModelId(),
+ "EP/LKGId", limitEntity.getEpLkgId());
+ return retrieved;
+ }
+
private void addFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
LicenseAgreementEntity licenseAgreement) {
if (featureGroupIds != null) {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/ArtifactTestUtils.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/ArtifactTestUtils.java
index 40ea59f543..5d9729de53 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/ArtifactTestUtils.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/ArtifactTestUtils.java
@@ -7,9 +7,9 @@
* 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.
@@ -126,12 +126,25 @@ public class ArtifactTestUtils {
protected List featureGroupsforVlm3;
protected LicenseAgreementEntity licenseAgreementVlm3;
+ public enum OnboardingMethod {
+ HEAT("HEAT"),
+ Manual("Manual");
+
+
+ OnboardingMethod(String method) {
+ this.method = method;
+ }
+
+ private String method;
+ }
+
protected static VspDetails createVspDetails(String id, Version version, String name, String desc,
String vendorName, String vlm, String icon,
String category, String subCategory,
String licenseAgreement,
- List<String> featureGroups) {
+ List<String> featureGroups,
+ String onboardingMethod) {
VspDetails vspDetails = new VspDetails(id, version);
vspDetails.setName(name);
vspDetails.setDescription(desc);
@@ -142,6 +155,7 @@ public class ArtifactTestUtils {
vspDetails.setVendorId(vlm);
vspDetails.setLicenseAgreement(licenseAgreement);
vspDetails.setFeatureGroups(featureGroups);
+ vspDetails.setOnboardingMethod(onboardingMethod);
return vspDetails;
}
@@ -238,7 +252,8 @@ public class ArtifactTestUtils {
vendorLicenseFacade.getVersionInfo(vlm1Id, VersionableEntityAction.Read, "");
vspDetails =
createVspDetails(null, null, "VSP1_" + CommonMethods.nextUuId(), "Test-vsp", "vendorName",
- vlm1Id, "icon", "category", "subCategory", la11Id, fgs);
+ vlm1Id, "icon", "category", "subCategory", la11Id, fgs, ArtifactTestUtils
+ .OnboardingMethod.HEAT.name());
List<Version> finalVersions = versionInfo.getFinalVersions();
Version finalVersion = finalVersions.get(1);
@@ -266,7 +281,8 @@ public class ArtifactTestUtils {
vspDetailsVsp3 =
createVspDetails(null, null, "VSP3_" + CommonMethods.nextUuId(), "VSP3",
"vendorName",
- vlm3Id, "icon", "category", "subCategory", licenceAgreementId, fgs);
+ vlm3Id, "icon", "category", "subCategory", licenceAgreementId, fgs, OnboardingMethod
+ .HEAT.name());
VersionInfo versionInfo =
vendorLicenseFacade.getVersionInfo(vlmToUse, VersionableEntityAction.Read, "");
@@ -383,7 +399,7 @@ public class ArtifactTestUtils {
fgs.add(fg21Id);
vsp2 =
createVspDetails(null, null, "VSP2_" + CommonMethods.nextUuId(), "Test-vsp", "vendorName",
- vlm2Id, "icon", "category", "subCategory", la21Id, fgs);
+ vlm2Id, "icon", "category", "subCategory", la21Id, fgs, OnboardingMethod.HEAT.name());
vsp2 = vendorSoftwareProductManager.createVsp(vsp2, USER1);
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
index 95e0e519e1..9b079de3fa 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
@@ -17,38 +17,387 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-/*
+
package org.openecomp.sdc.vendorlicense;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.CommonMethods;
+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.vendorlicense.dao.EntitlementPoolDao;
-import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory;
-import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
-import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
-import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
-import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
-import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.types.*;
+import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes;
+import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.openecomp.sdc.versioning.types.VersionInfo;
import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.util.Collection;
-import java.util.Collections;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
public class EntitlementPoolTest {
- private static final String USER1 = "epTestUser1";
+ //JUnit Test Cases using Mockito
+ private final String USER1 = "epTestUser1";
+ private final String EP1_NAME = "EP1 name";
+ private final String LT1_NAME = "LT1 name";
+
+ @Mock
+ private VendorLicenseFacade vendorLicenseFacade;
+
+ @Mock
+ private EntitlementPoolDao entitlementPoolDao;
+ @Mock
+ private LimitDao limitDao;
+
+ @InjectMocks
+ @Spy
+ private VendorLicenseManagerImpl vendorLicenseManagerImpl;
+
+ public EntitlementPoolEntity createEntitlementPool(String vlmId, Version version,
+ String name, String desc, int threshold,
+ ThresholdUnit thresholdUnit,
+ EntitlementMetric entitlementMetricChoice,
+ String entitlementMetricOther,
+ String increments,
+ AggregationFunction aggregationFunctionChoice,
+ String aggregationFunctionOther,
+ Set<OperationalScope> operationalScopeChoices,
+ String operationalScopeOther,
+ EntitlementTime timeChoice,
+ String timeOther, String sku) {
+ EntitlementPoolEntity entitlementPool = new EntitlementPoolEntity();
+ //entitlementPool.setVendorLicenseModelId(vlmId);
+ entitlementPool.setVersion(version);
+ entitlementPool.setName(name);
+ entitlementPool.setDescription(desc);
+ entitlementPool.setThresholdValue(threshold);
+ entitlementPool.setThresholdUnit(thresholdUnit);
+ entitlementPool
+ .setEntitlementMetric(new ChoiceOrOther<>(entitlementMetricChoice, entitlementMetricOther));
+ entitlementPool.setIncrements(increments);
+ entitlementPool.setAggregationFunction(
+ new ChoiceOrOther<>(aggregationFunctionChoice, aggregationFunctionOther));
+ entitlementPool.setOperationalScope(
+ new MultiChoiceOrOther<>(operationalScopeChoices, operationalScopeOther));
+ entitlementPool.setTime(new ChoiceOrOther<>(timeChoice, timeOther));
+ entitlementPool.setManufacturerReferenceNumber(sku);
+ return entitlementPool;
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void createTest() {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm1Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().format(formatter));
+ ep2.setExpiryDate(LocalDate.now().plusDays(1L).format(formatter));
+
+ vendorLicenseManagerImpl.createEntitlementPool(ep2, USER1);
+ }
+
+ @Test
+ public void createWithInvalidStartExpiryDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm2Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().format(formatter));
+ ep2.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+ vendorLicenseManagerImpl.createEntitlementPool(ep2, USER1).getId();
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void createWithoutStartDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm3Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter));
+ vendorLicenseManagerImpl.createEntitlementPool(ep2, USER1).getId();
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void createWithSameStartExpiryDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm4Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().format(formatter));
+ ep2.setExpiryDate(LocalDate.now().format(formatter));
+ vendorLicenseManagerImpl.createEntitlementPool(ep2, USER1).getId();
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void createUpdate() {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm1Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().minusDays(3L).format(formatter));
+ ep2.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+ VersionInfo info = new VersionInfo();
+ Version version = new Version();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ vendorLicenseManagerImpl.updateEntitlementPool(ep2, USER1);
+ }
+
+ @Test
+ public void updateWithInvalidStartExpiryDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm2Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().format(formatter));
+ ep2.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+ vendorLicenseManagerImpl.updateEntitlementPool(ep2, USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void updateWithoutStartDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm3Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter));
+ vendorLicenseManagerImpl.updateEntitlementPool(ep2, USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void updateWithSameStartExpiryDateTest() {
+ try {
+
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+ EntitlementPoolEntity ep2 =
+ createEntitlementPool("vlm4Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ ep2.setStartDate(LocalDate.now().format(formatter));
+ ep2.setExpiryDate(LocalDate.now().format(formatter));
+ vendorLicenseManagerImpl.updateEntitlementPool(ep2, USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ }
+ }
+
+ @Test
+ public void deleteEntitlementPoolTest() {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+
+ EntitlementPoolEntity entitlementPool =
+ createEntitlementPool("vlm1Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ entitlementPool.setStartDate(LocalDate.now().format(formatter));
+ entitlementPool.setExpiryDate(LocalDate.now().plusDays(1L).format(formatter));
+
+ VersionInfo info = new VersionInfo();
+ Version version = new Version();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ LimitEntity limitEntity = LimitTest.createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+
+ ArrayList<LimitEntity> limitEntityList = new ArrayList();
+ limitEntityList.add(limitEntity);
+
+ doReturn(entitlementPool).when(entitlementPoolDao).get(anyObject());
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(), anyObject(), anyObject(), anyObject());
+ doReturn(true).when(limitDao).isLimitPresent(anyObject());
+ doReturn(limitEntity).when(limitDao).get(anyObject());
+ try {
+ Field limitField = VendorLicenseManagerImpl.class.getDeclaredField("limitDao");
+ limitField.setAccessible(true);
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(limitField, limitField.getModifiers() & ~Modifier.FINAL);
+ limitField.set(null, limitDao);
+
+ Field epField = VendorLicenseManagerImpl.class.getDeclaredField("entitlementPoolDao");
+ epField.setAccessible(true);
+ modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(epField, epField.getModifiers() & ~Modifier.FINAL);
+ epField.set(null, entitlementPoolDao);
+ } catch(NoSuchFieldException | IllegalAccessException e)
+ {
+ Assert.fail();
+ }
+
+ vendorLicenseManagerImpl.deleteEntitlementPool(entitlementPool, USER1);
+
+ verify(limitDao).delete(anyObject());
+ }
+
+ @Test
+ public void deleteEntitlementPoolInvalidTest() {
+ try {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+
+ EntitlementPoolEntity entitlementPool =
+ createEntitlementPool("vlm1Id", null, EP1_NAME, "EP2 dec", 70, ThresholdUnit.Absolute,
+ EntitlementMetric.Other, "exception metric2", "inc2", AggregationFunction.Average, null,
+ opScopeChoices, null, EntitlementTime.Other, "time2", "sku2");
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+ entitlementPool.setStartDate(LocalDate.now().format(formatter));
+ entitlementPool.setExpiryDate(LocalDate.now().plusDays(1L).format(formatter));
+
+ VersionInfo info = new VersionInfo();
+ Version version = new Version();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ LimitEntity limitEntity = LimitTest.createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+
+ ArrayList<LimitEntity> limitEntityList = new ArrayList();
+ limitEntityList.add(limitEntity);
+
+ doReturn(entitlementPool).when(entitlementPoolDao).get(anyObject());
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(), anyObject(), anyObject(), anyObject());
+ doReturn(false).when(limitDao).isLimitPresent(anyObject());
+
+ try {
+ Field limitField = VendorLicenseManagerImpl.class.getDeclaredField("limitDao");
+ limitField.setAccessible(true);
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(limitField, limitField.getModifiers() & ~Modifier.FINAL);
+ limitField.set(null, limitDao);
+
+ Field epField = VendorLicenseManagerImpl.class.getDeclaredField("entitlementPoolDao");
+ epField.setAccessible(true);
+ modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(epField, epField.getModifiers() & ~Modifier.FINAL);
+ epField.set(null, entitlementPoolDao);
+ } catch(NoSuchFieldException | IllegalAccessException e)
+ {
+ Assert.fail();
+ }
+
+ vendorLicenseManagerImpl.deleteEntitlementPool(entitlementPool, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ /* private static final String USER1 = "epTestUser1";
private static final String USER2 = "epTestUser2";
private static final String EP1_V01_DESC = "EP1 desc";
private static final Version VERSION01 = new Version(0, 1);
@@ -91,7 +440,6 @@ public class EntitlementPoolTest {
entitlementPool.setOperationalScope(
new MultiChoiceOrOther<>(operationalScopeChoices, operationalScopeOther));
entitlementPool.setTime(new ChoiceOrOther<>(timeChoice, timeOther));
- entitlementPool.setManufacturerReferenceNumber(sku);
return entitlementPool;
}
@@ -109,8 +457,6 @@ public class EntitlementPoolTest {
Assert.assertEquals(actual.getAggregationFunction(), expected.getAggregationFunction());
Assert.assertEquals(actual.getOperationalScope(), expected.getOperationalScope());
Assert.assertEquals(actual.getTime(), expected.getTime());
- Assert.assertEquals(actual.getManufacturerReferenceNumber(),
- expected.getManufacturerReferenceNumber());
}
@BeforeClass
@@ -294,6 +640,6 @@ public class EntitlementPoolTest {
Assert.assertEquals(exception.code().id(), UniqueValueUtil.UNIQUE_VALUE_VIOLATION);
}
}
-
-}
*/
+}
+
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/FeatureGroupTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/FeatureGroupTest.java
index e41cfa9532..41c4678b01 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/FeatureGroupTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/FeatureGroupTest.java
@@ -17,44 +17,142 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-/*
+
package org.openecomp.sdc.vendorlicense;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.vendorlicense.dao.*;
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.LicenseKeyType;
-import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
-import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
-import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
+import org.openecomp.sdc.vendorlicense.facade.impl.VendorLicenseFacadeImpl;
import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
+import org.openecomp.sdc.versioning.VersioningManager;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
-*/
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
/**
* Created by KATYR on 4/10/2016
- *//*
+ */
public class FeatureGroupTest {
+ //JUnit Test Cases using Mockito
+ private static final Version VERSION01 = new Version(0, 1);
+ private final String FG1_NAME = "FG1 name";
+
+ @Mock
+ private VendorLicenseModelDao vendorLicenseModelDao;
+
+ @Mock
+ private LicenseAgreementDao licenseAgreementDao;
+
+ @Mock
+ private FeatureGroupDao featureGroupDao;
+
+ @Mock
+ private EntitlementPoolDao entitlementPoolDao;
+
+ @Mock
+ private LicenseKeyGroupDao licenseKeyGroupDao;
+
+ @Mock
+ private VersioningManager versioningManager;
+
+ @InjectMocks
+ @Spy
+ private VendorLicenseManagerImpl vendorLicenseManagerImpl;
+
+ public FeatureGroupEntity updateFeatureGroup(String vlmId, Version version, String id, String name, String desc,
+ String partNumber, String manufacturerReferenceNumber, Set<String>
+ licenseKeyGroupIds, Set<String> entitlementPoolIds, Set<String>
+ referencingLicenseAgreements){
+ FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlmId, version, id);
+ featureGroup.setVendorLicenseModelId(vlmId);
+ featureGroup.setVersion(version);
+ featureGroup.setId(id);
+ featureGroup.setName(name);
+ featureGroup.setDescription(desc);
+ featureGroup.setPartNumber(partNumber);
+ //featureGroup.setManufacturerReferenceNumber(manufacturerReferenceNumber);
+ featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds);
+ featureGroup.setEntitlementPoolIds(entitlementPoolIds);
+ featureGroup.setReferencingLicenseAgreements(referencingLicenseAgreements);
+
+ return featureGroup;
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception{
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testUpdate(){
+ Set<String> licenseKeyGroupIds;
+ licenseKeyGroupIds = new HashSet<>();
+ licenseKeyGroupIds.add("lkg1");
+
+ Set<String> entitlementPoolIds;
+ entitlementPoolIds = new HashSet<>();
+ entitlementPoolIds.add("ep1");
+
+ Set<String> referencingLicenseAgreements;
+ referencingLicenseAgreements = new HashSet<>();
+ referencingLicenseAgreements.add("la1");
+
+ FeatureGroupEntity featureGroupEntity = updateFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
+ "partNumber", "MRN", licenseKeyGroupIds, entitlementPoolIds,
+ referencingLicenseAgreements);
+
+ doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
+
+ /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
+ featureGroupDao.update(featureGroupEntity);
+ verify(featureGroupDao).update(anyObject());*/
+ }
+
+ @Test
+ public void testUpdateWithoutManufacturingReferenceNumber(){
+ Set<String> licenseKeyGroupIds;
+ licenseKeyGroupIds = new HashSet<>();
+ licenseKeyGroupIds.add("lkg1");
+
+ Set<String> entitlementPoolIds;
+ entitlementPoolIds = new HashSet<>();
+ entitlementPoolIds.add("ep1");
+
+ Set<String> referencingLicenseAgreements;
+ referencingLicenseAgreements = new HashSet<>();
+ referencingLicenseAgreements.add("la1");
+
+ FeatureGroupEntity featureGroupEntity = updateFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
+ "partNumber", null, licenseKeyGroupIds, entitlementPoolIds,
+ referencingLicenseAgreements);
+
+ doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
+
+ /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
+ featureGroupDao.update(featureGroupEntity);
+ verify(featureGroupDao, never()).update(anyObject());*/
+ }
+
+
+}
+
+/*
protected static final Version VERSION01 = new Version(0, 1);
protected static final String USER1 = "FeatureGroupTest_User1";
protected static VendorLicenseManager vendorLicenseManager = new VendorLicenseManagerImpl();
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
index a12d9fcecc..782d93a885 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
@@ -16,36 +16,177 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *//*
+ */
package org.openecomp.sdc.vendorlicense;
-import org.openecomp.core.nosqldb.api.NoSqlDb;
-import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.CommonMethods;
+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.vendorlicense.dao.LicenseKeyGroupDao;
-import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory;
-import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType;
-import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
-import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.types.*;
+import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.openecomp.sdc.versioning.types.VersionInfo;
import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.util.Collection;
-import java.util.Collections;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
public class LicenseKeyGroupTest {
- public static final String LKG1_NAME = "LKG1 name";
+ //JUnit Test Cases using Mockito
+ private final String USER = "lkgTestUser";
+ private final String LKG_NAME = "LKG name";
+ private final String LT_NAME = "LT name";
+
+ @Mock
+ private VendorLicenseFacade vendorLicenseFacade;
+
+ @Mock
+ private LicenseKeyGroupDao licenseKeyGroupDao;
+ @Mock
+ private LimitDao limitDao;
+
+ @InjectMocks
+ @Spy
+ private VendorLicenseManagerImpl vendorLicenseManagerImpl;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ private LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyType type, Set<OperationalScope> operationalScopeChoices,
+ String operationalScopeOther)
+ {
+ LicenseKeyGroupEntity licenseKeyGroupEntity = new LicenseKeyGroupEntity();
+ licenseKeyGroupEntity.setType(type);
+ licenseKeyGroupEntity.setOperationalScope(
+ new MultiChoiceOrOther<>(operationalScopeChoices, operationalScopeOther));
+ return licenseKeyGroupEntity;
+ }
+
+ @Test
+ public void deleteLicenseKeyGroupTest() {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+
+ LicenseKeyGroupEntity licenseKeyGroup =
+ createLicenseKeyGroup(LicenseKeyType.Unique, opScopeChoices, null);
+
+ VersionInfo info = new VersionInfo();
+ Version version = new Version();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ LimitEntity limitEntity = LimitTest.createLimitEntity(LT_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+
+ ArrayList<LimitEntity> limitEntityList = new ArrayList();
+ limitEntityList.add(limitEntity);
+
+ doReturn(licenseKeyGroup).when(licenseKeyGroupDao).get(anyObject());
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(), anyObject(), anyObject(), anyObject());
+ doReturn(true).when(limitDao).isLimitPresent(anyObject());
+ doReturn(limitEntity).when(limitDao).get(anyObject());
+ try {
+ Field limitField = VendorLicenseManagerImpl.class.getDeclaredField("limitDao");
+ limitField.setAccessible(true);
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(limitField, limitField.getModifiers() & ~Modifier.FINAL);
+ limitField.set(null, limitDao);
+
+ Field lkgField = VendorLicenseManagerImpl.class.getDeclaredField("licenseKeyGroupDao");
+ lkgField.setAccessible(true);
+ modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(lkgField, lkgField.getModifiers() & ~Modifier.FINAL);
+ lkgField.set(null, licenseKeyGroupDao);
+ } catch(NoSuchFieldException | IllegalAccessException e)
+ {
+ Assert.fail();
+ }
+
+ vendorLicenseManagerImpl.deleteLicenseKeyGroup(licenseKeyGroup, USER);
+
+ verify(limitDao).delete(anyObject());
+ }
+
+ @Test
+ public void deleteLicenseKeyGroupInvalidTest() {
+ try {
+ Set<OperationalScope> opScopeChoices;
+ opScopeChoices = new HashSet<>();
+ opScopeChoices.add(OperationalScope.Core);
+ opScopeChoices.add(OperationalScope.CPU);
+ opScopeChoices.add(OperationalScope.Network_Wide);
+
+ LicenseKeyGroupEntity licenseKeyGroup =
+ createLicenseKeyGroup(LicenseKeyType.Unique, opScopeChoices, null);
+
+ VersionInfo info = new VersionInfo();
+ Version version = new Version();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ LimitEntity limitEntity = LimitTest.createLimitEntity(LT_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+
+ ArrayList<LimitEntity> limitEntityList = new ArrayList();
+ limitEntityList.add(limitEntity);
+
+ doReturn(licenseKeyGroup).when(licenseKeyGroupDao).get(anyObject());
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(), anyObject(), anyObject(), anyObject());
+ doReturn(false).when(limitDao).isLimitPresent(anyObject());
+
+ try {
+ Field limitField = VendorLicenseManagerImpl.class.getDeclaredField("limitDao");
+ limitField.setAccessible(true);
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(limitField, limitField.getModifiers() & ~Modifier.FINAL);
+ limitField.set(null, limitDao);
+
+ Field lkgField = VendorLicenseManagerImpl.class.getDeclaredField("licenseKeyGroupDao");
+ lkgField.setAccessible(true);
+ modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(lkgField, lkgField.getModifiers() & ~Modifier.FINAL);
+ lkgField.set(null, licenseKeyGroupDao);
+ } catch(NoSuchFieldException | IllegalAccessException e)
+ {
+ Assert.fail();
+ }
+
+ vendorLicenseManagerImpl.deleteLicenseKeyGroup(licenseKeyGroup, USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ /*public static final String LKG1_NAME = "LKG1 name";
private static final Version VERSION01 = new Version(0, 1);
private static final String USER1 = "user1";
public static String vlm1Id;
@@ -179,6 +320,5 @@ public class LicenseKeyGroupTest {
public void testCreateWithRemovedName() {
testCreate(vlm1Id, LKG1_NAME);
}
+ */
}
-
-*/
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LimitTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LimitTest.java
new file mode 100644
index 0000000000..a8d1ed9f65
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LimitTest.java
@@ -0,0 +1,332 @@
+/*-
+ * ============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.vendorlicense;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+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.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
+import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes;
+import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
+import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.openecomp.sdc.versioning.types.VersionInfo;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import static org.mockito.Mockito.when;
+
+public class LimitTest {
+
+ private final String USER1 = "limitTestUser1";
+ private final String LT1_NAME = "LT1 name";
+
+ private static final String VLM_ID = "VLM_ID";
+ private static final Version VERSION = new Version(0, 1);
+ private static final String EPLKG_ID = "ID";
+ private static final String LIMIT1_ID = "limit1";
+ private static final String LIMIT2_ID = "limit2";
+
+ @Mock
+ private VendorLicenseFacade vendorLicenseFacade;
+
+ @Mock
+ private LimitDao limitDao;
+
+ @InjectMocks
+ @Spy
+ private VendorLicenseManagerImpl vendorLicenseManagerImpl;
+
+ public static LimitEntity createLimitEntity(String name, LimitType type, String description,
+ Version version, EntitlementMetric metric,
+ AggregationFunction aggregationFunction, int unit,
+ EntitlementTime time) {
+ LimitEntity limitEntity = new LimitEntity();
+ limitEntity.setName(name);
+ limitEntity.setType(type);
+ limitEntity.setDescription(description);
+ limitEntity.setVersion(version);
+ limitEntity.setMetric(metric);
+ limitEntity.setAggregationFunction(aggregationFunction);
+ limitEntity.setUnit(unit);
+ limitEntity.setTime(time);
+ return limitEntity;
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ try {
+ Field limitField = VendorLicenseManagerImpl.class.getDeclaredField("limitDao");
+ limitField.setAccessible(true);
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ modifiersField.setAccessible(true);
+ modifiersField.setInt(limitField, limitField.getModifiers() & ~Modifier.FINAL);
+ limitField.set(null, limitDao);
+ } catch(NoSuchFieldException | IllegalAccessException e)
+ {
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testUpdateLimit() {
+ Version version = new Version();
+ LimitEntity limitEntity1 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+ LimitEntity limitEntity2 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Tokens,AggregationFunction.Peak,12,EntitlementTime.Month);
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+ doReturn(true).when(limitDao).isLimitPresent(anyObject());
+ doReturn(limitEntity1).when(limitDao).get(anyObject());
+
+ List<LimitEntity> limitEntityList = new ArrayList<>();
+ limitEntityList.add(limitEntity1);
+ limitEntityList.add(limitEntity2);
+ limitEntity1.setId("1234");
+ limitEntity2.setId("1234");
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(),anyObject(),
+ anyObject(),anyObject());
+
+ vendorLicenseManagerImpl.updateLimit(limitEntity2,USER1);
+
+ verify(vendorLicenseFacade).updateLimit(anyObject(), anyObject());
+ }
+
+ @Test
+ public void testUpdateLimitErrorWithSameNameType() {
+ try {
+ Version version = new Version();
+ LimitEntity limitEntity1 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+ LimitEntity limitEntity2 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Tokens,AggregationFunction.Peak,12,EntitlementTime.Month);
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+ doReturn(limitEntity1).when(limitDao).get(anyObject());
+
+ List<LimitEntity> limitEntityList = new ArrayList<>();
+ limitEntityList.add(limitEntity1);
+ limitEntityList.add(limitEntity2);
+ limitEntity1.setId("1234");
+ limitEntity2.setId("9632");
+ doReturn(limitEntityList).when(vendorLicenseFacade).listLimits(anyObject(),anyObject(),
+ anyObject(),anyObject());
+
+ vendorLicenseManagerImpl.updateLimit(limitEntity2,USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(),
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testDeleteLimit() {
+ Version version = new Version();
+ LimitEntity limitEntity = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+ doReturn(true).when(limitDao).isLimitPresent(anyObject());
+ doReturn(limitEntity).when(limitDao).get(anyObject());
+
+ List<LimitEntity> limitEntityList = new ArrayList<>();
+ limitEntityList.add(limitEntity);
+ limitEntity.setId("1234");
+
+ vendorLicenseManagerImpl.deleteLimit(limitEntity,LT1_NAME);
+
+ verify(vendorLicenseManagerImpl).deleteLimit(anyObject(), anyObject());
+ }
+
+ @Test
+ public void testUpdateLimitErrorWithInvalidId() {
+ try {
+ Version version = new Version();
+ LimitEntity limitEntity1 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Core,AggregationFunction.Average,10,EntitlementTime.Hour);
+ LimitEntity limitEntity2 = createLimitEntity(LT1_NAME,LimitType.Vendor,"string",version,
+ EntitlementMetric.Tokens,AggregationFunction.Peak,12,EntitlementTime.Month);
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(version);
+ info.setActiveVersion(version);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+ doReturn(null).when(limitDao).get(anyObject());
+
+ vendorLicenseManagerImpl.updateLimit(limitEntity2,USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(),
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testList() {
+ doReturn(Arrays.asList(
+ createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT1_ID),
+ createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT2_ID)))
+ .when(vendorLicenseFacade).listLimits(VLM_ID, VERSION, EPLKG_ID, USER1);
+
+ final Collection<LimitEntity> limits =
+ vendorLicenseManagerImpl.listLimits(VLM_ID, VERSION, EPLKG_ID, USER1);
+ Assert.assertEquals(limits.size(), 2);
+ for (LimitEntity limit : limits) {
+ Assert.assertEquals(limit.getName(),
+ LIMIT1_ID.equals(limit.getId()) ? LIMIT1_ID+" name" : LIMIT2_ID+" name" );
+ }
+ }
+
+ @Test
+ public void testCreateLimit() {
+ LimitEntity expected = createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT1_ID);
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(VERSION);
+ info.setActiveVersion(VERSION);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ vendorLicenseManagerImpl.createLimit(expected, USER1);
+ verify(vendorLicenseFacade).createLimit(expected,USER1);
+ }
+
+ @Test
+ public void testCreateWithDuplicateName() {
+ LimitEntity expected = createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT1_ID);
+ expected.setType(LimitType.Vendor);
+
+ LimitEntity expectedDiffName = createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT2_ID);
+ expectedDiffName.setName(LIMIT1_ID + " name");
+ expectedDiffName.setType(LimitType.Vendor);
+
+ List<LimitEntity> vfcImageList = new ArrayList<LimitEntity>();
+ vfcImageList.add(expectedDiffName);
+ doReturn(vfcImageList).when(vendorLicenseFacade).listLimits(anyObject(), anyObject(), anyObject(),
+ anyObject());
+
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(VERSION);
+ info.setActiveVersion(VERSION);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ try {
+ vendorLicenseManagerImpl.createLimit(expected, USER1);
+ Assert.fail();
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(ex.code().id(),
+ VendorLicenseErrorCodes.DUPLICATE_LIMIT_NAME_NOT_ALLOWED);
+ }
+ }
+
+ @Test
+ public void testGetNonExistingLimitId_negative() {
+ LimitEntity limit = createLimit(VLM_ID, VERSION, EPLKG_ID, "non existing limit id");
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(VERSION);
+ info.setActiveVersion(VERSION);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ try {
+ vendorLicenseManagerImpl.getLimit(limit , USER1);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testGet() {
+ LimitEntity expected = createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT1_ID);
+ expected.setType(LimitType.Vendor);
+ expected.setValue(100);
+ expected.setUnit(10);
+ expected.setAggregationFunction(AggregationFunction.Average);
+ expected.setMetric(EntitlementMetric.CPU);
+ expected.setTime(EntitlementTime.Day);
+
+ doReturn(true).when(limitDao).isLimitPresent(anyObject());
+ doReturn(expected).when(limitDao).get(anyObject());
+ VersionInfo info = new VersionInfo();
+ info.getViewableVersions().add(VERSION);
+ info.setActiveVersion(VERSION);
+
+ doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+ LimitEntity actual = createLimit(VLM_ID, VERSION, EPLKG_ID, LIMIT1_ID);
+ vendorLicenseManagerImpl.getLimit(actual, USER1);
+ Assert.assertEquals(actual.getId(), expected.getId());
+ Assert.assertEquals(actual.getName(), expected.getName());
+ Assert.assertEquals(actual.getUnit(), expected.getUnit());
+ Assert.assertEquals(actual.getValue(), expected.getValue());
+ Assert.assertEquals(actual.getAggregationFunction().name(), expected.getAggregationFunction()
+ .name());
+ Assert.assertEquals(actual.getMetric().name(), expected.getMetric().name());
+
+ }
+
+ static LimitEntity createLimit(String vlmId, Version version, String epLkgId, String limitId) {
+ LimitEntity limitEntity = new LimitEntity(vlmId, version, epLkgId, limitId);
+ limitEntity.setName(limitId + " name");
+ limitEntity.setDescription(limitId + " desc");
+ limitEntity.setVersion(version);
+ limitEntity.setMetric(EntitlementMetric.CPU);
+ limitEntity.setAggregationFunction(AggregationFunction.Average);
+ limitEntity.setUnit(10);
+ limitEntity.setTime(EntitlementTime.Day);
+ limitEntity.setValue(100);
+ return limitEntity;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java
new file mode 100644
index 0000000000..58db488d86
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java
@@ -0,0 +1,127 @@
+package org.openecomp.sdc.vendorlicense;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.vendorlicense.dao.*;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdc.vendorlicense.facade.impl.VendorLicenseFacadeImpl;
+import org.openecomp.sdc.versioning.VersioningManager;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+/**
+ * Created by diveshm on 7/3/2017.
+ */
+public class VendorLicenseFacadeImplTest {
+ //JUnit Test Cases using Mockito
+ private static final Version VERSION01 = new Version(0, 1);
+ private final String FG1_NAME = "FG1 name";
+
+ @Mock
+ private VendorLicenseModelDao vendorLicenseModelDao;
+
+ @Mock
+ private LicenseAgreementDao licenseAgreementDao;
+
+ @Mock
+ private FeatureGroupDao featureGroupDao;
+
+ @Mock
+ private EntitlementPoolDao entitlementPoolDao;
+
+ @Mock
+ private LicenseKeyGroupDao licenseKeyGroupDao;
+
+ @Mock
+ private VersioningManager versioningManager;
+
+ @InjectMocks
+ @Spy
+ private VendorLicenseFacadeImpl vendorLicenseFacadeImpl;
+
+ public FeatureGroupEntity createFeatureGroup(String vlmId, Version version, String id, String name, String desc,
+ String partNumber, String manufacturerReferenceNumber, Set<String>
+ licenseKeyGroupIds, Set<String> entitlementPoolIds, Set<String>
+ referencingLicenseAgreements){
+ FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlmId, version, id);
+ featureGroup.setVendorLicenseModelId(vlmId);
+ featureGroup.setVersion(version);
+ featureGroup.setId(id);
+ featureGroup.setName(name);
+ featureGroup.setDescription(desc);
+ featureGroup.setPartNumber(partNumber);
+ //featureGroup.setManufacturerReferenceNumber(manufacturerReferenceNumber);
+ featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds);
+ featureGroup.setEntitlementPoolIds(entitlementPoolIds);
+ featureGroup.setReferencingLicenseAgreements(referencingLicenseAgreements);
+
+ return featureGroup;
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception{
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testCreate(){
+ Set<String> licenseKeyGroupIds;
+ licenseKeyGroupIds = new HashSet<>();
+ licenseKeyGroupIds.add("lkg1");
+
+ Set<String> entitlementPoolIds;
+ entitlementPoolIds = new HashSet<>();
+ entitlementPoolIds.add("ep1");
+
+ Set<String> referencingLicenseAgreements;
+ referencingLicenseAgreements = new HashSet<>();
+ referencingLicenseAgreements.add("la1");
+
+ FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
+ "partNumber", "MRN", licenseKeyGroupIds, entitlementPoolIds,
+ referencingLicenseAgreements);
+
+ doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
+
+ /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
+ featureGroupDao.create(featureGroupEntity);
+ verify(featureGroupDao).create(anyObject());*/
+ }
+
+ @Test
+ public void testCreateWithoutManufacturerReferenceNumber(){
+ Set<String> licenseKeyGroupIds;
+ licenseKeyGroupIds = new HashSet<>();
+ licenseKeyGroupIds.add("lkg1");
+
+ Set<String> entitlementPoolIds;
+ entitlementPoolIds = new HashSet<>();
+ entitlementPoolIds.add("ep1");
+
+ Set<String> referencingLicenseAgreements;
+ referencingLicenseAgreements = new HashSet<>();
+ referencingLicenseAgreements.add("la1");
+
+ FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
+ "partNumber", null, licenseKeyGroupIds, entitlementPoolIds,
+ referencingLicenseAgreements);
+ doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
+
+ /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
+ featureGroupDao.create(featureGroupEntity);
+
+ verify(featureGroupDao, never()).create(anyObject());*/
+
+ }
+}
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
new file mode 100644
index 0000000000..58e6f9e5e2
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/C36B4399FCB942B19D493F839CFA10E2_0_1_General_6E70545C4854465D82DBDB9BCBEF0FB5
@@ -0,0 +1 @@
+bla bla \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip
new file mode 100644
index 0000000000..ca55484a3c
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip
Binary files differ
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 ee779dab89..ba95d4a3e4 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
@@ -15,6 +15,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
@@ -170,6 +175,16 @@
<artifactId>openecomp-sdc-activity-log-api</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-tosca-generator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-tosca-generator-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
<build>
<plugins>
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup
new file mode 100644
index 0000000000..839a192ec5
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup
@@ -0,0 +1,159 @@
+<?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-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.10.19</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons.io.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>backend</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManager.java
new file mode 100644
index 0000000000..65bceb9864
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManager.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+
+public interface ComputeManager {
+
+ Collection<ListComputeResponse> listCompute(String vspId, Version version, String
+ componentId, String user);
+
+ ComputeEntity createCompute(ComputeEntity compute, String user);
+
+ CompositionEntityResponse<ComputeData> getCompute(String vspId, Version version, String
+ componentId, String computeFlavorId, String user);
+
+ QuestionnaireResponse getComputeQuestionnaire(String vspId, Version version, String
+ componentId, String computeFlavorId, String user);
+
+ void updateComputeQuestionnaire(String vspId, Version version, String componentId, String
+ computeId, String
+ questionnaireData, String user);
+
+ CompositionEntityValidationData updateCompute(ComputeEntity compute, String user);
+
+ void deleteCompute(String vspId, Version version,String componentId, String computeFlavorId,
+ String user);
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManagerFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManagerFactory.java
new file mode 100644
index 0000000000..26b5bdad17
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeManagerFactory.java
@@ -0,0 +1,11 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ComputeManagerFactory extends AbstractComponentFactory<ComputeManager> {
+
+ public static ComputeManagerFactory getInstance() {
+ return AbstractFactory.getInstance(ComputeManagerFactory.class);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManager.java
new file mode 100644
index 0000000000..51ba2f4d40
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManager.java
@@ -0,0 +1,34 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+
+public interface DeploymentFlavorManager {
+
+
+ DeploymentFlavorEntity createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity,
+ String user);
+
+ Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version,
+ String user);
+
+ CompositionEntityResponse<DeploymentFlavor> getDeploymentFlavor(String vspId, Version version,
+ String deploymentFlavorId,
+ String user);
+
+ CompositionEntityResponse<DeploymentFlavor> getDeploymentFlavorSchema(String vspId, Version
+ version, String user);
+
+ void deleteDeploymentFlavor(String vspId, Version version, String deploymentFlavorId, String
+ user);
+
+ CompositionEntityValidationData updateDeploymentFlavor(DeploymentFlavorEntity
+ deploymentFlavorEntity, String user);
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManagerFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManagerFactory.java
new file mode 100644
index 0000000000..a367057b63
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorManagerFactory.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class DeploymentFlavorManagerFactory extends
+ AbstractComponentFactory<DeploymentFlavorManager> {
+
+ public static DeploymentFlavorManagerFactory getInstance() {
+ return AbstractFactory.getInstance(DeploymentFlavorManagerFactory.class);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManager.java
new file mode 100644
index 0000000000..6bbfc0b69a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManager.java
@@ -0,0 +1,33 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+
+public interface ImageManager {
+ ImageEntity createImage(ImageEntity imageEntity, String user);
+
+ CompositionEntityResponse<Image> getImageSchema(String vspId, String user);
+
+ Collection<ImageEntity> listImages(String vspId, Version version, String componentId,
+ String user);
+
+ CompositionEntityResponse<Image> getImage(String vspId, Version version, String componentId,
+ String imageId, String user);
+
+ QuestionnaireResponse getImageQuestionnaire(String vspId, Version version, String
+ componentId, String imageId, String user);
+
+ void deleteImage(String vspId, Version version, String componentId, String imageId, String user);
+
+ CompositionEntityValidationData updateImage(ImageEntity imageEntity, String user);
+
+ void updateImageQuestionnaire(String vspId, Version version, String componentId, String imageId,
+ String
+ questionnaireData, String user);
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManagerFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManagerFactory.java
new file mode 100644
index 0000000000..f844186a03
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ImageManagerFactory.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ImageManagerFactory extends AbstractComponentFactory<ImageManager> {
+
+ public static ImageManagerFactory getInstance() {
+ return AbstractFactory.getInstance(ImageManagerFactory.class);
+ }
+}
+
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ManualVspToscaManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ManualVspToscaManager.java
new file mode 100644
index 0000000000..c9a5206383
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/ManualVspToscaManager.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+public interface ManualVspToscaManager {
+
+ public VspModelInfo gatherVspInformation(String vspId, Version version, String user);
+
+ public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo);
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManager.java
index 7d2db68c1d..f5e34a01be 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManager.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManager.java
@@ -20,18 +20,19 @@
package org.openecomp.sdc.vendorsoftwareproduct;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
import org.openecomp.sdc.versioning.dao.types.Version;
import java.io.InputStream;
-public interface MibManager {
+public interface MonitoringUploadsManager {
void delete(String vspId, Version version, String componentId,
- ArtifactType artifactType, String user);
+ MonitoringUploadType monitoringUploadType, String user);
void upload(InputStream object, String filename, String vspId, Version version,
- String componentId, ArtifactType artifactType, String user);
+ String componentId, MonitoringUploadType monitoringUploadType, String user);
- MibUploadStatus listFilenames(String vspId, Version version, String componentId, String user);
+ MonitoringUploadStatus listFilenames(String vspId, Version version, String componentId,
+ String user);
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManagerFactory.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManagerFactory.java
index f25658bf0f..eb4271be16 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MibManagerFactory.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/MonitoringUploadsManagerFactory.java
@@ -23,9 +23,10 @@ package org.openecomp.sdc.vendorsoftwareproduct;
import org.openecomp.core.factory.api.AbstractComponentFactory;
import org.openecomp.core.factory.api.AbstractFactory;
-public abstract class MibManagerFactory extends AbstractComponentFactory<MibManager> {
+public abstract class MonitoringUploadsManagerFactory
+ extends AbstractComponentFactory<MonitoringUploadsManager> {
- public static MibManagerFactory getInstance() {
- return AbstractFactory.getInstance(MibManagerFactory.class);
+ public static MonitoringUploadsManagerFactory getInstance() {
+ return AbstractFactory.getInstance(MonitoringUploadsManagerFactory.class);
}
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManager.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManager.java
index 7e9a002ad1..738e267ca0 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManager.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductManager.java
@@ -20,6 +20,7 @@
package org.openecomp.sdc.vendorsoftwareproduct;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
@@ -30,6 +31,7 @@ import org.openecomp.sdc.versioning.types.VersionInfo;
import java.io.File;
import java.io.IOException;
+import java.util.Collection;
import java.util.List;
public interface VendorSoftwareProductManager {
@@ -73,6 +75,7 @@ public interface VendorSoftwareProductManager {
File getInformationArtifact(String vspId, Version version, String user);
-
String fetchValidationVsp(String user);
+
+ Collection<ComputeEntity> getComputeByVsp(String vspId, Version version, String user);
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComponentErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComponentErrorBuilder.java
new file mode 100644
index 0000000000..78d2ef866a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComponentErrorBuilder.java
@@ -0,0 +1,21 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+
+public class ComponentErrorBuilder {
+
+ private static final String VFC_INVALID_MISSING_IMAGE_MSG =
+ "All VFC need to have atleast a single Image specified. Please fix the VFC Images and re-submit the VSP";
+
+
+ public static ErrorCode VfcMissingImageErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.VFC_INVALID);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder
+ .withMessage(String.format(VFC_INVALID_MISSING_IMAGE_MSG));
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeleteNicErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeleteNicErrorBuilder.java
new file mode 100644
index 0000000000..3ecf6f1a2e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeleteNicErrorBuilder.java
@@ -0,0 +1,18 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class DeleteNicErrorBuilder {
+ private static final String DELETE_NIC_NOT_ALLOWED_MSG =
+ "NIC cannot be deleted for VSPs onboarded with HEAT.";
+
+ public static ErrorCode getDeleteNicForHeatOnboardedVspErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.DELETE_NIC_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DELETE_NIC_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+}
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
new file mode 100644
index 0000000000..63d716504b
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
@@ -0,0 +1,95 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+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.";
+ private static final String INVALID_COMPONENT_COMPUTE_ASSOCIATION_MSG
+ ="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.";
+ 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.";
+ private static final String INVALID_COMPUTE_FLAVOR_ID_MSG =
+ "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.";
+
+ 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.";
+
+ public static ErrorCode getAddDeploymentNotSupportedHeatOnboardErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getFeatureGroupNotexistErrorBuilder( String featureGroupId, String
+ 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()));
+ return builder.build();
+ }
+
+ public static ErrorCode getDuplicateVfcAssociationErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getInvalidAssociationErrorBuilder(){
+ 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_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getDuplicateDeploymentFlavorModelErrorBuilder(String name, String vspId){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED_MSG,name,vspId));
+ return builder.build();
+ }
+ public static ErrorCode getInvalidComputeIdErrorBuilder( String computeFlavorId, String
+ 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));
+ return builder.build();
+ }
+
+ public static ErrorCode getInvalidComponentComputeAssociationErrorBuilder(){
+ 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));
+ return builder.build();
+ }
+
+ public static ErrorCode getFeatureGroupMandatoryErrorBuilder(){
+ 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));
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateComputeInComponentErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateComputeInComponentErrorBuilder.java
new file mode 100644
index 0000000000..b242b7169c
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateComputeInComponentErrorBuilder.java
@@ -0,0 +1,52 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.UPDATE_COMPUTE_NOT_ALLOWED;
+
+
+public class DuplicateComputeInComponentErrorBuilder {
+
+ private static final String DUPLICATE_COMPUTE_NAME_NOT_ALLOWED_MSG =
+ "Invalid request, Compute with name %s already exists for component with ID %s.";
+ private static final String COMPUTE_HEAT_READONLY_ATTR_MSG = "Update of attribute %s not allowed "
+ + "for VSP onboarded via HEAT.";
+ private static final String COMPUTE_MANUAL_READONLY_ATTR_MSG = "Update of attribute %s not allowed "
+ + "for VSP onboarded manually.";
+
+
+ private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+
+ public DuplicateComputeInComponentErrorBuilder(String computeName, String componentId ){
+ builder.withId(VendorSoftwareProductErrorCodes.DUPLICATE_COMPUTE_NAME_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DUPLICATE_COMPUTE_NAME_NOT_ALLOWED_MSG,computeName,
+ componentId));
+ }
+
+ /**
+ * Gets duplicate compute name error builder.
+ *
+ * @return the duplicate compute name error builder
+ */
+ public static ErrorCode getDuplicateComputeNameErrorBuilder(String computeName, String componenetId) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.DUPLICATE_COMPUTE_NAME_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DUPLICATE_COMPUTE_NAME_NOT_ALLOWED_MSG, computeName, componenetId ));
+ return builder.build();
+ }
+
+ public static ErrorCode getComputeHeatReadOnlyErrorBuilder(String name) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(UPDATE_COMPUTE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(COMPUTE_HEAT_READONLY_ATTR_MSG, name));
+ return builder.build();
+ }
+
+
+ public ErrorCode build() {
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateNicInComponentErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateNicInComponentErrorBuilder.java
new file mode 100644
index 0000000000..741dddb4f5
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DuplicateNicInComponentErrorBuilder.java
@@ -0,0 +1,22 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class DuplicateNicInComponentErrorBuilder {
+
+ private static final String DUPLICATE_NIC_NAME_NOT_ALLOWED_MSG =
+ "Invalid request, NIC with name %s already exist for component with ID %s.";
+
+ private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+
+ public DuplicateNicInComponentErrorBuilder(String nicName, String componentId ){
+ builder.withId(VendorSoftwareProductErrorCodes.DUPLICATE_NIC_NAME_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DUPLICATE_NIC_NAME_NOT_ALLOWED_MSG,nicName,componentId));
+ }
+ public ErrorCode build() {
+ return builder.build();
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
new file mode 100644
index 0000000000..95bff60479
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
@@ -0,0 +1,59 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_IMAGE_NAME_NOT_ALLOWED;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.UPDATE_IMAGE_NOT_ALLOWED;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.VFC_IMAGE_INVALID_FORMAT;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+/**
+ * The Image error builder.
+ */
+public class ImageErrorBuilder {
+
+ private static final String VFC_IMAGE_DUPLICATE_NAME_MSG = "Invalid request, Image with name %s"
+ + " already exists for component with ID %s.";
+
+ private static final String IMAGE_INVALID_FORMAT_MSG = "The format value doesn't meet the "
+ + "expected attribute value.";
+
+ private static final String IMAGE_HEAT_READONLY_ATTR_MSG = "Update of attribute %s not allowed "
+ + "for VSP onboarded via HEAT.";
+
+
+ /**
+ * Gets duplicate image name error builder.
+ *
+ * @return the duplicate image name error builder
+ */
+ public static ErrorCode getDuplicateImageNameErrorBuilder(String imageName, String componenetId) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(DUPLICATE_IMAGE_NAME_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(VFC_IMAGE_DUPLICATE_NAME_MSG, imageName, componenetId ));
+ return builder.build();
+ }
+
+ /**
+ * Gets invalid image format error builder.
+ *
+ * @return the invalid image format error builder
+ */
+ public static ErrorCode getInvalidImageFormatErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VFC_IMAGE_INVALID_FORMAT);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(IMAGE_INVALID_FORMAT_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getImageHeatReadOnlyErrorBuilder(String name) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(UPDATE_IMAGE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(IMAGE_HEAT_READONLY_ATTR_MSG, name));
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MibUploadErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MonitoringUploadErrorBuilder.java
index bffe805618..5fc29d5a4f 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MibUploadErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/MonitoringUploadErrorBuilder.java
@@ -24,11 +24,12 @@ import org.openecomp.sdc.common.errors.BaseErrorBuilder;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.versioning.dao.types.Version;
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.MIB_UPLOAD_INVALID;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.MONITORING_UPLOAD_INVALID;
-public class MibUploadErrorBuilder extends BaseErrorBuilder {
+public class MonitoringUploadErrorBuilder extends BaseErrorBuilder {
private static final String UPLOAD_INVALID_DETAILED_MSG =
- "MIB uploaded for vendor software product with Id %s and version %s is invalid: %s";
+ "Monitoring file uploaded for vendor software product with Id %s and version %s is invalid:" +
+ " %s";
/**
@@ -38,8 +39,9 @@ public class MibUploadErrorBuilder extends BaseErrorBuilder {
* @param version the version
* @param error the error
*/
- public MibUploadErrorBuilder(String vendorSoftwareProductId, Version version, String error) {
- getErrorCodeBuilder().withId(MIB_UPLOAD_INVALID);
+ public MonitoringUploadErrorBuilder(String vendorSoftwareProductId, Version version,
+ String error) {
+ getErrorCodeBuilder().withId(MONITORING_UPLOAD_INVALID);
getErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION);
getErrorCodeBuilder().withMessage(String.format(UPLOAD_INVALID_DETAILED_MSG,
vendorSoftwareProductId, version == null ? null : version.toString(), error));
@@ -50,8 +52,8 @@ public class MibUploadErrorBuilder extends BaseErrorBuilder {
*
* @param errorMessage the error message
*/
- public MibUploadErrorBuilder(String errorMessage) {
- getErrorCodeBuilder().withId(MIB_UPLOAD_INVALID);
+ public MonitoringUploadErrorBuilder(String errorMessage) {
+ getErrorCodeBuilder().withId(MONITORING_UPLOAD_INVALID);
getErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION);
getErrorCodeBuilder().withMessage(errorMessage);
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicInternalNetworkErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicInternalNetworkErrorBuilder.java
new file mode 100644
index 0000000000..0850d2e704
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicInternalNetworkErrorBuilder.java
@@ -0,0 +1,46 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.NETWORK_TYPE_UPDATE_NOT_ALLOWED;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class NicInternalNetworkErrorBuilder {
+ private static final String NULL_NETWORKID_NOT_ALLOWED_MSG =
+ "Internal Networks are currently not supported for VSP created Manually, so please fix all the NIC to be of Type External and re-submit the VSP.";
+
+ private static final String NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK_MSG =
+ "Invalid request, Network Description not allowed for Internal Networks";
+ private static final String NETWORK_TYPE_UPDATE_NOT_ALLOWED_MSG =
+ "Invalid request, Network Type Update not allowed for a Nic";
+
+
+ public static ErrorCode getNicNullNetworkIdInternalNetworkIdErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.NULL_NETWORKID_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(NULL_NETWORKID_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+
+ public static ErrorCode getNetworkDescriptionInternalNetworkErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK_MSG));
+ return builder.build();
+ }
+
+
+ public static ErrorCode getNetworkTypeErrorBuilder(){
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(NETWORK_TYPE_UPDATE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(NETWORK_TYPE_UPDATE_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicNetworkIdNotAllowedExternalNetworkErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicNetworkIdNotAllowedExternalNetworkErrorBuilder.java
new file mode 100644
index 0000000000..2d75f81fcd
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicNetworkIdNotAllowedExternalNetworkErrorBuilder.java
@@ -0,0 +1,19 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class NicNetworkIdNotAllowedExternalNetworkErrorBuilder {
+ private static final String NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK_MSG =
+ "Invalid request,NetworkId not allowed for External Networks";
+ private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ public NicNetworkIdNotAllowedExternalNetworkErrorBuilder(){
+ builder.withId(VendorSoftwareProductErrorCodes.NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK_MSG));
+ }
+
+ public ErrorCode build() {
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NotSupportedHeatOnboardMethodErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NotSupportedHeatOnboardMethodErrorBuilder.java
new file mode 100644
index 0000000000..7801df8fd7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NotSupportedHeatOnboardMethodErrorBuilder.java
@@ -0,0 +1,76 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DELETE_IMAGE_NOT_ALLOWED;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class NotSupportedHeatOnboardMethodErrorBuilder {
+ private static final String ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG =
+ "NIC cannot be added for VSPs onboarded with HEAT.";
+ private static final String ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG =
+ "Compute flavor cannot be added for VSPs onboarded with HEAT.";
+ private static final String IMAGE_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG =
+ "Image cannot be added for VSPs onboarded with HEAT.";
+ private static final String DELETE_IMAGE_NOT_ALLOWED_MSG =
+ "Image cannot be deleted for VSPs onboarded with HEAT.";
+ private static final String DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_MSG =
+ "Deployment Flavor cannot be deleted for VSPs onboarded with HEAT.";
+ private static final String EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_MSG =
+ "Deployment Flavor cannot be edited for VSPs onboarded with HEAT.";
+
+
+ public static ErrorCode getAddNicNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getAddComputeNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getAddImageNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(IMAGE_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getDelImageNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(DELETE_IMAGE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DELETE_IMAGE_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getDelDeploymentFlavorNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+ public static ErrorCode getUpdateDfNotSupportedHeatOnboardMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/OnboardingMethodErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/OnboardingMethodErrorBuilder.java
new file mode 100644
index 0000000000..8aad900102
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/OnboardingMethodErrorBuilder.java
@@ -0,0 +1,46 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes
+ .VSP_INVALID_ONBOARDING_METHOD;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes
+ .VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+/**
+ * The type Onboarding method error builder.
+ */
+public class OnboardingMethodErrorBuilder {
+
+ private static final String VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED_MSG =
+ "onboardingMethod update is not allowed.";
+ private static final String VSP_INVALID_ONBOARDING_METHOD_MSG =
+ "The onboardingMethod value doesn't meet the expected attribute value.";
+
+ /**
+ * Gets onboarding update error.
+ *
+ * @return the onboarding update error
+ */
+ public static ErrorCode getOnboardingUpdateError() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED_MSG));
+ return builder.build();
+ }
+
+ /**
+ * Get invalid onboarding method error builder error code.
+ *
+ * @return the error code
+ */
+ public static ErrorCode getInvalidOnboardingMethodErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VSP_INVALID_ONBOARDING_METHOD);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(VSP_INVALID_ONBOARDING_METHOD_MSG));
+ return builder.build();
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductInvalidErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductInvalidErrorBuilder.java
index 8fe2bfc396..4a84c83338 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductInvalidErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductInvalidErrorBuilder.java
@@ -28,6 +28,8 @@ public class VendorSoftwareProductInvalidErrorBuilder {
private static final String VSP_INVALID_MSG =
"Vendor software product with Id %s and version %s is invalid - does not contain "
+ "service model.";
+ private static final String VSP_INVALID_MISSING_DEPLOYMENT_FLAVOR_MSG ="VSP has to have a " +
+ "minimum of one Deployment Flavor defined for being able to be instantiated.Please add a Deployment Flavor and re-submit the VSP.";
private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
/**
@@ -36,14 +38,27 @@ public class VendorSoftwareProductInvalidErrorBuilder {
* @param vendorSoftwareProductId the vendor software product id
* @param version the version
*/
- public VendorSoftwareProductInvalidErrorBuilder(String vendorSoftwareProductId, Version version) {
+ public static ErrorCode VendorSoftwareProductMissingServiceModelErrorBuilder(String
+ vendorSoftwareProductId,
+ Version version) {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
builder.withId(VendorSoftwareProductErrorCodes.VSP_INVALID);
builder.withCategory(ErrorCategory.APPLICATION);
builder
.withMessage(String.format(VSP_INVALID_MSG, vendorSoftwareProductId, version.toString()));
+ return builder.build();
}
- public ErrorCode build() {
+ /**
+ * Instantiates a new Vendor software product invalid error builder.
+ */
+ public static ErrorCode VspMissingDeploymentFlavorErrorBuilder() {
+ ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+ builder.withId(VendorSoftwareProductErrorCodes.VSP_INVALID);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder
+ .withMessage(String.format(VSP_INVALID_MISSING_DEPLOYMENT_FLAVOR_MSG));
return builder.build();
}
+
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerFactoryImpl.java
index a2aaf2f8f5..05a088f76a 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerFactoryImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerFactoryImpl.java
@@ -24,6 +24,8 @@ import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
public class ComponentManagerFactoryImpl extends ComponentManagerFactory {
@@ -31,7 +33,8 @@ public class ComponentManagerFactoryImpl extends ComponentManagerFactory {
new ComponentManagerImpl(
ComponentDaoFactory.getInstance().createInterface(),
CompositionEntityDataManagerFactory.getInstance().createInterface(),
- NicManagerFactory.getInstance().createInterface()
+ NicManagerFactory.getInstance().createInterface(),
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface()
);
@Override
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
index 75a5377ec3..42c8d12b3a 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
@@ -20,9 +20,13 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
+import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.VFC_NODE_TYPE_PREFIX;
+
import org.apache.commons.collections4.CollectionUtils;
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.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
@@ -32,9 +36,11 @@ import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.errors.CompositionEditNotAllowedErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
@@ -46,6 +52,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComponentCo
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComponentQuestionnaireSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -59,14 +66,16 @@ public class ComponentManagerImpl implements ComponentManager {
private ComponentDao componentDao;
private CompositionEntityDataManager compositionEntityDataManager;
private NicManager nicManager;
+ private VendorSoftwareProductInfoDao vspInfoDao;
public ComponentManagerImpl(
ComponentDao componentDao,
CompositionEntityDataManager compositionEntityDataManager,
- NicManager nicManager) {
+ NicManager nicManager, VendorSoftwareProductInfoDao vspInfoDao) {
this.componentDao = componentDao;
this.compositionEntityDataManager = compositionEntityDataManager;
this.nicManager = nicManager;
+ this.vspInfoDao = vspInfoDao;
}
@Override
@@ -79,7 +88,7 @@ public class ComponentManagerImpl implements ComponentManager {
@Override
public void deleteComponents(String vspId, Version version, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
- if (!isManual(vspId, version)) {
+ if (!vspInfoDao.isManual(vspId, version)) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
LoggerTragetServiceName.DELETE_COMPONENT, ErrorLevel.ERROR.name(),
LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't delete component");
@@ -91,7 +100,7 @@ public class ComponentManagerImpl implements ComponentManager {
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
}
- @Override
+ /*@Override
public ComponentEntity createComponent(ComponentEntity component, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id", component.getId());
@@ -107,6 +116,91 @@ public class ComponentManagerImpl implements ComponentManager {
//componentDao.updateVspLatestModificationTime(component.getVspId(), component.getVersion());
mdcDataDebugMessage.debugExitMessage("VSP id", component.getId());
return null;
+ }*/
+
+ @Override
+ public ComponentEntity createComponent(ComponentEntity component, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", component.getId());
+ /*Version activeVersion =
+ getVersionInfo(component.getVspId(), VersionableEntityAction.Write, user)
+ .getActiveVersion();
+ component.setVersion(activeVersion);*/
+
+ final String VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG =
+ "VFCs cannot be added for VSPs onboarded with HEAT.";
+
+ ComponentEntity createdComponent = null;
+
+ if (!vspInfoDao.isManual(component.getVspId(), component.getVersion())) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create component");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING)
+ .withMessage(VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING_MSG).build());
+ } else {
+ validateComponentManual(component);
+ updateComponentName(component);
+ createdComponent = createComponent(component);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", component.getId());
+
+ return createdComponent;
+ }
+
+ private ComponentEntity createComponent(ComponentEntity component) {
+ return compositionEntityDataManager.createComponent(component);
+ }
+
+ private void updateComponentName(ComponentEntity component) {
+ final String NAME_PREFIX = VFC_NODE_TYPE_PREFIX + "heat.";
+ ComponentData data = component.getComponentCompositionData();
+ data.setName(NAME_PREFIX + data.getDisplayName());
+ component.setComponentCompositionData(data);
+ }
+
+ private void validateComponentManual(ComponentEntity component) {
+ final String VSP_VFC_COUNT_EXCEED_MSG = "Creation of only one VFC per "
+ + "VSP allowed.";
+
+ final String VSP_VFC_DUPLICATE_NAME_MSG = "VFC with specified name "
+ + "already present in given VSP.";
+
+ Collection<ComponentEntity> vspComponentList = listComponents(component.getVspId()
+ , component.getVersion(), null);
+ if (vspComponentList.size() >= 1) //1707 release only supports 1 VFC in VSP (manual creation)
+ {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create component: "
+ + "vsp component count exceed");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VSP_VFC_COUNT_EXCEED)
+ .withMessage(VSP_VFC_COUNT_EXCEED_MSG).build());
+ }
+ if (!isVfcNameUnique(vspComponentList,
+ component.getComponentCompositionData().getDisplayName())) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create component: "
+ + "vsp component duplicate name");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME)
+ .withMessage(VSP_VFC_DUPLICATE_NAME_MSG).build());
+ }
+ }
+
+ private boolean isVfcNameUnique(Collection<ComponentEntity> component, String displayName) {
+ for (ComponentEntity comp : component) {
+ if (comp.getComponentCompositionData().getDisplayName().equalsIgnoreCase(displayName)) {
+ return false;
+ }
+ }
+ return true;
}
@Override
@@ -116,13 +210,19 @@ public class ComponentManagerImpl implements ComponentManager {
ComponentEntity retrieved =
getComponent(component.getVspId(), component.getVersion(), component.getId());
+ if (vspInfoDao.isManual(component.getVspId(), component.getVersion())) {
+ validateComponentUpdateManual(component, retrieved, user);
+ }
+
+
ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(isManual(component.getVspId(), component.getVersion()));
+ schemaInput.setManual(vspInfoDao.isManual(component.getVspId(), component.getVersion()));
schemaInput.setComponent(retrieved.getComponentCompositionData());
CompositionEntityValidationData validationData = compositionEntityDataManager
.validateEntity(component, SchemaTemplateContext.composition, schemaInput);
if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ updateComponentName(component);
componentDao.update(component);
//componentDao.updateVspLatestModificationTime(component.getVspId(), component.getVersion());
}
@@ -132,6 +232,54 @@ public class ComponentManagerImpl implements ComponentManager {
return validationData;
}
+ private void validateComponentUpdateManual(ComponentEntity component, ComponentEntity
+ retrieved, String user) {
+ Collection<ComponentEntity> vspComponentList = listComponents(component.getVspId()
+ , component.getVersion(), user);
+ //Removing check from name as we will ignore passed value
+ // and re-genarate new name from displayName
+ // List<String> invalidParameters = new LinkedList<>();
+ // if (!component.getComponentCompositionData().getName().equals(retrieved
+ // .getComponentCompositionData().getName())) {
+ // invalidParameters.add(NAME);
+ // }
+ // if (!invalidParameters.isEmpty()) {
+ // String msg = String.format(VFC_ATTRIBUTE_UPDATE_NOT_ALLOWED_MSG, StringUtils
+ // .join(invalidParameters, ", "));
+ // MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ // LoggerTragetServiceName.UPDATE_COMPONENT, ErrorLevel.ERROR.name(),
+ // LoggerErrorCode.DATA_ERROR.getErrorCode(), msg);
+ //
+ // throw new CoreException(
+ // new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ // .withId(VendorSoftwareProductErrorCodes.VFC_ATTRIBUTE_UPDATE_NOT_ALLOWED)
+ // .withMessage(msg).build());
+ // }
+
+ //VFC name should be unique within VSP
+ //Removing VFC with same ID from list to avoid self compare
+ for(ComponentEntity ce : vspComponentList) {
+ if (ce.getId().equals(component.getId())) {
+ vspComponentList.remove(ce);
+ break;
+ }
+ }
+ if (!isVfcNameUnique(vspComponentList, component.getComponentCompositionData()
+ .getDisplayName())) {
+ final String VSP_VFC_DUPLICATE_NAME_MSG = "VFC with specified name "
+ + "already present in given VSP.";
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_COMPONENT, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Component with same name already " +
+ "exists for specified VSP");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME)
+ .withMessage(VSP_VFC_DUPLICATE_NAME_MSG).build());
+
+ }
+ }
+
public CompositionEntityResponse<ComponentData> getComponent(String vspId, Version version,
String componentId, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
@@ -139,7 +287,7 @@ public class ComponentManagerImpl implements ComponentManager {
ComponentData component = componentEntity.getComponentCompositionData();
ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(isManual(vspId, version));
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
schemaInput.setComponent(component);
CompositionEntityResponse<ComponentData> response = new CompositionEntityResponse<>();
@@ -155,7 +303,7 @@ public class ComponentManagerImpl implements ComponentManager {
public void deleteComponent(String vspId, Version version, String componentId, String user) {
mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
- if (!isManual(vspId, version)) {
+ if (!vspInfoDao.isManual(vspId, version)) {
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
LoggerTragetServiceName.DELETE_COMPONENT, ErrorLevel.ERROR.name(),
LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't delete component");
@@ -228,7 +376,7 @@ public class ComponentManagerImpl implements ComponentManager {
schemaInput);
}
- private boolean isManual(String vspId, Version version) {
+ /*private boolean isManual(String vspId, Version version) {
return false;
- }
+ }*/
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerFactoryImpl.java
new file mode 100644
index 0000000000..71985fa83e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerFactoryImpl.java
@@ -0,0 +1,27 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
+
+public class ComputeManagerFactoryImpl extends ComputeManagerFactory {
+
+ private static final ComputeManager INSTANCE =
+ new ComputeManagerImpl(
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(),
+ ComputeDaoFactory.getInstance().createInterface(),
+ CompositionEntityDataManagerFactory.getInstance().createInterface(),
+ DeploymentFlavorDaoFactory.getInstance().createInterface(),
+ ComponentDaoFactory.getInstance().createInterface()
+
+ );
+
+ @Override
+ public ComputeManager createInterface() {
+ return INSTANCE;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
new file mode 100644
index 0000000000..a2d1d708c1
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
@@ -0,0 +1,503 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import org.apache.commons.collections4.CollectionUtils;
+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.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+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.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateComputeInComponentErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComputeCompositionSchemaInput;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.VersioningUtil;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ComputeManagerImpl implements ComputeManager {
+
+ private static final MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ComputeDao computeDao;
+ private CompositionEntityDataManager compositionEntityDataManager;
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ private DeploymentFlavorDao deploymentFlavorDao;
+ private ComponentDao componentDao;
+ private static final String MANUAL = "Manual";
+
+ public ComputeManagerImpl(
+ VendorSoftwareProductInfoDao vspInfoDao,
+ ComputeDao computeDao,
+ CompositionEntityDataManager compositionEntityDataManager,
+ DeploymentFlavorDao deploymentFlavorDao,
+ ComponentDao componentDao
+ ) {
+ this.computeDao = computeDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+ this.vspInfoDao = vspInfoDao;
+ this.deploymentFlavorDao = deploymentFlavorDao;
+ this.componentDao = componentDao;
+ }
+
+ @Override
+ public ComputeEntity createCompute(ComputeEntity compute, String user) {
+ ComputeEntity createdCompute = null;
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", compute.getVspId(),
+ compute.getComponentId());
+
+ /*Version activeVersion =
+ getVersionInfo(compute.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
+ compute.setVersion(activeVersion);*/
+ //if (!isManual(compute.getVspId(), activeVersion)) {
+ if (!vspInfoDao.isManual(compute.getVspId(), compute.getVersion())) {
+ ErrorCode onboardingMethodUpdateErrorCode = NotSupportedHeatOnboardMethodErrorBuilder
+ .getAddComputeNotSupportedHeatOnboardMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ onboardingMethodUpdateErrorCode.message());
+ throw new CoreException(onboardingMethodUpdateErrorCode);
+ } else {
+ //validateComponentId(compute.getVspId(),compute.getVersion(),compute.getComponentId());
+ validateCompute(compute);
+ createdCompute = createCompute(compute);
+ }
+
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, component id", compute.getVspId(), compute.getComponentId());
+
+ return createdCompute;
+ }
+
+ private ComputeEntity createCompute(ComputeEntity compute) {
+
+ return compositionEntityDataManager.createCompute(compute);
+ }
+
+ private void validateCompute(ComputeEntity compute) {
+ Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+ (),compute.getComponentId());
+
+ if (!isComputeNameUnique(vfcComputeList,compute.getComputeCompositionData().getName())) {
+ final ErrorCode duplicateComputeInComponentErrorBuilder =
+ new DuplicateComputeInComponentErrorBuilder(compute.getComputeCompositionData().getName(),
+ compute.getComponentId()).build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateComputeInComponentErrorBuilder.message());
+ throw new CoreException(duplicateComputeInComponentErrorBuilder);
+ }
+
+ }
+
+ private void validateComputeUpdate(ComputeEntity compute) {
+ Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+ (),compute.getComponentId());
+
+ for (ComputeEntity ce : vfcComputeList) {
+ if (ce.getId().equals(compute.getId())) {
+ vfcComputeList.remove(ce);
+ break;
+ }
+ }
+
+ if (!isComputeNameUnique(vfcComputeList,compute.getComputeCompositionData().getName())) {
+ final ErrorCode duplicateComputeInComponentErrorBuilder =
+ new DuplicateComputeInComponentErrorBuilder(compute.getComputeCompositionData().getName(),
+ compute.getComponentId()).build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateComputeInComponentErrorBuilder.message());
+ throw new CoreException(duplicateComputeInComponentErrorBuilder);
+ }
+
+ }
+
+ @Override
+ public Collection<ListComputeResponse> listCompute(String vspId, Version version,
+ String componentId, String user) {
+
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
+ //validateComponentId(vspId, version, componentId);
+ ComputeEntity entity = new ComputeEntity(vspId, version, componentId, null);
+ Collection<ComputeEntity> computes = computeDao.list(entity);
+
+ Collection<ListComputeResponse> computeResponse =
+ getListComputeResponse(vspId, version, user, computes);
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
+
+ return computeResponse;
+ }
+
+ private Collection<ListComputeResponse> getListComputeResponse(String vspId, Version version,
+ String user,
+ Collection<ComputeEntity> computes) {
+ Set<String> vspComputes = getComputeAssociatedWithDepFlavors(vspId, version, user);
+ Collection<ListComputeResponse> computeResponse = new ArrayList<ListComputeResponse>();
+ for(ComputeEntity computeEntity : computes) {
+ ListComputeResponse response = new ListComputeResponse();
+ response.setComputeEntity(computeEntity);
+ if(vspComputes.contains(computeEntity.getId())) {
+ response.setAssociatedWithDeploymentFlavor(true);
+ } else {
+ response.setAssociatedWithDeploymentFlavor(false);
+ }
+ computeResponse.add(response);
+ }
+ return computeResponse;
+ }
+
+ private Set<String> getComputeAssociatedWithDepFlavors(String vspId, Version version,
+ String user) {
+ final Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorDao.list(new DeploymentFlavorEntity(vspId, version, null));
+ Set<String> vspComputes = new HashSet<String>();
+ for(DeploymentFlavorEntity entity : deploymentFlavorEntities) {
+ final List<ComponentComputeAssociation> componentComputeAssociations =
+ entity.getDeploymentFlavorCompositionData().getComponentComputeAssociations();
+ if(componentComputeAssociations != null && !componentComputeAssociations.isEmpty()) {
+ for(ComponentComputeAssociation association : componentComputeAssociations) {
+ vspComputes.add(association.getComputeFlavorId());
+ }
+ }
+ }
+ return vspComputes;
+ }
+
+ private boolean isComputeNameUnique(Collection<ComputeEntity> vfcComputeList, String name) {
+ for (ComputeEntity compute : vfcComputeList) {
+ if (compute.getComputeCompositionData().getName().equalsIgnoreCase(name)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private Collection<ComputeEntity> listCompute(String vspId, Version version,String componentId) {
+ Collection<ComputeEntity> computeEntities =
+ computeDao.list(new ComputeEntity(vspId, version, componentId, null));
+
+ return computeEntities;
+ }
+
+ @Override
+ public CompositionEntityResponse<ComputeData> getCompute(String vspId, Version version,
+ String componentId,
+ String computeFlavorId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ ComputeEntity computeEntity = getCompute(vspId, version, componentId, computeFlavorId);
+ ComputeData compute = computeEntity.getComputeCompositionData();
+
+ ComputeCompositionSchemaInput schemaInput = new ComputeCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
+ schemaInput.setCompute(compute);
+
+ CompositionEntityResponse<ComputeData> response = new CompositionEntityResponse<>();
+ response.setId(computeFlavorId);
+ response.setData(compute);
+ response.setSchema(getComputeCompositionSchema(schemaInput));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ return response;
+ }
+
+ private ComputeEntity getCompute(String vspId, Version version, String componentId, String
+ computeFlavorId) {
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity retrieved = computeDao.get(new ComputeEntity(vspId, version, componentId,
+ computeFlavorId));
+ VersioningUtil
+ .validateEntityExistence(retrieved, new ComputeEntity(vspId, version, componentId,
+ computeFlavorId), VspDetails.ENTITY_TYPE);
+ return retrieved;
+ }
+
+ /*private void validateComponentId(String vspId, Version version, String componentId) {
+ ComponentEntity retrivedComponent = componentDao.get(new ComponentEntity(vspId, version,
+ componentId));
+ VersioningUtil
+ .validateEntityExistence(retrivedComponent, new ComponentEntity(vspId, version,
+ componentId),VspDetails.ENTITY_TYPE);
+ }*/
+
+ @Override
+ public QuestionnaireResponse getComputeQuestionnaire(String vspId, Version version, String
+ componentId, String computeId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, componentId", vspId, componentId, computeId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ //validateComponentId(vspId,version,componentId);
+ QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity computeQuestionnaire = computeDao.getQuestionnaireData(vspId, version, componentId, computeId);
+ VersioningUtil
+ .validateEntityExistence(computeQuestionnaire, new ComputeEntity(vspId, version, componentId,
+ computeId), VspDetails.ENTITY_TYPE);
+ questionnaireResponse.setData(computeQuestionnaire.getQuestionnaireData());
+ questionnaireResponse.setSchema(getComputeQuestionnaireSchema(null));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId,
+ componentId, computeId);
+
+ return questionnaireResponse;
+ }
+
+
+ protected String getComputeQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.compute,
+ schemaInput);
+ }
+
+
+ @Override
+ public void updateComputeQuestionnaire(String vspId, Version version, String componentId, String
+ computeId,
+ String questionnaireData, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
+ getComponent(vspId, activeVersion, componentId);*/
+ ComputeEntity retrieved = computeDao.get(new ComputeEntity(vspId,version,componentId,
+ computeId));
+ VersioningUtil.validateEntityExistence(retrieved, new ComputeEntity(vspId, version,
+ componentId, computeId), VspDetails.ENTITY_TYPE);
+
+ computeDao.updateQuestionnaireData(vspId, version, componentId, computeId, questionnaireData);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeId);
+ }
+
+ @Override
+ public CompositionEntityValidationData updateCompute(ComputeEntity compute, String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, component id", compute.getVspId(), compute.getComponentId(),
+ compute.getId());
+
+ /*Version activeVersion =
+ getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
+ image.setVersion(activeVersion);*/
+
+ ComputeEntity retrieved = getComputeEntity(compute.getVspId(), compute.getVersion(), compute.getComponentId(),
+ compute.getId());
+
+ if(!vspInfoDao.isManual(compute.getVspId(), compute.getVersion())) {
+ final ComputeData computeCompositionData = compute.getComputeCompositionData();
+ final String name = computeCompositionData.getName();
+ //final String format = computeCompositionData.getFormat();
+ validateHeatVspComputeUpdate("Name", name, retrieved.getComputeCompositionData()
+ .getName());
+ /*validateHeatVspComputeUpdate("format", format, retrieved.getComputeCompositionData()
+ .getFormat());*/
+ }
+
+ Collection<ComputeEntity> vfcComputeList = listComputes(compute.getVspId() ,
+ compute.getVersion(), compute.getComponentId());
+
+ //Set to null so that retrieved object is equal to one in list and gets removed.
+ retrieved.setQuestionnaireData(null);
+ vfcComputeList.remove(retrieved);
+ if(vspInfoDao.isManual(compute.getVspId(), compute.getVersion()))
+ validateVfcCompute(compute, vfcComputeList);
+
+ //Set format to default value in order to handle FTL validation when compute format is null
+ /*if(compute.getComputeCompositionData().getFormat() == null)
+ compute.getComputeCompositionData().setFormat(ComputeFormat.qcow2.name());*/
+
+ ComputeCompositionSchemaInput schemaInput = new ComputeCompositionSchemaInput();
+ schemaInput.setCompute(compute.getComputeCompositionData());
+
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .validateEntity(compute, SchemaTemplateContext.composition, schemaInput);
+ if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ computeDao.update(compute);
+ }
+
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, component id", compute.getVspId(), compute.getComponentId(),
+ compute.getId());
+
+ return validationData;
+ }
+
+ private void validateHeatVspComputeUpdate(String name, String value, String retrivedValue) {
+
+ if(value != null && !value.equals(retrivedValue)) {
+
+ final ErrorCode updateHeatComputeErrorBuilder =
+ DuplicateComputeInComponentErrorBuilder.getComputeHeatReadOnlyErrorBuilder(name);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ updateHeatComputeErrorBuilder.message());
+ throw new CoreException(updateHeatComputeErrorBuilder);
+ }
+ }
+
+ private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList) {
+ if (isComputeNameDuplicate(vfcComputeList,compute.getComputeCompositionData().getName(), compute.getId())) {
+ ErrorCode errorCode = DuplicateComputeInComponentErrorBuilder.getDuplicateComputeNameErrorBuilder(compute
+ .getComputeCompositionData().getName(), compute.getComponentId());
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+ errorCode.id(),errorCode.message());
+
+ throw new CoreException(errorCode);
+ }
+ }
+
+ private boolean isComputeNameDuplicate(Collection<ComputeEntity> computes, String name, String computeId) {
+ for (ComputeEntity compute : computes) {
+ if (compute.getComputeCompositionData().getName().equals(name) && !compute.getId().equals(computeId)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ private ComputeEntity getComputeEntity(String vspId, Version version, String componentId,
+ String computeId) {
+ //validateComponentId(vspId,version,componentId);
+ ComputeEntity computeEntity = computeDao.get(new ComputeEntity(vspId, version, componentId, computeId));
+ VersioningUtil.validateEntityExistence(computeEntity, new ComputeEntity(vspId, version, componentId,
+ computeId), VspDetails.ENTITY_TYPE);
+ return computeEntity;
+ }
+
+ private Collection<ComputeEntity> listComputes(String vspId, Version version, String componentId) {
+ return computeDao.list(new ComputeEntity(vspId, version, componentId, null));
+ }
+
+ @Override
+ public void deleteCompute(String vspId, Version version, String componentId, String
+ computeFlavorId, String user) {
+ final String VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG =
+ "Composition entities may not be created / deleted for Vendor Software Product "
+ + "whose entities were uploaded";
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();*/
+ if (!vspInfoDao.isManual(vspId, version)) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.DELETE_COMPUTE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't delete compute");
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withCategory(ErrorCategory.APPLICATION)
+ .withId(VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED)
+ .withMessage(VSP_COMPOSITION_EDIT_NOT_ALLOWED_MSG).build());
+ }
+ ComputeEntity retrived = getCompute(vspId,version,componentId,computeFlavorId);
+ if (retrived != null){
+ deleteComputeFromDeploymentFlavors(vspId,version,computeFlavorId);
+ computeDao.delete(new ComputeEntity(vspId, version, componentId, computeFlavorId));
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, compute id", vspId,
+ componentId, computeFlavorId);
+ }
+
+ private void deleteComputeFromDeploymentFlavors(String vspId, Version activeVersion,
+ String computeFlavorId) {
+ //Collection<DeploymentFlavorEntity> listDF = listDeploymentFlavors(vspId, activeVersion);
+ Collection<DeploymentFlavorEntity> listDF = deploymentFlavorDao.list(new DeploymentFlavorEntity
+ (vspId, activeVersion, null));
+ for(DeploymentFlavorEntity df : listDF) {
+ DeploymentFlavorEntity deploymentFlavorEntity=removeComputeFromDF(df, computeFlavorId);
+ if(deploymentFlavorEntity!=null)
+ deploymentFlavorDao.update(deploymentFlavorEntity);
+ }
+ }
+
+ private DeploymentFlavorEntity removeComputeFromDF(DeploymentFlavorEntity df, String
+ computeFlavorId) {
+ DeploymentFlavor flavor = df.getDeploymentFlavorCompositionData();
+ List<ComponentComputeAssociation> associations = flavor.getComponentComputeAssociations();
+ if (associations != null) {
+ List<ComponentComputeAssociation> updatedAssociations = new ArrayList<>();
+ for (ComponentComputeAssociation ca : associations) {
+ if (ca.getComputeFlavorId() != null && ca.getComputeFlavorId().equals(computeFlavorId)) {
+ ComponentComputeAssociation updateCaremoveCompute = new ComponentComputeAssociation();
+ updateCaremoveCompute.setComponentId(ca.getComponentId());
+ updatedAssociations.add(updateCaremoveCompute);
+ } else {
+ updatedAssociations.add(ca);
+ }
+ }
+ flavor.setComponentComputeAssociations(updatedAssociations);
+ df.setDeploymentFlavorCompositionData(flavor);
+ return df;
+ }
+ return null;
+ }
+
+ protected String getComputeCompositionSchema(SchemaTemplateInput schemaInput){
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return SchemaGenerator.generate(SchemaTemplateContext.composition, CompositionEntityType.compute, schemaInput);
+ }
+
+ /*boolean isManual(String vspId, Version version) {
+
+ VspDetails vsp = vspInfoDao.get(new VspDetails(vspId, version));
+ String onboardingMethod = vsp.getOnboardingMethod();
+ if (MANUAL.equals(onboardingMethod)) {
+ return true;
+ }
+ return false;
+ }*/
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerFactoryImpl.java
new file mode 100644
index 0000000000..aef8be1fef
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerFactoryImpl.java
@@ -0,0 +1,31 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+
+public class DeploymentFlavorManagerFactoryImpl extends DeploymentFlavorManagerFactory {
+
+ private static final DeploymentFlavorManager INSTANCE = new DeploymentFlavorManagerImpl(
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(),
+ DeploymentFlavorDaoFactory.getInstance().createInterface(),
+ CompositionEntityDataManagerFactory.getInstance().createInterface(),
+ ComponentDaoFactory.getInstance().createInterface(),
+ ComputeDaoFactory.getInstance().createInterface()
+ );
+
+ @Override
+ public DeploymentFlavorManager createInterface() {
+ return INSTANCE;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
new file mode 100644
index 0000000000..7069d778a7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
@@ -0,0 +1,396 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+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.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DeploymentFlavorErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.DeploymentFlavorCompositionSchemaInput;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.VersioningUtil;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+public class DeploymentFlavorManagerImpl implements DeploymentFlavorManager {
+
+ private static final MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ private DeploymentFlavorDao deploymentFlavorDao;
+ private CompositionEntityDataManager compositionEntityDataManager;
+ private ComponentDao componentDao;
+ private ComputeDao computeDao;
+
+ public DeploymentFlavorManagerImpl(
+ VendorSoftwareProductInfoDao vspInfoDao,
+ DeploymentFlavorDao deploymentFlavorDao,
+ CompositionEntityDataManager compositionEntityDataManager,
+ ComponentDao componentDao,
+ ComputeDao computeDao
+
+ ) {
+
+ this.vspInfoDao = vspInfoDao;
+ this.deploymentFlavorDao = deploymentFlavorDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+ this.componentDao = componentDao;
+ this.computeDao = computeDao;
+
+ }
+
+ @Override
+ public Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+ return listDeploymentFlavors(vspId, version);
+ }
+
+ private Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version) {
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorDao.list(new DeploymentFlavorEntity(vspId, version, null));
+ return deploymentFlavorEntities;
+ }
+
+ @Override
+ public DeploymentFlavorEntity createDeploymentFlavor(
+ DeploymentFlavorEntity deploymentFlavorEntity, String user) {
+ DeploymentFlavorEntity createDeploymentFlavor = null;
+ mdcDataDebugMessage.debugEntryMessage("VSP id ", deploymentFlavorEntity.getVspId());
+ /*Version activeVersion =
+ getVersionInfo(deploymentFlavorEntity.getVspId(), VersionableEntityAction.Write, user)
+ .getActiveVersion();
+ deploymentFlavorEntity.setVersion(activeVersion);*/
+
+ if (!vspInfoDao.isManual(deploymentFlavorEntity.getVspId(),
+ deploymentFlavorEntity.getVersion())) {
+ ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
+ .getAddDeploymentNotSupportedHeatOnboardErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), deploymentFlavorErrorBuilder.message());
+ throw new CoreException(deploymentFlavorErrorBuilder);
+ } else {
+ validateDeploymentFlavor(deploymentFlavorEntity, user, deploymentFlavorEntity.getVersion());
+ createDeploymentFlavor =
+ compositionEntityDataManager.createDeploymentFlavor(deploymentFlavorEntity);
+ }
+ return createDeploymentFlavor;
+ }
+
+ private void validateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity, String
+ user, Version activeVersion) {
+ //Validation for unique model.
+ Collection<DeploymentFlavorEntity> listDeploymentFlavors =
+ listDeploymentFlavors(deploymentFlavorEntity.getVspId(),
+ activeVersion);
+ isDeploymentFlavorModelDuplicate(deploymentFlavorEntity, listDeploymentFlavors);
+
+ List<String> featureGroups =
+ getFeatureGroupListForVsp(deploymentFlavorEntity.getVspId(), user, activeVersion);
+ String featureGroup = deploymentFlavorEntity.getDeploymentFlavorCompositionData()
+ .getFeatureGroupId();
+ if (featureGroup != null && featureGroup.trim().length()>0) {
+ if (isEmpty(featureGroups) || (!(validFeatureGroup(featureGroups, featureGroup)))) {
+ ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
+ .getFeatureGroupNotexistErrorBuilder(featureGroup, deploymentFlavorEntity.getVspId(),
+ activeVersion);
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), deploymentFlavorErrorBuilder.message());
+ throw new CoreException(deploymentFlavorErrorBuilder);
+ }
+ }
+
+ validateComponentComputeAssociation(deploymentFlavorEntity, activeVersion);
+ }
+
+ private void isDeploymentFlavorModelDuplicate(DeploymentFlavorEntity deploymentFlavorEntity,
+ Collection<DeploymentFlavorEntity> listDeploymentFlavors) {
+ listDeploymentFlavors.forEach(deploymentFlavor -> {
+ if (deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel().equalsIgnoreCase(
+ deploymentFlavor.getDeploymentFlavorCompositionData().getModel())) {
+ ErrorCode deploymentFlavorModelErrorBuilder = DeploymentFlavorErrorBuilder
+ .getDuplicateDeploymentFlavorModelErrorBuilder(
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel(),
+ deploymentFlavorEntity.getVspId());
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), deploymentFlavorModelErrorBuilder.message());
+ throw new CoreException(deploymentFlavorModelErrorBuilder);
+ }
+ });
+ }
+
+ private List<String> getFeatureGroupListForVsp(String vspId,
+ String user, Version activeVersion) {
+ /*VersionedVendorSoftwareProductInfo versionedVendorSoftwareProductInfo = getVspDetails(
+ vspId,activeVersion, user);
+ return versionedVendorSoftwareProductInfo.getVspDetails()
+ .getFeatureGroups();*/
+
+ final VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, activeVersion));
+ return vspDetails.getFeatureGroups();
+ }
+
+ private boolean isEmpty(Collection coll) {
+ return (coll == null || coll.isEmpty());
+ }
+
+ private boolean validFeatureGroup(List<String> featureGroups, String featureGroupId) {
+ Iterator<String> iterator = featureGroups.iterator();
+ boolean valid = false;
+ while (iterator.hasNext()) {
+ String fgId = iterator.next().trim();
+ if (fgId.equals(featureGroupId)) {
+ valid = true;
+ break;
+ } else {
+ valid = false;
+ }
+ }
+ return valid;
+ }
+
+ private void validateComponentComputeAssociation(DeploymentFlavorEntity deploymentFlavorEntity,
+ Version activeVersion) {
+ List<ComponentComputeAssociation> componentComputeAssociationList = deploymentFlavorEntity
+ .getDeploymentFlavorCompositionData().getComponentComputeAssociations();
+ List<String> vfcList = new ArrayList<>();
+ if (!isEmpty(componentComputeAssociationList)) {
+ componentComputeAssociationList.forEach(componentComputeAssociation -> {
+ if ((componentComputeAssociation.getComponentId() == null || componentComputeAssociation
+ .getComponentId().trim().length() == 0) &&
+ (componentComputeAssociation
+ .getComputeFlavorId() != null && componentComputeAssociation
+ .getComputeFlavorId().trim().length() > 0)) {
+ ErrorCode invalidAssociationErrorBuilder = DeploymentFlavorErrorBuilder
+ .getInvalidAssociationErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), invalidAssociationErrorBuilder.message());
+ throw new CoreException(invalidAssociationErrorBuilder);
+ } else if (componentComputeAssociation.getComponentId() != null &&
+ componentComputeAssociation.getComponentId().trim().length() > 0 ) {
+ ComponentEntity component = getComponent(deploymentFlavorEntity.getVspId(), activeVersion,
+ componentComputeAssociation.getComponentId());
+ if (componentComputeAssociation
+ .getComputeFlavorId() != null && componentComputeAssociation
+ .getComputeFlavorId().trim().length() > 0 ) {
+ ComputeEntity computeFlavor = computeDao.get(new ComputeEntity(deploymentFlavorEntity
+ .getVspId(), activeVersion, componentComputeAssociation.getComponentId(),
+ componentComputeAssociation.getComputeFlavorId()));
+ if (computeFlavor == null) {
+ ErrorCode invalidComputeIdErrorBuilder = DeploymentFlavorErrorBuilder
+ .getInvalidComputeIdErrorBuilder(componentComputeAssociation.getComputeFlavorId(),
+ componentComputeAssociation.getComponentId());
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ invalidComputeIdErrorBuilder.message());
+ throw new CoreException(invalidComputeIdErrorBuilder);
+ }
+ }
+ vfcList.add(componentComputeAssociation.getComponentId());
+ }
+ });
+ Map<String, Integer> frequencyMapping = CollectionUtils.getCardinalityMap(vfcList);
+
+ for (Integer vfcCount : frequencyMapping.values()) {
+ if (vfcCount != 1) {
+ ErrorCode duplicateVfcAssociationErrorBuilder = DeploymentFlavorErrorBuilder
+ .getDuplicateVfcAssociationErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateVfcAssociationErrorBuilder.message());
+ throw new CoreException(duplicateVfcAssociationErrorBuilder);
+ }
+ }
+ }
+ }
+
+ private ComponentEntity getComponent(String vspId, Version version, String componentId) {
+ ComponentEntity retrieved = componentDao.get(new ComponentEntity(vspId, version, componentId));
+ VersioningUtil
+ .validateEntityExistence(retrieved, new ComponentEntity(vspId, version, componentId),
+ VspDetails.ENTITY_TYPE);
+ return retrieved;
+ }
+
+ @Override
+ public CompositionEntityResponse<DeploymentFlavor> getDeploymentFlavor(String vspId,
+ Version version,
+ String deploymentFlavorId,
+ String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, deployment flavor id", vspId, deploymentFlavorId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ DeploymentFlavorEntity deploymentFlavorEntity = getDeploymentFlavor(vspId,version,
+ deploymentFlavorId);
+ DeploymentFlavor deploymentFlavor = deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+ DeploymentFlavorCompositionSchemaInput schemaInput = new
+ DeploymentFlavorCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
+ schemaInput.setDeploymentFlavor(deploymentFlavor);
+ List<String> featureGroups =
+ getFeatureGroupListForVsp(vspId, user, version);
+ schemaInput.setFeatureGroupIds(featureGroups);
+ CompositionEntityResponse<DeploymentFlavor> response = new CompositionEntityResponse<>();
+ response.setId(deploymentFlavorId);
+ response.setSchema((SchemaGenerator
+ .generate(SchemaTemplateContext.composition, CompositionEntityType.deployment,
+ schemaInput)));
+ response.setData(deploymentFlavor);
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, deployment flavor id ", vspId, deploymentFlavorId);
+
+ return response;
+ }
+
+ private DeploymentFlavorEntity getDeploymentFlavor(String vspId, Version version, String
+ deploymentFlavorId) {
+ DeploymentFlavorEntity retrieved = deploymentFlavorDao.get(new DeploymentFlavorEntity(vspId,
+ version, deploymentFlavorId));
+ VersioningUtil
+ .validateEntityExistence(retrieved, new DeploymentFlavorEntity(vspId, version,
+ deploymentFlavorId ), VspDetails.ENTITY_TYPE);
+ return retrieved;
+ }
+
+ @Override
+ public CompositionEntityResponse<DeploymentFlavor> getDeploymentFlavorSchema(String vspId,
+ Version version,
+ String user) {
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+ DeploymentFlavorCompositionSchemaInput schemaInput= new
+ DeploymentFlavorCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
+ List<String> featureGroups =
+ getFeatureGroupListForVsp(vspId, user, version);
+ schemaInput.setFeatureGroupIds(featureGroups);
+ CompositionEntityResponse<DeploymentFlavor> response = new CompositionEntityResponse<>();
+ response.setSchema((SchemaGenerator
+ .generate(SchemaTemplateContext.composition, CompositionEntityType.deployment,
+ schemaInput)));
+ return response;
+ }
+
+ @Override
+ public void deleteDeploymentFlavor(String vspId, Version version, String deploymentFlavorId,
+ String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, deployment flavor id", vspId, deploymentFlavorId);
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();*/
+ DeploymentFlavorEntity deploymentFlavorEntity = getDeploymentFlavor(vspId,version,
+ deploymentFlavorId);
+ if (!vspInfoDao.isManual(vspId, version)) {
+ final ErrorCode deleteDeploymentFlavorErrorBuilder =
+ NotSupportedHeatOnboardMethodErrorBuilder
+ .getDelDeploymentFlavorNotSupportedHeatOnboardMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.DELETE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ deleteDeploymentFlavorErrorBuilder.message());
+ throw new CoreException(deleteDeploymentFlavorErrorBuilder);
+ }
+ if(deploymentFlavorEntity != null) {
+ deploymentFlavorDao.delete(new DeploymentFlavorEntity(vspId, version, deploymentFlavorId));
+
+ }
+ mdcDataDebugMessage
+ .debugExitMessage("VSP id, deployment flavor id", vspId, deploymentFlavorId);
+ }
+
+ public CompositionEntityValidationData updateDeploymentFlavor(DeploymentFlavorEntity
+ deploymentFlavorEntity, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, deploymentFlavor id", deploymentFlavorEntity
+ .getVspId(), deploymentFlavorEntity.getId());
+ /*Version activeVersion =
+ getVersionInfo(deploymentFlavorEntity.getVspId(), VersionableEntityAction.Write, user)
+ .getActiveVersion();*/
+
+ if (!vspInfoDao.isManual(deploymentFlavorEntity.getVspId(),
+ deploymentFlavorEntity.getVersion())) {
+ final ErrorCode updateDeploymentFlavorErrorBuilder =
+ NotSupportedHeatOnboardMethodErrorBuilder
+ .getUpdateDfNotSupportedHeatOnboardMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ updateDeploymentFlavorErrorBuilder.message());
+ throw new CoreException(updateDeploymentFlavorErrorBuilder);
+ }
+ //deploymentFlavorEntity.setVersion(activeVersion);
+ DeploymentFlavorEntity retrieved =
+ getDeploymentFlavor(deploymentFlavorEntity.getVspId(), deploymentFlavorEntity.getVersion(),
+ deploymentFlavorEntity.getId());
+
+
+ Collection<DeploymentFlavorEntity> listDeploymentFlavors = listDeploymentFlavors
+ (deploymentFlavorEntity.getVspId(), deploymentFlavorEntity.getVersion());
+ listDeploymentFlavors.remove(retrieved);
+ isDeploymentFlavorModelDuplicate(deploymentFlavorEntity, listDeploymentFlavors);
+
+ //validateComponentComputeAssociation(deploymentFlavorEntity, activeVersion);
+ validateComponentComputeAssociation(deploymentFlavorEntity, deploymentFlavorEntity.getVersion());
+
+ DeploymentFlavorCompositionSchemaInput schemaInput = new
+ DeploymentFlavorCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(deploymentFlavorEntity.getVspId(),
+ deploymentFlavorEntity.getVersion()));
+ schemaInput.setDeploymentFlavor(retrieved.getDeploymentFlavorCompositionData());
+
+ List<String> featureGroups =
+ getFeatureGroupListForVsp(deploymentFlavorEntity.getVspId(), user,
+ deploymentFlavorEntity.getVersion());
+ schemaInput.setFeatureGroupIds(featureGroups);
+
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .validateEntity(deploymentFlavorEntity, SchemaTemplateContext.composition, schemaInput);
+ if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ deploymentFlavorDao.update(deploymentFlavorEntity);
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, deploymentFlavor id",
+ deploymentFlavorEntity.getVspId(), deploymentFlavorEntity.getId());
+ return validationData;
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerFactoryImpl.java
new file mode 100644
index 0000000000..9689615c70
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerFactoryImpl.java
@@ -0,0 +1,24 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
+
+public class ImageManagerFactoryImpl extends ImageManagerFactory {
+
+ private static final ImageManager INSTANCE =
+ new ImageManagerImpl(
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(),
+ ImageDaoFactory.getInstance().createInterface(),
+ CompositionEntityDataManagerFactory.getInstance().createInterface()
+ );
+
+ @Override
+ public ImageManager createInterface() {
+ return INSTANCE;
+ }
+
+}
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
new file mode 100644
index 0000000000..e180138119
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
@@ -0,0 +1,359 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+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.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ImageFormat;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.image.ImageDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ImageCompositionSchemaInput;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.VersioningUtil;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionableEntityAction;
+
+import java.util.Collection;
+
+public class ImageManagerImpl implements ImageManager {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ private ImageDao imageDao;
+ private CompositionEntityDataManager compositionEntityDataManager;
+
+ public ImageManagerImpl(
+ VendorSoftwareProductInfoDao vspInfoDao,
+ ImageDao imageDao,
+ CompositionEntityDataManager compositionEntityDataManager
+
+ ) {
+
+ this.vspInfoDao = vspInfoDao;
+ this.imageDao = imageDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+
+ }
+
+ @Override
+ public ImageEntity createImage(ImageEntity imageEntity, String user) {
+ /*Version activeVersion = getVersionInfo(imageEntity.getVspId(),
+ VersionableEntityAction.Write, user).getActiveVersion();
+
+ imageEntity.setVersion(activeVersion);*/
+ if (!vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion())) {
+
+ ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder
+ .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ 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(imageEntity, vfcImageList);
+ compositionEntityDataManager.createImage(imageEntity);
+ return imageEntity;
+ }
+
+ @Override
+ public Collection<ImageEntity> listImages(String vspId, Version version, String componentId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ Collection<ImageEntity> imageEntities = listImages(vspId, version, componentId);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+
+ return imageEntities;
+ }
+
+ private Collection<ImageEntity> listImages(String vspId, Version version, String componentId) {
+ return imageDao.list(new ImageEntity(vspId, version, componentId, null));
+ }
+
+ @Override
+ public CompositionEntityResponse getImageSchema(String vspId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, image id", vspId);
+
+ CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
+ ImageCompositionSchemaInput inputSchema = new ImageCompositionSchemaInput();
+ Image image = new Image();
+ //image.setFormat(ImageFormat.qcow2.name());
+ inputSchema.setImage(image);
+ response.setSchema(getImageCompositionSchema(inputSchema));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, image id", vspId);
+ return response;
+ }
+
+ @Override
+ public CompositionEntityResponse<Image> getImage(String vspId, Version version, String
+ componentId, String imageId, String user) {
+
+ mdcDataDebugMessage.debugEntryMessage("VSP id, componentId, image id", vspId, componentId,
+ imageId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));*/
+
+ ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
+
+ Image image = imageEntity.getImageCompositionData();
+ //Set format to default value in order to handle FTL validation when image format is null
+ /*if(image.getFormat() == null)
+ image.setFormat(ImageFormat.qcow2.name());*/
+
+ ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
+ schemaInput.setImage(image);
+
+ CompositionEntityResponse<Image> response = new CompositionEntityResponse<>();
+ response.setId(imageId);
+ response.setData(image);
+ response.setSchema(getImageCompositionSchema(schemaInput));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, componentId, image id", vspId, componentId,
+ imageId);
+
+ return response;
+ }
+
+ @Override
+ public QuestionnaireResponse getImageQuestionnaire(String vspId, Version version, String
+ componentId, String imageId, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+
+ /*version = VersioningUtil
+ .resolveVersion(version, getVersionInfo(vspId, VersionableEntityAction.Read, user));
+ validateComponentId(vspId,version,componentId);*/
+ QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
+ //validateComponentId(vspId,version,componentId);
+
+ ImageEntity retrieved = imageDao.getQuestionnaireData(vspId, version, componentId, imageId);
+ VersioningUtil.validateEntityExistence(retrieved, new ImageEntity(vspId, version, componentId,
+ imageId), ComponentEntity.ENTITY_TYPE);
+ questionnaireResponse.setData(retrieved.getQuestionnaireData());
+ questionnaireResponse.setSchema(getImageQuestionnaireSchema(null));
+
+ mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+
+ return questionnaireResponse;
+ }
+
+ @Override
+ public void deleteImage(String vspId, Version version, String componentId, String imageId, String
+ user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, component id", vspId, componentId, imageId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
+ ComponentEntity component = getComponent(vspId, activeVersion, componentId);*/
+ ImageEntity imageEntity = getImageEntity(vspId, version, componentId, imageId);
+ if (!vspInfoDao.isManual(vspId, version)) {
+ final ErrorCode deleteImageErrorBuilder =
+ NotSupportedHeatOnboardMethodErrorBuilder
+ .getDelImageNotSupportedHeatOnboardMethodErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ 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);
+ }
+
+ private void validateHeatVspImageUpdate(String name, String value, String retrivedValue) {
+
+ if(value != null && !value.equals(retrivedValue)) {
+
+ final ErrorCode updateHeatImageErrorBuilder =
+ ImageErrorBuilder.getImageHeatReadOnlyErrorBuilder(name);
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_IMAGE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ updateHeatImageErrorBuilder.message());
+ throw new CoreException(updateHeatImageErrorBuilder);
+ }
+ }
+
+ @Override
+ public CompositionEntityValidationData updateImage(ImageEntity image, String user) {
+ mdcDataDebugMessage
+ .debugEntryMessage("VSP id, component id", image.getVspId(), image.getComponentId(),
+ image.getId());
+
+ /*Version activeVersion =
+ getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
+ image.setVersion(activeVersion);*/
+
+ ImageEntity retrieved = getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(),
+ image.getId());
+
+ if(!vspInfoDao.isManual(image.getVspId(), image.getVersion())) {
+ final Image imageCompositionData = image.getImageCompositionData();
+ final String fileName = imageCompositionData.getFileName();
+ //final String format = imageCompositionData.getFormat();
+ validateHeatVspImageUpdate("fileName", fileName, retrieved.getImageCompositionData()
+ .getFileName());
+ /*validateHeatVspImageUpdate("format", format, retrieved.getImageCompositionData()
+ .getFormat());*/
+ }
+
+ Collection<ImageEntity> vfcImageList = listImages(image.getVspId() ,
+ 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(image, vfcImageList);
+
+ //Set format to default value in order to handle FTL validation when image format is null
+ /*if(image.getImageCompositionData().getFormat() == null)
+ image.getImageCompositionData().setFormat(ImageFormat.qcow2.name());*/
+
+ ImageCompositionSchemaInput schemaInput = new ImageCompositionSchemaInput();
+ schemaInput.setImage(image.getImageCompositionData());
+
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .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());
+
+ return validationData;
+ }
+
+ @Override
+ public void updateImageQuestionnaire(String vspId, Version version, String componentId, String
+ imageId, String questionnaireData, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id, imageId", vspId, componentId,
+ imageId);
+
+ getImageEntity(vspId, version, componentId, imageId);
+
+ /*Version activeVersion =
+ getVersionInfo(vspId, VersionableEntityAction.Write, user).getActiveVersion();
+
+ getComponent(vspId, activeVersion, componentId);*/
+
+ final ImageDetails image = JsonUtil.json2Object(questionnaireData, ImageDetails.class);
+ final String format = image.getFormat();
+ try {
+ if (format != null) {
+ final ImageFormat imageFormat = ImageFormat.valueOf(format);
+ }
+ } catch (IllegalArgumentException exception) {
+ ErrorCode errorCode = ImageErrorBuilder.getInvalidImageFormatErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ 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);
+ final String data = imageQuestionnaire.getData();
+ if (data != null) {
+ String retrivedFormat = JsonUtil.json2Object(data, ImageDetails.class).getFormat();
+ validateHeatVspImageUpdate("format", format, retrivedFormat);
+ }
+ }
+
+ imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id, imageId", vspId, componentId,
+ imageId);
+ }
+
+ private ImageEntity getImageEntity(String vspId, Version version, String componentId,
+ String imageId) {
+ //validateComponentId(vspId,version,componentId);
+
+ ImageEntity imageEntity = imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
+
+ VersioningUtil.validateEntityExistence(imageEntity, new ImageEntity(vspId, version, componentId,
+ imageId), VspDetails.ENTITY_TYPE);
+ return imageEntity;
+ }
+
+
+ private boolean isImageNameDuplicate(Collection<ImageEntity> images, String fileName) {
+ for (ImageEntity image : images) {
+ if (image.getImageCompositionData().getFileName().equalsIgnoreCase(fileName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void validateVfcImage(ImageEntity image, Collection<ImageEntity> vfcImageList) {
+ if (isImageNameDuplicate(vfcImageList,image.getImageCompositionData().getFileName())) {
+ ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageNameErrorBuilder(image
+ .getImageCompositionData().getFileName(), image.getComponentId());
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_COMPONENT, 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);
+ }
+
+ protected String getImageQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return SchemaGenerator
+ .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/ManualVspToscaManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
new file mode 100644
index 0000000000..ef33812ddc
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
@@ -0,0 +1,117 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
+import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
+import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
+import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.ManualVspDataCollectionService;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
+
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ @Override
+ public VspModelInfo gatherVspInformation(String vspId, Version version, String user) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ ManualVspDataCollectionService
+ manualVspDataCollectionService = new ManualVspDataCollectionService();
+ VspModelInfo vspModelInfo = new VspModelInfo();
+ //Get Release Vendor Name
+ Optional<String> releaseVendor;
+ try {
+ releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version, user);
+ } catch (Exception ex) {
+ releaseVendor = Optional.empty();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found");
+ }
+ releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
+
+ //Get Allowed Deployment flavors information
+ Map<String, DeploymentFlavorModel> allowedFlavors;
+ try {
+ allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version, user);
+ } catch (Exception ex) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors");
+ allowedFlavors = null;
+ }
+ if (MapUtils.isNotEmpty(allowedFlavors)) {
+ vspModelInfo.setAllowedFlavors(allowedFlavors);
+ }
+
+ //Get VFC Image information
+ Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
+ try {
+ vspComponentImages =
+ manualVspDataCollectionService.getVspComponentImages(vspId, version, user);
+ } catch (Exception ex) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images");
+ vspComponentImages = null;
+ }
+ if (MapUtils.isNotEmpty(vspComponentImages)) {
+ vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
+ }
+
+ //Get VFC component information
+ Map<String, String> vspComponents;
+ try {
+ vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version, user);
+ } catch (Exception ex) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components");
+ vspComponents = null;
+ }
+ if (MapUtils.isNotEmpty(vspComponents)) {
+ vspModelInfo.setComponents(vspComponents);
+ }
+
+ //Get VSP component nic information
+ Map<String, List<Nic>> vspComponentNics;
+ try {
+ vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version, user);
+ } catch (Exception ex) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics");
+ vspComponentNics = null;
+ }
+ if (MapUtils.isNotEmpty(vspComponentNics)) {
+ vspModelInfo.setNics(vspComponentNics);
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return vspModelInfo;
+ }
+
+ @Override
+ public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
+ ToscaServiceModel manualVspToscaServiceModel =
+ vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return manualVspToscaServiceModel;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImpl.java
deleted file mode 100644
index 185cfa091b..0000000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImpl.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.vendorsoftwareproduct.impl;
-
-import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.file.FileUtils;
-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.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-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.LoggerTragetServiceName;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManager;
-import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.MibUploadErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.errors.VersionableSubEntityNotFoundErrorBuilder;
-import org.openecomp.sdcrests.activitylog.types.ActivityType;
-
-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;
-
-public class MibManagerImpl implements MibManager {
- private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
- private ActivityLogManager activityLogManager;
- private MibDao mibDao;
-
- public MibManagerImpl(MibDao mibDao,
- ActivityLogManager activityLogManager) {
- this.mibDao = mibDao;
-
- this.activityLogManager = activityLogManager;
- mibDao.registerVersioning(
- VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
- }
-
- @Override
- public void delete(String vspId, Version version, String componentId,
- ArtifactType artifactType, String user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
-
- MibEntity mibEntity =
- setValuesForComponentArtifactEntityUpload(vspId, version, null, componentId, null,
- artifactType, null);
- Optional<MibEntity> retrieved = mibDao.getByType(mibEntity);
-
- if (!retrieved.isPresent()) {
- throw new CoreException(new VersionableSubEntityNotFoundErrorBuilder(
- mibEntity.getEntityType(),
- artifactType.name(),
- VspDetails.ENTITY_TYPE,
- mibEntity.getFirstClassCitizenId(),
- version).build());
- }
-
- mibDao.delete(retrieved.get());
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
- }
-
- @Override
- public void upload(InputStream object, String filename, String vspId,
- Version version, String componentId, ArtifactType artifactType,
- String user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
-
- if (object == null) {
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPLOAD_MIB, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid MIB zip file");
- throw new CoreException(new MibUploadErrorBuilder(
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()).build());
- } else {
- Map<String, List<ErrorMessage>> errors = new HashMap<>();
- try {
- byte[] uploadedFileData = FileUtils.toByteArray(object);
- validateMibZipContent(vspId, version, uploadedFileData, errors);
- if (MapUtils.isNotEmpty(errors)) {
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPLOAD_MIB, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid MIB zip file");
- throw new CoreException(
- new MibUploadErrorBuilder(errors.values().iterator().next().get(0).getMessage())
- .build());
- }
-
- createArtifactInDatabase(vspId, version, filename, componentId, artifactType,
- uploadedFileData);
-
- } catch (Exception exception) {
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.UPLOAD_MIB, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid MIB zip file");
- throw new CoreException(new MibUploadErrorBuilder(exception.getMessage()).build());
- }
- }
-
- ActivityLogEntity activityLogEntity =
- new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1),
- ActivityType.UPLOAD_ARTIFACT.toString(), user, true, "", "");
- activityLogManager.addActionLog(activityLogEntity, user);
-
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
- }
-
- private void createArtifactInDatabase(String vspId, Version version, String filename,
- String componentId, ArtifactType artifactType,
- byte[] uploadedFileData) {
- String artifactId = CommonMethods.nextUuId();
- MibEntity mibEntity =
- setValuesForComponentArtifactEntityUpload(vspId, version, filename, componentId,
- artifactId, artifactType, uploadedFileData);
- mibDao.create(mibEntity);
- }
-
- @Override
- public MibUploadStatus listFilenames(String vspId, Version version, String componentId,
- String user) {
- mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
-
- MibEntity current =
- new MibEntity(vspId, version, componentId, null);
-
- mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
-
- return setMibUploadStatusValues(current);
- }
-
-
- private MibUploadStatus setMibUploadStatusValues(
- MibEntity mibEntity) {
- MibUploadStatus mibUploadStatus = new MibUploadStatus();
-
- Collection<MibEntity> artifactNames =
- mibDao.list(mibEntity);
- Map<ArtifactType, String> artifactTypeToFilename =
- VendorSoftwareProductUtils.filterNonTrapOrPollArtifacts(artifactNames);
-
- if (MapUtils.isNotEmpty(artifactTypeToFilename)) {
- if (artifactTypeToFilename.containsKey(ArtifactType.SNMP_TRAP)) {
- mibUploadStatus.setSnmpTrap(artifactTypeToFilename.get(ArtifactType.SNMP_TRAP));
- }
- if (artifactTypeToFilename.containsKey(ArtifactType.SNMP_POLL)) {
- mibUploadStatus.setSnmpPoll(artifactTypeToFilename.get(ArtifactType.SNMP_POLL));
- }
- }
-
- return mibUploadStatus;
- }
-
- private MibEntity setValuesForComponentArtifactEntityUpload(
- String vspId, Version version, String filename, String componentId, String artifactId,
- ArtifactType artifactType, byte[] uploadedFileData) {
-
- MibEntity mibEntity = new MibEntity();
-
- mibEntity.setVspId(vspId);
- mibEntity.setVersion(version);
- mibEntity.setComponentId(componentId);
- mibEntity.setId(artifactId);
- mibEntity.setType(artifactType);
- mibEntity.setArtifactName(filename);
-
- if (Objects.nonNull(uploadedFileData)) {
- mibEntity.setArtifact(ByteBuffer.wrap(uploadedFileData));
- }
-
- return mibEntity;
- }
-
- private void validateMibZipContent(String vspId, Version version, byte[] uploadedFileData,
- Map<String, List<ErrorMessage>> errors) {
- FileContentHandler contentMap;
- try {
- contentMap = CommonUtil.loadUploadFileContent(uploadedFileData);
- VendorSoftwareProductUtils.validateContentZipData(contentMap, errors);
- } catch (IOException exception) {
- MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
- LoggerTragetServiceName.VALIDATE_MIB, ErrorLevel.ERROR.name(),
- LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid MIB zip file");
- throw new CoreException(
- new MibUploadErrorBuilder(vspId, version, Messages.INVALID_ZIP_FILE.getErrorMessage())
- .build());
- }
- }
-}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerFactoryImpl.java
index 8c887e0140..6569312f02 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerFactoryImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerFactoryImpl.java
@@ -21,17 +21,17 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.openecomp.sdc.activityLog.ActivityLogManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManager;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
+import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory;
-public class MibManagerFactoryImpl extends MibManagerFactory {
- private static final MibManager INSTANCE =
- new MibManagerImpl(MibDaoFactory.getInstance().createInterface(),
+public class MonitoringUploadsManagerFactoryImpl extends MonitoringUploadsManagerFactory {
+ private static final MonitoringUploadsManager INSTANCE =
+ new MonitoringUploadsManagerImpl(MonitoringUploadDaoFactory.getInstance().createInterface(),
ActivityLogManagerFactory.getInstance().createInterface());
@Override
- public MibManager createInterface() {
+ public MonitoringUploadsManager createInterface() {
return INSTANCE;
}
}
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
new file mode 100644
index 0000000000..73558b465a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImpl.java
@@ -0,0 +1,269 @@
+/*-
+ * ============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.impl;
+
+import org.apache.commons.collections4.MapUtils;
+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.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.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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 org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.MonitoringUploadErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersionableSubEntityNotFoundErrorBuilder;
+import org.openecomp.sdcrests.activitylog.types.ActivityType;
+
+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;
+
+public class MonitoringUploadsManagerImpl implements MonitoringUploadsManager {
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ private ActivityLogManager activityLogManager;
+ private ComponentArtifactDao componentArtifactDao;
+ private static final Logger logger =
+ LoggerFactory.getLogger(VendorSoftwareProductManagerImpl.class);
+
+ MonitoringUploadsManagerImpl(ComponentArtifactDao componentArtifactDao,
+ ActivityLogManager activityLogManager) {
+ this.componentArtifactDao = componentArtifactDao;
+
+ this.activityLogManager = activityLogManager;
+ componentArtifactDao.registerVersioning(
+ VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE);
+ }
+
+ @Override
+ public void delete(String vspId, Version version, String componentId,
+ MonitoringUploadType monitoringUploadType, String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
+
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity =
+ setValuesForComponentArtifactEntityUpload(vspId, version, null, componentId, null,
+ monitoringUploadType, null);
+ Optional<ComponentMonitoringUploadEntity> retrieved = componentArtifactDao.getByType(
+ componentMonitoringUploadEntity);
+
+ if (!retrieved.isPresent()) {
+ throw new CoreException(new VersionableSubEntityNotFoundErrorBuilder(
+ componentMonitoringUploadEntity.getEntityType(),
+ monitoringUploadType.name(),
+ VspDetails.ENTITY_TYPE,
+ componentMonitoringUploadEntity.getFirstClassCitizenId(),
+ version).build());
+ }
+
+ componentArtifactDao.delete(retrieved.get());
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
+ }
+
+ @Override
+ public void upload(InputStream object, String filename, String vspId,
+ Version version, String componentId,
+ MonitoringUploadType type,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
+
+ if (object == null) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPLOAD_MONITORING_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid " + type
+ .toString() + " zip file");
+ throw new CoreException(new MonitoringUploadErrorBuilder(
+ Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()).build());
+ } else {
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ try {
+ byte[] uploadedFileData = FileUtils.toByteArray(object);
+ final FileContentHandler upload =
+ validateZip(vspId, version, uploadedFileData, errors);
+ if (type.equals(MonitoringUploadType.VES_EVENTS)) {
+ validateVesEventUpload(upload, errors, vspId, version);
+ }
+ if (MapUtils.isNotEmpty(errors)) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPLOAD_MONITORING_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid " + type
+ .toString() + " zip file");
+ throw new CoreException(
+ new MonitoringUploadErrorBuilder(
+ errors.values().iterator().next().get(0).getMessage())
+ .build());
+ }
+
+ createArtifactInDatabase(vspId, version, filename, componentId, type,
+ uploadedFileData);
+
+ } catch (Exception exception) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPLOAD_MONITORING_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid " + type.toString() + "zip file");
+ throw new CoreException(new MonitoringUploadErrorBuilder(exception.getMessage()).build());
+ }
+ }
+
+ ActivityLogEntity activityLogEntity =
+ new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1),
+ ActivityType.UPLOAD_MONITORING_FILE.toString(), user, true, "", "");
+ activityLogManager.addActionLog(activityLogEntity, user);
+ logger.audit("Uploaded Monitoring File for component id:" + componentId + " ,vspId:" + vspId);
+
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
+ }
+
+ private void validateVesEventUpload(FileContentHandler upload,
+ Map<String, List<ErrorMessage>> errors, String vspId,
+ Version version) {
+ if (!CommonUtil.validateAllFilesYml(upload)) {
+ ErrorMessage.ErrorMessageUtil.addMessage(SdcCommon.UPLOAD_FILE, errors)
+ .add(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.VES_ZIP_SHOULD_CONTAIN_YML_ONLY.getErrorMessage()));
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_MONITORING_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VES_FILE);
+ throw new CoreException(
+ new MonitoringUploadErrorBuilder(
+ Messages.VES_ZIP_SHOULD_CONTAIN_YML_ONLY.getErrorMessage())
+ .build());
+ }
+ }
+
+ private void createArtifactInDatabase(String vspId, Version version, String filename,
+ String componentId,
+ MonitoringUploadType type,
+ byte[] uploadedFileData) {
+ String artifactId = CommonMethods.nextUuId();
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity =
+ setValuesForComponentArtifactEntityUpload(vspId, version, filename, componentId,
+ artifactId, type, uploadedFileData);
+ componentArtifactDao.create(componentMonitoringUploadEntity);
+ }
+
+ @Override
+ public MonitoringUploadStatus listFilenames(String vspId, Version version, String componentId,
+ String user) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId, componentId);
+
+ ComponentMonitoringUploadEntity current =
+ new ComponentMonitoringUploadEntity(vspId, version, componentId, null);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
+
+ return setMonitoringUploadStatusValues(current);
+ }
+
+
+ private MonitoringUploadStatus setMonitoringUploadStatusValues(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
+ MonitoringUploadStatus monitoringUploadStatus = new MonitoringUploadStatus();
+
+ Collection<ComponentMonitoringUploadEntity> artifactNames =
+ componentArtifactDao.list(componentMonitoringUploadEntity);
+ Map<MonitoringUploadType, String> artifactTypeToFilename =
+ VendorSoftwareProductUtils.mapArtifactsByType(artifactNames);
+
+ if (MapUtils.isNotEmpty(artifactTypeToFilename)) {
+ if (artifactTypeToFilename.containsKey(MonitoringUploadType.SNMP_TRAP)) {
+ monitoringUploadStatus
+ .setSnmpTrap(artifactTypeToFilename.get(MonitoringUploadType.SNMP_TRAP));
+ }
+ if (artifactTypeToFilename.containsKey(MonitoringUploadType.SNMP_POLL)) {
+ monitoringUploadStatus
+ .setSnmpPoll(artifactTypeToFilename.get(MonitoringUploadType.SNMP_POLL));
+ }
+ if (artifactTypeToFilename.containsKey(MonitoringUploadType.VES_EVENTS)) {
+ monitoringUploadStatus
+ .setVesEvent(artifactTypeToFilename.get(MonitoringUploadType.VES_EVENTS));
+ }
+ }
+
+ return monitoringUploadStatus;
+ }
+
+ private ComponentMonitoringUploadEntity setValuesForComponentArtifactEntityUpload(
+ String vspId, Version version, String filename, String componentId, String artifactId,
+ MonitoringUploadType monitoringUploadType, byte[] uploadedFileData) {
+
+ ComponentMonitoringUploadEntity
+ entity = new ComponentMonitoringUploadEntity();
+
+ entity.setVspId(vspId);
+ entity.setVersion(version);
+ entity.setComponentId(componentId);
+ entity.setId(artifactId);
+ entity.setType(monitoringUploadType);
+ entity.setArtifactName(filename);
+
+ if (Objects.nonNull(uploadedFileData)) {
+ entity.setArtifact(ByteBuffer.wrap(uploadedFileData));
+ }
+
+ return entity;
+ }
+
+ private FileContentHandler validateZip(String vspId, Version version, byte[] uploadedFileData,
+ Map<String, List<ErrorMessage>> errors) {
+ FileContentHandler contentMap;
+ try {
+ contentMap = CommonUtil.validateAndUploadFileContent(uploadedFileData);
+ VendorSoftwareProductUtils.validateContentZipData(contentMap, errors);
+ } catch (IOException exception) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_MONITORING_FILE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Invalid Monitoring zip file");
+ throw new CoreException(
+ new MonitoringUploadErrorBuilder(vspId, version,
+ Messages.INVALID_ZIP_FILE.getErrorMessage())
+ .build());
+ }
+ return contentMap;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerFactoryImpl.java
index 1d911701f9..6110519d81 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerFactoryImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerFactoryImpl.java
@@ -24,6 +24,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.NetworkManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
public class NicManagerFactoryImpl extends NicManagerFactory {
@@ -31,7 +32,8 @@ public class NicManagerFactoryImpl extends NicManagerFactory {
new NicManagerImpl(
NicDaoFactory.getInstance().createInterface(),
CompositionEntityDataManagerFactory.getInstance().createInterface(),
- NetworkManagerFactory.getInstance().createInterface());
+ NetworkManagerFactory.getInstance().createInterface(),
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface());
@Override
public NicManager createInterface() {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
index d73e0f5def..b196b3f54c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
@@ -22,6 +22,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
@@ -31,20 +32,30 @@ import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.errors.CompositionEditNotAllowedErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DeleteNicErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateNicInComponentErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NicInternalNetworkErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NicNetworkIdNotAllowedExternalNetworkErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NicCompositionSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
+import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -58,13 +69,16 @@ public class NicManagerImpl implements NicManager {
private NicDao nicDao;
private CompositionEntityDataManager compositionEntityDataManager;
private NetworkManager networkManager;
+ private VendorSoftwareProductInfoDao vspInfoDao;
public NicManagerImpl(NicDao nicDao,
CompositionEntityDataManager compositionEntityDataManager,
- NetworkManager networkManager) {
+ NetworkManager networkManager,
+ VendorSoftwareProductInfoDao vspInfoDao) {
this.nicDao = nicDao;
this.compositionEntityDataManager = compositionEntityDataManager;
this.networkManager = networkManager;
+ this.vspInfoDao = vspInfoDao;
}
@Override
@@ -96,15 +110,21 @@ public class NicManagerImpl implements NicManager {
@Override
public NicEntity createNic(NicEntity nic, String user) {
+ NicEntity createdNic = null;
mdcDataDebugMessage.debugEntryMessage("VSP id, component id", nic.getVspId(),
nic.getComponentId());
- if (!isManual(nic.getVspId(), nic.getVersion())) {
+ if (!vspInfoDao.isManual(nic.getVspId(), nic.getVersion())) {
+ ErrorCode onboardingMethodUpdateErrorCode = NotSupportedHeatOnboardMethodErrorBuilder
+ .getAddNicNotSupportedHeatOnboardMethodErrorBuilder();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't create nic");
- throw new CoreException(
- new CompositionEditNotAllowedErrorBuilder(nic.getVspId(), nic.getVersion()).build());
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ onboardingMethodUpdateErrorCode.message());
+ throw new CoreException(onboardingMethodUpdateErrorCode);
+ } else {
+ validateNic(nic, user);
+ createdNic = createNic(nic);
}
//nicDao.updateVspLatestModificationTime(nic.getVspId(), nic.getVersion());
@@ -112,7 +132,63 @@ public class NicManagerImpl implements NicManager {
mdcDataDebugMessage
.debugExitMessage("VSP id, component id", nic.getVspId(), nic.getComponentId());
- return null;
+ return createdNic;
+ }
+
+ private NicEntity createNic(NicEntity nic) {
+ return compositionEntityDataManager.createNic(nic);
+ }
+
+ private void validateNic(NicEntity nic, String user) {
+ Collection<NicEntity> listNics = listNics(nic.getVspId(), nic.getVersion(), nic
+ .getComponentId(), user);
+ String networkId = nic.getNicCompositionData().getNetworkId();
+ NetworkType networkType = nic.getNicCompositionData().getNetworkType();
+ String networkDescription = nic.getNicCompositionData().getNetworkDescription();
+ listNics.forEach(nicEntity -> {
+ Nic nicdata = nicEntity.getNicCompositionData();
+ if (nic.getNicCompositionData().getName().equalsIgnoreCase(nicdata.getName())) {
+ final ErrorCode duplicateNicInComponentErrorBuilder =
+ new DuplicateNicInComponentErrorBuilder(nic.getNicCompositionData().getName(),
+ nic.getComponentId()).build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ duplicateNicInComponentErrorBuilder.message());
+ throw new CoreException(duplicateNicInComponentErrorBuilder);
+ }
+
+ });
+
+ if (networkType.equals(NetworkType.Internal)) {
+ if (!(networkId == null || networkId.equals(""))) {
+ //NetworkEntity ne = getNetwork(nic.getVspId(), activeVersion, networkId);
+ final CompositionEntityResponse<Network> network =
+ networkManager.getNetwork(nic.getVspId(), nic.getVersion(), networkId,
+ user);
+ }
+
+ if (!(networkDescription == null || networkDescription.equals(""))) {
+ final ErrorCode nicNetworkDescriptionErrorBuilder =
+ new NicInternalNetworkErrorBuilder()
+ .getNetworkDescriptionInternalNetworkErrorBuilder();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), nicNetworkDescriptionErrorBuilder.message());
+ throw new CoreException(nicNetworkDescriptionErrorBuilder);
+ }
+
+ } else if (networkType.equals(NetworkType.External)) {
+ if (!(networkId == null || networkId.equals(""))) {
+ final ErrorCode nicNetworkIdNotAllowedExternalNetworkErrorBuilder =
+ new NicNetworkIdNotAllowedExternalNetworkErrorBuilder().build();
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(),
+ nicNetworkIdNotAllowedExternalNetworkErrorBuilder.message());
+ throw new CoreException(nicNetworkIdNotAllowedExternalNetworkErrorBuilder);
+ }
+ }
}
@Override
@@ -125,7 +201,7 @@ public class NicManagerImpl implements NicManager {
Nic nic = nicEntity.getNicCompositionData();
NicCompositionSchemaInput schemaInput = new NicCompositionSchemaInput();
- schemaInput.setManual(isManual(vspId, version));
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
schemaInput.setNic(nic);
Map<String, String> networksNameById = listNetworksNameById(vspId, version, user);
nic.setNetworkName(networksNameById.get(nic.getNetworkId()));
@@ -157,15 +233,20 @@ public class NicManagerImpl implements NicManager {
mdcDataDebugMessage
.debugEntryMessage("VSP id, component id", vspId, componentId, nicId);
- if (!isManual(vspId, version)) {
+ if (!vspInfoDao.isManual(vspId, version)) {
+ final ErrorCode deleteNicErrorBuilder =
+ new DeleteNicErrorBuilder().getDeleteNicForHeatOnboardedVspErrorBuilder();
MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
LoggerTragetServiceName.DELETE_NIC, ErrorLevel.ERROR.name(),
- LoggerErrorCode.PERMISSION_ERROR.getErrorCode(), "Can't delete nic");
- throw new CoreException(
- new CompositionEditNotAllowedErrorBuilder(vspId, version).build());
+ LoggerErrorCode.PERMISSION_ERROR.getErrorCode(),
+ deleteNicErrorBuilder.message());
+ throw new CoreException(deleteNicErrorBuilder);
}
- //nicDao.updateVspLatestModificationTime(vspId, version);
+ NicEntity nicEntity = getNic(vspId, version, componentId, nicId);
+ if (nicEntity != null) {
+ nicDao.delete(nicEntity);
+ }
mdcDataDebugMessage
.debugExitMessage("VSP id, component id", vspId, componentId, nicId);
@@ -181,7 +262,7 @@ public class NicManagerImpl implements NicManager {
getNic(nic.getVspId(), nic.getVersion(), nic.getComponentId(), nic.getId());
NicCompositionSchemaInput schemaInput = new NicCompositionSchemaInput();
- schemaInput.setManual(isManual(nic.getVspId(), nic.getVersion()));
+ schemaInput.setManual(vspInfoDao.isManual(nic.getVspId(), nic.getVersion()));
schemaInput.setNic(retrieved.getNicCompositionData());
CompositionEntityValidationData validationData = compositionEntityDataManager
@@ -244,7 +325,7 @@ public class NicManagerImpl implements NicManager {
}
// todo *************************** move to reusable place! *************************
- private boolean isManual(String vspId, Version version) {
+ /*private boolean isManual(String vspId, Version version) {
return false;
- }
+ }*/
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerFactoryImpl.java
index 77d496f0c8..b5464e5708 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerFactoryImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerFactoryImpl.java
@@ -22,12 +22,11 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl;
import org.openecomp.core.model.dao.ServiceModelDaoFactory;
import org.openecomp.sdc.activityLog.ActivityLogManagerFactory;
-import org.openecomp.sdc.activitylog.dao.ActivityLogDaoFactory;
import org.openecomp.sdc.healing.factory.HealingManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory;
@@ -51,7 +50,7 @@ public class OrchestrationTemplateCandidateManagerFactoryImpl extends
CompositionEntityDataManagerFactory.getInstance().createInterface(),
NicDaoFactory.getInstance().createInterface(),
ComponentDaoFactory.getInstance().createInterface(),
- MibDaoFactory.getInstance().createInterface(),
+ MonitoringUploadDaoFactory.getInstance().createInterface(),
ProcessDaoFactory.getInstance().createInterface(),
ActivityLogManagerFactory.getInstance().createInterface());
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 99a438f3a8..959cf15789 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
@@ -19,14 +19,12 @@
*/
package org.openecomp.sdc.vendorsoftwareproduct.impl;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
-import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues
- .PROCESS_NAME;
+
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.apache.xalan.xslt.Process;
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;
@@ -55,14 +53,16 @@ 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;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
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.MibEntity;
+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;
@@ -79,24 +79,25 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStru
import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdcrests.activitylog.types.ActivityType;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+
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 java.util.Collection;
+
+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 MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private static final Logger logger =
LoggerFactory.getLogger(OrchestrationTemplateCandidateManagerImpl.class);
-
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
private VendorSoftwareProductDao vendorSoftwareProductDao;
private VendorSoftwareProductInfoDao vspInfoDao;
private OrchestrationTemplateDao orchestrationTemplateDataDao;
@@ -107,10 +108,27 @@ public class OrchestrationTemplateCandidateManagerImpl
private CompositionEntityDataManager compositionEntityDataManager;
private NicDao nicDao;
private ComponentDao componentDao;
- private MibDao mibDao;
+ private ComponentArtifactDao componentArtifactDao;
private ActivityLogManager activityLogManager;
private ProcessDao processDao;
+ /**
+ * Instantiates a new Orchestration template candidate manager.
+ *
+ * @param vendorSoftwareProductDao the vendor software product dao
+ * @param vspInfoDao the vsp info dao
+ * @param orchestrationTemplateDataDao the orchestration template data dao
+ * @param candidateService the candidate service
+ * @param healingManager the healing manager
+ * @param compositionDataExtractor the composition data extractor
+ * @param serviceModelDao the service model dao
+ * @param compositionEntityDataManager the composition entity data manager
+ * @param nicDao the nic dao
+ * @param componentDao the component dao
+ * @param componentArtifactDao the mib dao
+ * @param processDao the process dao
+ * @param activityLogManager the activity log manager
+ */
public OrchestrationTemplateCandidateManagerImpl(
VendorSoftwareProductDao vendorSoftwareProductDao, VendorSoftwareProductInfoDao
vspInfoDao,
@@ -121,7 +139,7 @@ public class OrchestrationTemplateCandidateManagerImpl
CompositionEntityDataManager compositionEntityDataManager,
NicDao nicDao,
ComponentDao componentDao,
- MibDao mibDao,
+ ComponentArtifactDao componentArtifactDao,
ProcessDao processDao,
ActivityLogManager activityLogManager) {
this.vendorSoftwareProductDao = vendorSoftwareProductDao;
@@ -134,7 +152,7 @@ public class OrchestrationTemplateCandidateManagerImpl
this.compositionEntityDataManager = compositionEntityDataManager;
this.nicDao = nicDao;
this.componentDao = componentDao;
- this.mibDao = mibDao;
+ this.componentArtifactDao = componentArtifactDao;
this.processDao = processDao;
this.activityLogManager = activityLogManager;
}
@@ -237,38 +255,43 @@ public class OrchestrationTemplateCandidateManagerImpl
String manifest = candidateService.createManifest(vspDetails, structure);
fileContentMap.addFile(SdcCommon.MANIFEST_NAME, manifest.getBytes());
- HeatStructureTree tree = createAndValidateHeatTree(response, fileContentMap);
-
Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
.fetchZipFileByteArrayInputStream(vspId, candidateDataEntity, manifest, uploadErrors);
if (!zipByteArrayInputStream.isPresent()) {
return response;
}
- Map<String,String> componentsQustanniare = new HashMap<>();
- Map<String, Map<String, String>> componentNicsQustanniare = new HashMap<>();
- Map<String, Collection<MibEntity>> componentMIBList = new HashMap<>();
+
+ 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, componentsQustanniare,
- componentNicsQustanniare, componentMIBList, processes, processArtifact);
+ backupComponentsQuestionnaireBeforeDelete(vspId, version, componentsQuestionnaire,
+ componentNicsQuestionnaire, componentMibList, processes, processArtifact);
deleteUploadDataAndContent(vspId, version);
saveHotData(vspId, version, zipByteArrayInputStream.get(), fileContentMap, tree);
- ToscaServiceModel toscaServiceModel =
- HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap)
- .getToscaServiceModel();
+ 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(toscaServiceModel));
- retainComponentQuestionnaireData(vspId, version, componentsQustanniare,
- componentNicsQustanniare, componentMIBList, processes, processArtifact);
+ compositionDataExtractor.extractServiceCompositionData(translatorOutput
+ .getNonUnifiedToscaServiceModel()));
+ retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
+ componentNicsQuestionnaire, componentMibList, processes, processArtifact);
}
uploadFileResponse.addStructureErrors(uploadErrors);
- ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspId, String.valueOf(version.getMajor()+1),
+ ActivityLogEntity activityLogEntity =
+ new ActivityLogEntity(vspId, String.valueOf(version.getMajor() + 1),
ActivityType.UPLOAD_HEAT.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
@@ -367,9 +390,10 @@ public class OrchestrationTemplateCandidateManagerImpl
private void retainComponentQuestionnaireData(String vspId, Version activeVersion,
Map<String, String> componentsQustanniare,
- Map<String, Map<String, String>> componentNicsQustanniare,
- Map<String, Collection<MibEntity>> componentMIBList,
- Map<String,Collection<ProcessEntity>> processes,
+ 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,
@@ -378,27 +402,31 @@ public class OrchestrationTemplateCandidateManagerImpl
components = vendorSoftwareProductDao.listComponents(vspId, activeVersion);
components.forEach(componentEntity -> {
String componentName = componentEntity.getComponentCompositionData().getName();
- if( componentsQustanniare.containsKey(componentName) ){
+ if (componentsQustanniare.containsKey(componentName)) {
componentDao.updateQuestionnaireData(vspId, activeVersion,
- componentEntity.getId(),componentsQustanniare.get(componentEntity.getComponentCompositionData()
+ componentEntity.getId(),
+ componentsQustanniare.get(componentEntity.getComponentCompositionData()
.getName()));
- if( componentNicsQustanniare.containsKey(componentName) ){
- Map<String, String> nicsQustanniare=componentNicsQustanniare.get(componentName);
+ 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()));
+ 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
- if(componentMIBList.containsKey(componentName)) {
- Collection<MibEntity> mibList = componentMIBList.get(componentName);
+ //MIB //todo add for VES_EVENTS
+ if (componentMibList.containsKey(componentName)) {
+ Collection<ComponentMonitoringUploadEntity> mibList =
+ componentMibList.get(componentName);
mibList.forEach(mib -> {
mib.setComponentId(componentEntity.getId());
- mibDao.create(mib);
+ componentArtifactDao.create(mib);
});
}
//VFC processes
@@ -411,43 +439,47 @@ public class OrchestrationTemplateCandidateManagerImpl
private void backupComponentsQuestionnaireBeforeDelete(String vspId, Version activeVersion,
Map<String, String> componentsQustanniare,
Map<String, Map<String, String>>
- componentNicsQustanniare,
- Map<String, Collection<MibEntity>>
- componentMIBList,
- Map<String, Collection<ProcessEntity>> componentProcesses,
+ 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
+ componentProcesses, processArtifact);
+ Collection<ComponentEntity> componentsCompositionAndQuestionnaire = vendorSoftwareProductDao
.listComponentsCompositionAndQuestionnaire(vspId,
activeVersion);
- componentsCompositionAndQuestionnaire.forEach(componentEntity ->{
- String componentName=componentEntity.getComponentCompositionData().getName();
- componentsQustanniare.put(componentName,componentEntity
+ 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));
+ nics = nicDao.list(new NicEntity(vspId, activeVersion, componentEntity.getId(), null));
//backup mib
- Collection<MibEntity> componentMIB = mibDao.listArtifacts(new
- MibEntity(vspId, activeVersion, componentEntity.getId(), null));
- if(CollectionUtils.isNotEmpty(componentMIB)){
- componentMIBList.put(componentName,componentMIB);
+ 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)) {
+ 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());
+ 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());
+ .put(nicEntity.getNicCompositionData().getName(),
+ nicQuestionnaire.getQuestionnaireData());
});
componentNicsQustanniare.put(componentName, nicsQustanniare);
}
@@ -456,17 +488,18 @@ public class OrchestrationTemplateCandidateManagerImpl
private void backupProcess(String vspId, Version activeVersion, String componentId,
String componentName, Map<String,
- Collection<ProcessEntity>> processes,
- Map<String,ProcessEntity> processArtifact){
+ Collection<ProcessEntity>> processes,
+ Map<String, ProcessEntity> processArtifact) {
Collection<ProcessEntity> processList = vendorSoftwareProductDao.listProcesses(vspId,
activeVersion, componentId);
- if(!processList.isEmpty()){
- processes.put(componentName,processList);
+ 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) {
+ ProcessEntity artifact =
+ processDao.get(new ProcessEntity(vspId, activeVersion, componentId, process.getId()));
+ if (artifact.getArtifact() != null) {
processArtifact.put(process.getId(), artifact);
}
});
@@ -474,9 +507,10 @@ public class OrchestrationTemplateCandidateManagerImpl
}
private void restoreProcess(String vspId, Version activeVersion, String componentId,
- String componentName, Map<String, Collection<ProcessEntity>> processes,
- Map<String, ProcessEntity> processArtifact){
- if(processes.containsKey(componentName)) {
+ 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
@@ -550,7 +584,7 @@ public class OrchestrationTemplateCandidateManagerImpl
byte[] uploadedFileData) {
FileContentHandler contentMap = null;
try {
- contentMap = CommonUtil.loadUploadFileContent(uploadedFileData);
+ contentMap = CommonUtil.validateAndUploadFileContent(uploadedFileData);
} catch (IOException exception) {
uploadFileResponse.addStructureError(
SdcCommon.UPLOAD_FILE,
@@ -574,7 +608,7 @@ public class OrchestrationTemplateCandidateManagerImpl
return healingParams;
}
- public VspDetails getVspDetails(String vspId, Version version) {
+ private VspDetails getVspDetails(String vspId, Version version) {
VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
vspDetails.setValidationData(orchestrationTemplateDataDao.getValidationData(vspId, version));
return vspDetails;
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImpl.java
index 4fa67ff2d3..339e05c16f 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ProcessManagerImpl.java
@@ -225,7 +225,7 @@ public class ProcessManagerImpl implements ProcessManager {
vendorSoftwareProductDao.uploadProcessArtifact(vspId, version, componentId, processId, artifact,
artifactFileName);
ActivityLogEntity activityLogEntity = new ActivityLogEntity(vspId, String.valueOf(version.getMajor()+1),
- ActivityType.UPLOAD_ARTIFACT.toString(), user, true, "", "");
+ ActivityType.UPLOAD_MONITORING_FILE.toString(), user, true, "", "");
activityLogManager.addActionLog(activityLogEntity, user);
mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId, componentId);
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 995044588c..0b48c334c6 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
@@ -42,6 +42,7 @@ 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.generator.datatypes.tosca.VspModelInfo;
import org.openecomp.sdc.healing.api.HealingManager;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
@@ -56,8 +57,11 @@ import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
import org.openecomp.sdc.validation.util.ValidationManagerUtil;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService;
+import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
@@ -65,15 +69,22 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.errors.VendorSoftwareProductNotFoundErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
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.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.ComponentDependencyModelErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.ComponentErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.CreatePackageForNonFinalVendorSoftwareProductErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DeploymentFlavorErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.FileCreationErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.InformationArtifactCreationErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.NicInternalNetworkErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.OnboardingMethodErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.PackageInvalidErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.PackageNotFoundErrorBuilder;
import org.openecomp.sdc.vendorsoftwareproduct.errors.TranslationFileCreationErrorBuilder;
@@ -82,12 +93,18 @@ 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;
import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComponentQuestionnaireSchemaInput;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
@@ -115,8 +132,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
@@ -141,8 +160,29 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
private InformationArtifactGenerator informationArtifactGenerator;
private PackageInfoDao packageInfoDao;
private ActivityLogManager activityLogManager;
-
-
+ private DeploymentFlavorDao deploymentFlavorDao;
+ private NicDao nicDao;
+ private ManualVspToscaManager manualVspToscaManager;
+
+ /**
+ * Instantiates a new Vendor software product manager.
+ *
+ * @param versioningManager the versioning manager
+ * @param vendorSoftwareProductDao the vendor software product dao
+ * @param orchestrationTemplateDataDao the orchestration template data dao
+ * @param vspInfoDao the vsp info dao
+ * @param vendorLicenseFacade the vendor license facade
+ * @param serviceModelDao the service model dao
+ * @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
+ * @param deploymentFlavorDao the deployment flavor dao
+ * @param nicDao the nic dao
+ */
public VendorSoftwareProductManagerImpl(
VersioningManager versioningManager,
VendorSoftwareProductDao vendorSoftwareProductDao,
@@ -155,7 +195,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VendorLicenseArtifactsService licenseArtifactsService,
InformationArtifactGenerator informationArtifactGenerator,
PackageInfoDao packageInfoDao,
- ActivityLogManager activityLogManager) {
+ ActivityLogManager activityLogManager,
+ DeploymentFlavorDao deploymentFlavorDao,
+ NicDao nicDao,
+ ManualVspToscaManager manualVspToscaManager) {
this.versioningManager = versioningManager;
this.vendorSoftwareProductDao = vendorSoftwareProductDao;
this.orchestrationTemplateDao = orchestrationTemplateDataDao;
@@ -168,6 +211,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
this.informationArtifactGenerator = informationArtifactGenerator;
this.packageInfoDao = packageInfoDao;
this.activityLogManager = activityLogManager;
+ this.deploymentFlavorDao = deploymentFlavorDao;
+ this.nicDao = nicDao;
+ this.manualVspToscaManager = manualVspToscaManager;
registerToVersioning();
}
@@ -276,8 +322,20 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
validationResponse
.setUploadDataErrors(validateUploadData(uploadData), LoggerServiceName.Submit_VSP,
LoggerTragetServiceName.SUBMIT_VSP);
+
validationResponse.setQuestionnaireValidationResult(
- validateQuestionnaire(vspDetails.getId(), vspDetails.getVersion()));
+ 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()));
+ //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),
@@ -294,7 +352,6 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
-
return validationResponse;
}
@@ -310,43 +367,199 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
return dependencyTracker.isCyclicDependencyPresent();
}
- private static List<ErrorCode> validateCompletedVendorSoftwareProduct(
+ private DeploymentFlavorValidationResult deploymentFlavorValidation(String vspId,
+ Version version) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+ Set<CompositionEntityValidationData> validationData = new HashSet<>();
+ Collection<DeploymentFlavorEntity> deploymentFlavors =
+ vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
+ if (!CollectionUtils.isEmpty(deploymentFlavors)) {
+ deploymentFlavors.forEach(deploymentFlavor -> {
+ DeploymentFlavorEntity deployment = vendorSoftwareProductDao.getDeploymentFlavor(vspId,
+ 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);
+ }
+ List<ComponentComputeAssociation> componetComputeAssociations = new ArrayList<>();
+ componetComputeAssociations = deploymentlocalFlavor.getComponentComputeAssociations();
+ if (CollectionUtils.isEmpty(componetComputeAssociations)) {
+ CompositionEntityValidationData compositionEntityValidationData = new
+ CompositionEntityValidationData(CompositionEntityType.deployment,deploymentFlavor
+ .getId());
+ compositionEntityValidationData.setEntityName(deployment
+ .getDeploymentFlavorCompositionData().getModel());
+ ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
+ .getInvalidComponentComputeAssociationErrorBuilder();
+ List<String> errors = new ArrayList<>();
+ errors.add(deploymentFlavorErrorBuilder.message());
+ compositionEntityValidationData.setErrors(errors);
+ validationData.add(compositionEntityValidationData);
+ } else {
+ componetComputeAssociations.forEach(componetComputeAssociation -> {
+ if (componetComputeAssociation == null
+ || !(componetComputeAssociation.getComponentId() != null
+ && componetComputeAssociation.getComputeFlavorId() != null)) {
+ CompositionEntityValidationData compositionEntityValidationData = new
+ CompositionEntityValidationData(CompositionEntityType.deployment,
+ deploymentFlavor.getId());
+ compositionEntityValidationData.setEntityName(deployment
+ .getDeploymentFlavorCompositionData().getModel());
+ ErrorCode deploymentFlavorErrorBuilder = DeploymentFlavorErrorBuilder
+ .getInvalidComponentComputeAssociationErrorBuilder();
+ List<String> errors = new ArrayList<>();
+ errors.add(deploymentFlavorErrorBuilder.message());
+ compositionEntityValidationData.setErrors(errors);
+ validationData.add(compositionEntityValidationData);
+ }
+ });
+ }
+ }
+ });
+ }
+ if (CollectionUtils.isEmpty(validationData)) {
+ return null;
+ }
+ DeploymentFlavorValidationResult deploymentFlavorValidationResult = new
+ DeploymentFlavorValidationResult(validationData);
+ return deploymentFlavorValidationResult;
+
+ }
+
+ private ComponentValidationResult componentValidation(String vspId, Version version) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
+
+ Set<CompositionEntityValidationData> validationData = new HashSet<>();
+ Collection<ComponentEntity> components = vendorSoftwareProductDao.listComponents(vspId,version);
+ if (!CollectionUtils.isEmpty(components)) {
+ components.forEach(component -> {
+ validateImage(vspId, version, validationData, component);
+ validateNic(vspId, version, validationData, component);
+
+ });
+ }
+ if (CollectionUtils.isEmpty(validationData)) {
+ return null;
+ }
+ ComponentValidationResult componentValidationResult =
+ new ComponentValidationResult(validationData);
+ return componentValidationResult;
+ }
+
+ private void validateNic(String vspId, Version version,
+ Set<CompositionEntityValidationData> validationData,
+ ComponentEntity component) {
+ Collection<NicEntity> nics = nicDao.list(new NicEntity(vspId,version, component.getId(),null));
+ if (CollectionUtils.isNotEmpty(nics)) {
+ nics.forEach(nicEntity -> {
+ NicEntity nic = nicDao.get(new NicEntity(vspId, version, component.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.setEntityName(nic.getNicCompositionData().getName());
+ ErrorCode nicInternalNetworkErrorBuilder = NicInternalNetworkErrorBuilder
+ .getNicNullNetworkIdInternalNetworkIdErrorBuilder();
+ List<String> errors = new ArrayList<>();
+ errors.add(nicInternalNetworkErrorBuilder.message());
+ compositionEntityValidationData.setErrors(errors);
+ validationData.add(compositionEntityValidationData);
+ }
+ });
+ }
+ }
+
+ private void validateImage(String vspId, Version version,
+ Set<CompositionEntityValidationData> validationData,
+ ComponentEntity component) {
+ Collection<ImageEntity> images = vendorSoftwareProductDao.listImages(vspId,version,
+ component.getId());
+ if (CollectionUtils.isEmpty(images)) {
+ CompositionEntityValidationData compositionEntityValidationData = new
+ CompositionEntityValidationData(component.getType(),component.getId());
+ compositionEntityValidationData.setEntityName(component.getComponentCompositionData()
+ .getDisplayName());
+ ErrorCode vfcMissingImageErrorBuilder =
+ ComponentErrorBuilder.VfcMissingImageErrorBuilder();
+ List<String> errors = new ArrayList<>();
+ errors.add(vfcMissingImageErrorBuilder.message());
+ compositionEntityValidationData.setErrors(errors);
+ validationData.add(compositionEntityValidationData);
+ }
+ }
+
+
+
+ private List<ErrorCode> validateCompletedVendorSoftwareProduct(
VspDetails vspDetails, UploadDataEntity uploadData, Object serviceModel) {
- List<ErrorCode> errros = new ArrayList<>();
+ List<ErrorCode> errors = new ArrayList<>();
if (vspDetails.getName() == null) {
- errros.add(createMissingMandatoryFieldError("name"));
+ errors.add(createMissingMandatoryFieldError("name"));
}
if (vspDetails.getDescription() == null) {
- errros.add(createMissingMandatoryFieldError("description"));
+ errors.add(createMissingMandatoryFieldError("description"));
}
if (vspDetails.getVendorId() == null) {
- errros.add(createMissingMandatoryFieldError("vendor Id"));
- }
- if (vspDetails.getVlmVersion() == null) {
- errros.add(createMissingMandatoryFieldError(
- "licensing version (in the format of: {integer}.{integer})"));
+ errors.add(createMissingMandatoryFieldError("vendor Id"));
}
if (vspDetails.getCategory() == null) {
- errros.add(createMissingMandatoryFieldError("category"));
+ errors.add(createMissingMandatoryFieldError("category"));
}
if (vspDetails.getSubCategory() == null) {
- errros.add(createMissingMandatoryFieldError("sub category"));
+ errors.add(createMissingMandatoryFieldError("sub category"));
+ }
+ if (vspDetails.getOnboardingMethod().equals("Manual")) {
+ //Manual Onboarding specific validations
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities = vendorSoftwareProductDao
+ .listDeploymentFlavors(vspDetails.getId(), vspDetails.getVersion());
+ if (CollectionUtils.isEmpty(deploymentFlavorEntities) ) {
+ ErrorCode vspMissingDeploymentFlavorErrorBuilder =
+ VendorSoftwareProductInvalidErrorBuilder.VspMissingDeploymentFlavorErrorBuilder();
+ errors.add(vspMissingDeploymentFlavorErrorBuilder);
+ }
+ errors.addAll(validateMandatoryLicenseFields(vspDetails));
+ } else {
+ //Heat flow specific VSP validations
+ if (uploadData == null || uploadData.getContentData() == null || serviceModel == null) {
+ errors.add(VendorSoftwareProductInvalidErrorBuilder
+ .VendorSoftwareProductMissingServiceModelErrorBuilder(vspDetails.getId(),
+ vspDetails.getVersion()));
+ }
+ if (vspDetails.getVlmVersion() != null || vspDetails.getLicenseAgreement() != null
+ || vspDetails.getFeatureGroups() != null) {
+ errors.addAll(validateMandatoryLicenseFields(vspDetails));
+ }
+ }
+ return errors.isEmpty() ? null : errors;
+ }
+
+ private List<ErrorCode> validateMandatoryLicenseFields(VspDetails vspDetails) {
+ List<ErrorCode> errors = new ArrayList<>();
+ if (vspDetails.getVlmVersion() == null) {
+ errors.add(createMissingMandatoryFieldError(
+ "licensing version (in the format of: {integer}.{integer})"));
}
if (vspDetails.getLicenseAgreement() == null) {
- errros.add(createMissingMandatoryFieldError("license agreement"));
+ errors.add(createMissingMandatoryFieldError("license agreement"));
}
if (CollectionUtils.isEmpty(vspDetails.getFeatureGroups())) {
- errros.add(createMissingMandatoryFieldError("feature groups"));
- }
- if (uploadData == null || uploadData.getContentData() == null || serviceModel == null) {
- errros.add(
- new VendorSoftwareProductInvalidErrorBuilder(vspDetails.getId(), vspDetails.getVersion())
- .build());
+ errors.add(createMissingMandatoryFieldError("feature groups"));
}
-
- return errros.isEmpty() ? null : errros;
+ return errors;
}
private static ErrorCode createMissingMandatoryFieldError(String fieldName) {
@@ -498,6 +711,20 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugEntryMessage("VSP id", vspDetails.getId());
VspDetails retrieved = vspInfoDao.get(vspDetails);
+ if (!retrieved.getOnboardingMethod().equals(vspDetails.getOnboardingMethod())) {
+ final ErrorCode onboardingMethodUpdateErrorCode = OnboardingMethodErrorBuilder
+ .getOnboardingUpdateError();
+
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.UPDATE_VSP, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), onboardingMethodUpdateErrorCode.message());
+
+ throw new CoreException(onboardingMethodUpdateErrorCode);
+ }
+
+ //If any existing feature group is removed from VSP which is also associated in DF then
+ //update DF to remove feature group associations.
+ updateDeploymentFlavor(vspDetails, user);
updateUniqueName(retrieved.getName(), vspDetails.getName());
vspDetails.setOldVersion(retrieved.getOldVersion());
@@ -508,6 +735,28 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
mdcDataDebugMessage.debugExitMessage("VSP id", vspDetails.getId());
}
+ private void updateDeploymentFlavor(VspDetails vspDetails, String user) {
+ final List<String> featureGroups = vspDetails.getFeatureGroups();
+ if (featureGroups != null && !featureGroups.isEmpty() ) {
+ /*final Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ listDeploymentFlavors(vspDetails.getId(), vspDetails.getVersion(), user);*/
+
+ final Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deploymentFlavorDao
+ .list(new DeploymentFlavorEntity(vspDetails.getId(), vspDetails
+ .getVersion(), null));
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ final String featureGroupId =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData().getFeatureGroupId();
+ if ( !featureGroups.contains(featureGroupId)) {
+ DeploymentFlavor deploymentFlavorCompositionData =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+ deploymentFlavorCompositionData.setFeatureGroupId(null);
+ vendorSoftwareProductDao.updateDeploymentFlavor(deploymentFlavorEntity);
+ }
+ }
+ }
+ }
+
@Override
public VspDetails getVsp(String vspId, Version version, String user) {
@@ -554,9 +803,12 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
Version finalVersion = checkinFinalVersion.calculateNextFinal();
createPackage(vspId, finalVersion, user);
return finalVersion;
- } catch (IOException e) {
- throw new Exception(e.getMessage());
+ } catch (IOException ex) {
+ throw new Exception(ex.getMessage());
}
+ default:
+ //do nothing
+ break;
}
return versionInfo.getActiveVersion();
}
@@ -798,15 +1050,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
return null;
}
- FileContentHandler fileContentMap = new FileContentHandler();
-
- try {
- fileContentMap =
- CommonUtil.loadUploadFileContent(uploadData.getContentData().array());
- } catch (Exception e){
- ErrorMessage errorMessage = new ErrorMessage(ErrorLevel.ERROR, e.getMessage());
- validationErrors.put("Upload file", Arrays.asList(errorMessage));
- }
+ FileContentHandler fileContentMap =
+ CommonUtil.validateAndUploadFileContent(uploadData.getContentData().array());
+ //todo - check
ValidationManager validationManager =
ValidationManagerUtil.initValidationManager(fileContentMap);
validationErrors.putAll(validationManager.validate());
@@ -824,7 +1070,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
}
- private QuestionnaireValidationResult validateQuestionnaire(String vspId, Version version) {
+ private QuestionnaireValidationResult validateQuestionnaire(String vspId, Version version,
+ String onboardingMethod) {
mdcDataDebugMessage.debugEntryMessage("VSP id", vspId);
// The apis of CompositionEntityDataManager used here are stateful!
@@ -854,6 +1101,14 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
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));
+
+ if ("Manual".equals(onboardingMethod) ) {
+ Collection<ImageEntity> images = vendorSoftwareProductDao.listImagesByVsp(vspId, version);
+ images.forEach(image -> compositionEntityDataManager.addEntity(image, null));
+ }
+
Map<CompositionEntityId, Collection<String>> errorsByEntityId =
compositionEntityDataManager.validateEntitiesQuestionnaire();
if (MapUtils.isNotEmpty(errorsByEntityId)) {
@@ -894,8 +1149,8 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
OutputStream out = new BufferedOutputStream(new FileOutputStream(infoArtifactFile));
out.write(infoArtifactAsByteBuffer.array());
out.close();
- } catch (IOException e) {
- throw new CoreException(new InformationArtifactCreationErrorBuilder(vspId).build(), e);
+ } catch (IOException ex) {
+ throw new CoreException(new InformationArtifactCreationErrorBuilder(vspId).build(), ex);
}
mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
@@ -917,4 +1172,10 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
VendorSoftwareProductConstants.UniqueValues.VENDOR_SOFTWARE_PRODUCT_NAME,
oldVspName, newVspName);
}
+
+ @Override
+ public Collection<ComputeEntity> getComputeByVsp(String vspId, Version version,
+ String user) {
+ return vendorSoftwareProductDao.listComputesByVsp(vspId, version);
+ }
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VspManagerFactoryImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VspManagerFactoryImpl.java
index 3751195d6c..44c9d155c6 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VspManagerFactoryImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VspManagerFactoryImpl.java
@@ -28,11 +28,15 @@ import org.openecomp.sdc.vendorlicense.VendorLicenseArtifactServiceFactory;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.factory.InformationArtifactGeneratorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
import org.openecomp.sdc.versioning.VersioningManagerFactory;
public class VspManagerFactoryImpl extends VspManagerFactory {
@@ -49,7 +53,10 @@ public class VspManagerFactoryImpl extends VspManagerFactory {
VendorLicenseArtifactServiceFactory.getInstance().createInterface(),
InformationArtifactGeneratorFactory.getInstance().createInterface(),
PackageInfoDaoFactory.getInstance().createInterface(),
- ActivityLogManagerFactory.getInstance().createInterface());
+ ActivityLogManagerFactory.getInstance().createInterface(),
+ DeploymentFlavorDaoFactory.getInstance().createInterface(),
+ NicDaoFactory.getInstance().createInterface(),
+ new ManualVspToscaManagerImpl());
@Override
public VendorSoftwareProductManager createInterface() {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ComponentValidationResult.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ComponentValidationResult.java
new file mode 100644
index 0000000000..8fa655138e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ComponentValidationResult.java
@@ -0,0 +1,24 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+
+import java.util.Set;
+
+public class ComponentValidationResult {
+ private boolean valid;
+ private Set<CompositionEntityValidationData> validationData;
+
+ public ComponentValidationResult(Set<CompositionEntityValidationData> validationData) {
+ this.validationData = validationData;
+ valid = validationData == null;
+ }
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public Set<CompositionEntityValidationData> getValidationData() {
+ return validationData;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/DeploymentFlavorValidationResult.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/DeploymentFlavorValidationResult.java
new file mode 100644
index 0000000000..6f02c98012
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/DeploymentFlavorValidationResult.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+
+import java.util.Set;
+
+public class DeploymentFlavorValidationResult {
+ private boolean valid;
+ private Set<CompositionEntityValidationData> validationData;
+
+ public DeploymentFlavorValidationResult(Set<CompositionEntityValidationData> validationData){
+ this.validationData = validationData;
+ valid = validationData == null;
+ }
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public Set<CompositionEntityValidationData> getValidationData() {
+ return validationData;
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ListComputeResponse.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ListComputeResponse.java
new file mode 100644
index 0000000000..7306fe948f
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/ListComputeResponse.java
@@ -0,0 +1,28 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types;
+
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+
+public class ListComputeResponse {
+
+ private ComputeEntity computeEntity;
+ private boolean associatedWithDeploymentFlavor;
+
+ public boolean isAssociatedWithDeploymentFlavor() {
+ return associatedWithDeploymentFlavor;
+ }
+
+ public void setAssociatedWithDeploymentFlavor(boolean associatedWithDeploymentFlavor) {
+ this.associatedWithDeploymentFlavor = associatedWithDeploymentFlavor;
+ }
+
+ public ComputeEntity getComputeEntity() {
+ return computeEntity;
+ }
+
+ public void setComputeEntity(
+ ComputeEntity computeEntity) {
+ this.computeEntity = computeEntity;
+ }
+
+
+}
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 eb03ba62b4..ea5bef13dc 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
@@ -22,10 +22,10 @@ package org.openecomp.sdc.vendorsoftwareproduct.types;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.common.errors.ErrorCode;
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.types.LoggerServiceName;
import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
@@ -41,6 +41,9 @@ 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;
@@ -67,6 +70,7 @@ public class ValidationResponse {
VendorSoftwareProductUtils.setErrorsIntoLogger(vspErrors, serviceName, targetServiceName);
}
+
public Collection<ErrorCode> getLicensingDataErrors() {
return licensingDataErrors;
}
@@ -145,4 +149,40 @@ public class ValidationResponse {
}
+ 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/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MibUploadStatus.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MonitoringUploadStatus.java
index 046d53054e..ad604e822e 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MibUploadStatus.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/MonitoringUploadStatus.java
@@ -20,17 +20,21 @@
package org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator;
-public class MibUploadStatus {
+public class MonitoringUploadStatus {
private String snmpTrap;
private String snmpPoll;
+ private String vesEvent;
- public MibUploadStatus(String snmpTrap, String snmpPoll) {
+ //todo 1802 tech debt story : refactor this to be a map of type-filename
+
+
+ public MonitoringUploadStatus(String snmpTrap, String snmpPoll) {
this.snmpTrap = snmpTrap;
this.snmpPoll = snmpPoll;
}
- public MibUploadStatus() {
+ public MonitoringUploadStatus() {
}
public String getSnmpTrap() {
@@ -45,7 +49,17 @@ public class MibUploadStatus {
return snmpPoll;
}
+ public String getVesEvent() {
+ return vesEvent;
+ }
+
+ public void setVesEvent(String vesEvent) {
+ this.vesEvent = vesEvent;
+ }
+
public void setSnmpPoll(String snmpPoll) {
this.snmpPoll = snmpPoll;
+
+
}
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
new file mode 100644
index 0000000000..981bfe941a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
@@ -0,0 +1,418 @@
+package org.openecomp.sdc.vendorsoftwareproduct.utils;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.generator.datatypes.tosca.ComputeFlavor;
+import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
+import org.openecomp.sdc.generator.datatypes.tosca.LicenseFlavor;
+import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
+import org.openecomp.sdc.generator.datatypes.tosca.VendorInfo;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
+import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
+import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
+import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
+import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.image.ImageDetails;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+
+public class ManualVspDataCollectionService {
+
+ private static final DeploymentFlavorManager deploymentFlavorManager =
+ DeploymentFlavorManagerFactory.getInstance().createInterface();
+ private static final ComputeManager computeManager =
+ ComputeManagerFactory.getInstance().createInterface();
+ private static final ImageManager imageManager =
+ ImageManagerFactory.getInstance().createInterface();
+ private static final ComponentManager componentManager =
+ ComponentManagerFactory.getInstance().createInterface();
+ private static final VendorSoftwareProductManager vendorSoftwareProductManager =
+ VspManagerFactory.getInstance().createInterface();
+ private static final NicManager nicManager =
+ NicManagerFactory.getInstance().createInterface();
+ private static final VendorLicenseFacade vendorLicenseFacade =
+ VendorLicenseFacadeFactory.getInstance().createInterface();
+
+
+ /**
+ * Gets vendor name for the vsp.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param user the user
+ * @return the release vendor name
+ */
+ public Optional<String> getReleaseVendor(String vspId, Version version, String user) {
+ String vendorName = null;
+ VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
+ if (Objects.nonNull(vspDetails)) {
+ vendorName = vspDetails.getVendorName();
+ }
+ return Optional.ofNullable(vendorName);
+ }
+
+ /**
+ * Gets the deployment flavor data for manually onboarded VSPs.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param user the user
+ * @return the allowed flavors
+ */
+ public Map<String, DeploymentFlavorModel> getAllowedFlavors(String vspId, Version version,
+ String user) {
+ Map<String, DeploymentFlavorModel> allowedFlavors = new HashMap<>();
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+ if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ DeploymentFlavor deploymentFlavorCompositionData =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+
+ VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
+ String vspVlmId;
+ Version vlmVersion;
+ if (Objects.nonNull(vspDetails)) {
+ vspVlmId = vspDetails.getVendorId();
+ vlmVersion = vspDetails.getVlmVersion();
+ if (StringUtils.isNotEmpty(vspVlmId)) {
+ DeploymentFlavorModel deploymentFlavorModel = new DeploymentFlavorModel();
+ String featureGroupId = deploymentFlavorCompositionData.getFeatureGroupId();
+ if (Objects.isNull(featureGroupId)) {
+ //No feature group associated with deployment flavor. So excluding this deployment
+ // flavor for Tosca model
+ continue;
+ }
+ //Gather and set License flavor info
+ LicenseFlavor licenseFlavor = getLicenseFlavor(featureGroupId);
+ deploymentFlavorModel.setLicense_flavor(licenseFlavor);
+ //Get sp_part_number
+ Optional<String> partNumber = getPartNumber(vspVlmId, vlmVersion, featureGroupId,
+ user);
+ partNumber.ifPresent(deploymentFlavorModel::setSp_part_number);
+ //Gather and set Vendor Info
+ Optional<VendorInfo> vendorInfo = getVendorInfo(vspVlmId, vlmVersion, featureGroupId,
+ user);
+ vendorInfo.ifPresent(deploymentFlavorModel::setVendor_info);
+ //Gather and set Compute info
+ List<ComponentComputeAssociation> componentComputeAssociations =
+ deploymentFlavorCompositionData.getComponentComputeAssociations();
+ if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
+ for (ComponentComputeAssociation componentComputeAssociation :
+ componentComputeAssociations) {
+ String componentId = componentComputeAssociation.getComponentId();
+ String computeFlavorId = componentComputeAssociation.getComputeFlavorId();
+ Optional<ComputeFlavor> computeFlavor =
+ getComputeFlavor(vspId, version, componentId, computeFlavorId, user);
+ computeFlavor.ifPresent(deploymentFlavorModel::setCompute_flavor);
+ }
+ }
+ partNumber.ifPresent(spPartNumber -> allowedFlavors.put(spPartNumber,
+ deploymentFlavorModel));
+ }
+ }
+ }
+ }
+ return allowedFlavors;
+ }
+
+ /**
+ * Gets the component image data for manually onboarded VSPs.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param user the user
+ * @return the vsp component images
+ */
+ public Map<String, List<MultiFlavorVfcImage>> getVspComponentImages(String vspId,
+ Version version,
+ String user) {
+ Map<String, List<MultiFlavorVfcImage>> vspComponentImages = new HashMap<>();
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ DeploymentFlavor deploymentFlavorCompositionData =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+
+ List<ComponentComputeAssociation> componentComputeAssociations =
+ deploymentFlavorCompositionData.getComponentComputeAssociations();
+ if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
+ for (ComponentComputeAssociation componentComputeAssociation :
+ componentComputeAssociations) {
+ String componentId = componentComputeAssociation.getComponentId();
+ List<MultiFlavorVfcImage> componentImages =
+ getComponentImages(vspId, version, componentId, user);
+ if (CollectionUtils.isNotEmpty(componentImages)) {
+ vspComponentImages.put(componentId, componentImages);
+ }
+ }
+ }
+ }
+ return vspComponentImages;
+ }
+
+ /**
+ * Gets the component data for manually onboarded VSPs.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param user the user
+ * @return the vsp components
+ */
+ public Map<String, String> getVspComponents(String vspId, Version version, String user) {
+ Map<String, String> componentIdNameMap = new HashMap<>();
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ DeploymentFlavor deploymentFlavorCompositionData =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+
+ List<ComponentComputeAssociation> componentComputeAssociations =
+ deploymentFlavorCompositionData.getComponentComputeAssociations();
+ if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
+ for (ComponentComputeAssociation componentComputeAssociation :
+ componentComputeAssociations) {
+ String componentId = componentComputeAssociation.getComponentId();
+ Optional<String> componentName = getComponentName(vspId, version, componentId, user);
+ componentName.ifPresent(name -> componentIdNameMap.put(componentId, name));
+ }
+ }
+ }
+ return componentIdNameMap;
+ }
+
+ /**
+ * Gets the NIC data for manually onboarded VSPs.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param user the user
+ * @return the vsp component nics
+ */
+ public Map<String, List<Nic>> getVspComponentNics(String vspId, Version version, String user) {
+ Map<String, List<Nic>> vspComponentNics = new HashMap<>();
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+ if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ DeploymentFlavor deploymentFlavorCompositionData =
+ deploymentFlavorEntity.getDeploymentFlavorCompositionData();
+ if (Objects.nonNull(deploymentFlavorCompositionData)) {
+ List<ComponentComputeAssociation> componentComputeAssociations =
+ deploymentFlavorCompositionData.getComponentComputeAssociations();
+ if (CollectionUtils.isNotEmpty(componentComputeAssociations)) {
+ for (ComponentComputeAssociation componentComputeAssociation :
+ componentComputeAssociations) {
+ String componentId = componentComputeAssociation.getComponentId();
+ List<Nic> componentNics = getComponentNics(vspId, version, componentId, user);
+ if (CollectionUtils.isNotEmpty(componentNics)) {
+ vspComponentNics.put(componentId, componentNics);
+ }
+ }
+ }
+ }
+ }
+ }
+ return vspComponentNics;
+ }
+
+ private List<Nic> getComponentNics(String vspId, Version version, String componentId,
+ String user) {
+ List<Nic> componentNics = new ArrayList<>();
+ Collection<NicEntity> nics = nicManager.listNics(vspId, version, componentId, user);
+ if (Objects.nonNull(nics)) {
+ for (NicEntity nicEntity : nics) {
+ String nicId = nicEntity.getId();
+ CompositionEntityResponse<Nic> nicCompositionEntityResponse =
+ nicManager.getNic(vspId, version, componentId, nicId, user);
+ if (Objects.nonNull(nicCompositionEntityResponse)
+ && Objects.nonNull(nicCompositionEntityResponse.getData())) {
+ componentNics.add(nicCompositionEntityResponse.getData());
+ }
+ }
+ }
+ return componentNics;
+ }
+
+ private LicenseFlavor getLicenseFlavor(String featureGroupId) {
+ LicenseFlavor licenseFlavor = new LicenseFlavor();
+ licenseFlavor.setFeature_group_uuid(featureGroupId);
+ return licenseFlavor;
+ }
+
+ private Optional<String> getPartNumber(String vlmId, Version version,
+ String featureGroupId, String user) {
+ FeatureGroupModel featureGroup = getFeatureGroup(vlmId, version, featureGroupId, user);
+ if (Objects.nonNull(featureGroup)) {
+ return Optional.ofNullable(featureGroup.getFeatureGroup().getPartNumber());
+ }
+ return Optional.empty();
+ }
+
+ private Optional<VendorInfo> getVendorInfo(String vlmId, Version version,
+ String featureGroupId, String user) {
+ VendorInfo vendorInfo = null;
+ FeatureGroupModel featureGroup = getFeatureGroup(vlmId, version, featureGroupId, user);
+ if (Objects.nonNull(featureGroup)) {
+ //Process Feature group to get Manufacturer ref no.
+ String manufacturerReferenceNumber = featureGroup.getEntityManufacturerReferenceNumber();
+ vendorInfo = new VendorInfo();
+ vendorInfo.setVendor_model(vlmId);
+ if (Objects.nonNull(manufacturerReferenceNumber)) {
+ vendorInfo.setManufacturer_reference_number(manufacturerReferenceNumber);
+ }
+ }
+ return Optional.ofNullable(vendorInfo);
+ }
+
+ private Optional<ComputeFlavor> getComputeFlavor(String vspId, Version version,
+ String componentId, String computeFlavorId,
+ String user) {
+ ComputeFlavor computeFlavor = null;
+ QuestionnaireResponse computeQuestionnaire;
+ try {
+ computeQuestionnaire = computeManager.getComputeQuestionnaire(vspId, version, componentId,
+ computeFlavorId, user);
+ } catch (Exception ex) {
+ computeQuestionnaire = null;
+ }
+ if (Objects.nonNull(computeQuestionnaire)) {
+ String computeQuestionnaireData = computeQuestionnaire.getData();
+ if (Objects.nonNull(computeQuestionnaireData)) {
+ Compute compute;
+ try {
+ compute = JsonUtil.json2Object(computeQuestionnaireData, Compute.class);
+ } catch (Exception ex) {
+ compute = null;
+ }
+ if (Objects.nonNull(compute.getVmSizing())) {
+ computeFlavor = new ComputeFlavor();
+ if (Objects.nonNull(compute.getVmSizing().getNumOfCPUs())) {
+ computeFlavor.setNum_cpus(compute.getVmSizing().getNumOfCPUs());
+ }
+ if (Objects.nonNull(compute.getVmSizing().getFileSystemSizeGB())) {
+ computeFlavor.setDisk_size(compute.getVmSizing().getFileSystemSizeGB() + "GB");
+ }
+ if (Objects.nonNull(compute.getVmSizing().getMemoryRAM())) {
+ computeFlavor.setMem_size(compute.getVmSizing().getMemoryRAM() + "GB");
+ }
+ }
+ }
+ }
+ return Optional.ofNullable(computeFlavor);
+ }
+
+ private FeatureGroupModel getFeatureGroup(String vlmId, Version version, String featureGroupId,
+ String user) {
+ FeatureGroupEntity fgInput = new FeatureGroupEntity();
+ fgInput.setVendorLicenseModelId(vlmId);
+ fgInput.setVersion(version);
+ fgInput.setId(featureGroupId);
+ return vendorLicenseFacade.getFeatureGroupModel(fgInput, user);
+ }
+
+ private Optional<String> getComponentName(String vspId, Version version, String componentId,
+ String user) {
+ CompositionEntityResponse<ComponentData> component =
+ componentManager.getComponent(vspId, version, componentId, user);
+ if (Objects.nonNull(component.getData())) {
+ return Optional.ofNullable(component.getData().getDisplayName());
+ }
+ return Optional.empty();
+ }
+
+ private List<MultiFlavorVfcImage> getComponentImages(String vspId, Version version,
+ String componentId, String user) {
+ List<MultiFlavorVfcImage> componentImages = new ArrayList<>();
+ MultiFlavorVfcImage multiFlavorVfcImage = null;
+ Collection<ImageEntity> imageEntities =
+ imageManager.listImages(vspId, version, componentId, user);
+ if (Objects.nonNull(imageEntities)) {
+ for (ImageEntity imageEntity : imageEntities) {
+ String imageId = imageEntity.getId();
+ QuestionnaireResponse imageQuestionnaire =
+ imageManager.getImageQuestionnaire(vspId, version, componentId, imageId, user);
+ CompositionEntityResponse<Image> imageCompositionData =
+ imageManager.getImage(vspId, version, componentId, imageId, user);
+ if (Objects.nonNull(imageQuestionnaire)
+ && Objects.nonNull(imageQuestionnaire.getData())
+ && Objects.nonNull(imageCompositionData)) {
+ ImageDetails imageDetails;
+ try {
+ imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(),
+ ImageDetails.class);
+ } catch (Exception ex) {
+ imageDetails = null;
+ }
+ if (Objects.nonNull(imageDetails)
+ && Objects.nonNull(imageDetails.getVersion())) {
+ //Image version is used as a key for the image block
+ //So excluding the population if questionnaire data is absent or invalid
+ multiFlavorVfcImage = new MultiFlavorVfcImage();
+ Image image = imageCompositionData.getData();
+ Optional<String> toscaImageFileName = getToscaImageFileName(image, imageDetails);
+ toscaImageFileName.ifPresent(multiFlavorVfcImage::setFile_name);
+ multiFlavorVfcImage.setSoftware_version(imageDetails.getVersion());
+ if (Objects.nonNull(imageDetails.getMd5())) {
+ multiFlavorVfcImage.setFile_hash(imageDetails.getMd5());
+ }
+ multiFlavorVfcImage.setFile_hash_type("md5");
+ componentImages.add(multiFlavorVfcImage);
+ }
+ }
+ }
+ }
+ return componentImages;
+ }
+
+ private Optional<String> getToscaImageFileName(Image image, ImageDetails imageDetails) {
+ String toscaImageFileName = null;
+ StringBuilder builder = new StringBuilder();
+ if (Objects.nonNull(image.getFileName())) {
+ builder.append(image.getFileName());
+ builder.append("-");
+ builder.append(imageDetails.getVersion());
+ if (Objects.nonNull(imageDetails.getFormat())) {
+ builder.append(".");
+ builder.append(imageDetails.getFormat());
+ }
+ }
+ toscaImageFileName = builder.toString();
+ if (toscaImageFileName.isEmpty()) {
+ return Optional.empty();
+ }
+ return Optional.ofNullable(toscaImageFileName);
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VendorSoftwareProductUtils.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VendorSoftwareProductUtils.java
index 3e7e83d3ba..08528408d6 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VendorSoftwareProductUtils.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/VendorSoftwareProductUtils.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.utils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.errors.Messages;
@@ -35,7 +35,7 @@ import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorDescription;
import org.openecomp.sdc.logging.types.LoggerServiceName;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse;
import org.slf4j.MDC;
@@ -47,6 +47,8 @@ import java.util.List;
import java.util.Map;
public class VendorSoftwareProductUtils {
+
+ private static final String MANUAL = "Manual";
protected static Logger logger =
(Logger) LoggerFactory.getLogger(VendorSoftwareProductUtils.class);
@@ -92,12 +94,7 @@ public class VendorSoftwareProductUtils {
public static void validateContentZipData(FileContentHandler contentMap,
Map<String, List<ErrorMessage>> errors) {
MDC.put(LoggerConstants.ERROR_DESCRIPTION, LoggerErrorDescription.INVALID_ZIP);
- if (contentMap == null) {
- ErrorMessage.ErrorMessageUtil.addMessage(SdcCommon.UPLOAD_FILE, errors).add(
- new ErrorMessage(ErrorLevel.ERROR,
- Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage()));
-
- } else if (contentMap.getFileList().size() == 0) {
+ if (contentMap.getFileList().size() == 0) {
ErrorMessage.ErrorMessageUtil.addMessage(SdcCommon.UPLOAD_FILE, errors)
.add(new ErrorMessage(ErrorLevel.ERROR, Messages.INVALID_ZIP_FILE.getErrorMessage()));
}
@@ -105,27 +102,26 @@ public class VendorSoftwareProductUtils {
/**
- * Filter non trap or poll artifacts map.
+ * Maps all artifacts by type.
*
* @param artifacts the artifacts
* @return the map
*/
- public static Map<ArtifactType, String> filterNonTrapOrPollArtifacts(
- Collection<MibEntity> artifacts) {
- Map<ArtifactType, String> artifactTypeToFilename = new HashMap<>();
+ public static Map<MonitoringUploadType, String> mapArtifactsByType(
+ Collection<ComponentMonitoringUploadEntity> artifacts) {
+ Map<MonitoringUploadType, String> artifactTypeToFilename = new HashMap<>();
- for (MibEntity entity : artifacts) {
- if (isTrapOrPoll(entity.getType())) {
- artifactTypeToFilename.put(entity.getType(), entity.getArtifactName());
- }
+ for (ComponentMonitoringUploadEntity entity : artifacts) {
+ artifactTypeToFilename.put(entity.getType(), entity.getArtifactName());
}
return artifactTypeToFilename;
}
- private static boolean isTrapOrPoll(ArtifactType type) {
- return type.equals(ArtifactType.SNMP_POLL) || type.equals(ArtifactType.SNMP_TRAP);
+ private static boolean isTrapOrPoll(MonitoringUploadType type) {
+ return type.equals(MonitoringUploadType.SNMP_POLL) ||
+ type.equals(MonitoringUploadType.SNMP_TRAP);
}
@@ -178,4 +174,13 @@ public class VendorSoftwareProductUtils {
}
}
+ /*public static boolean isManual(String vspId, Version version, VendorSoftwareProductInfoDao
+ vspInfoDao) {
+ String onboardingMethod = vspInfoDao.get(new VspDetails(vspId, version)).getOnboardingMethod();
+ if (MANUAL.equals(onboardingMethod)) {
+ return true;
+ }
+ return false;
+ }*/
+
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/factoryConfiguration.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/factoryConfiguration.json
index f736c8f115..71d42932d9 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/factoryConfiguration.json
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/resources/factoryConfiguration.json
@@ -5,7 +5,10 @@
"org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.NicManagerFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.OrchestrationTemplateCandidateManagerFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.ProcessManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.ProcessManagerFactoryImpl",
- "org.openecomp.sdc.vendorsoftwareproduct.MibManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.MibManagerFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.MonitoringUploadsManagerFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.ComponentDependencyModelManagerFactoryImpl",
- "org.openecomp.sdc.vendorsoftwareproduct.factories.VspServiceFactory": "org.openecomp.sdc.vendorsoftwareproduct.factories.impl.VspServiceFactoryImpl"
+ "org.openecomp.sdc.vendorsoftwareproduct.factories.VspServiceFactory": "org.openecomp.sdc.vendorsoftwareproduct.factories.impl.VspServiceFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.ComputeManagerFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.DeploymentFlavorManagerFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.impl.ImageManagerFactoryImpl"
} \ 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/ComputeTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeTest.java
new file mode 100644
index 0000000000..ab7a70b6a7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ComputeTest.java
@@ -0,0 +1,293 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_COMPUTE_NAME_NOT_ALLOWED;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.common.errors.CoreException;
+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.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+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.Test;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+public class ComputeTest {
+
+ /*private static final String USER1 = "componentsTestUser1";
+ private static final String USER2 = "componentsTestUser2";
+ private static final Version VERSION01 = new Version(0, 1);
+ private static final VendorSoftwareProductManager vendorSoftwareProductManager =
+ new VendorSoftwareProductManagerImpl();
+ private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory
+ .getInstance().createInterface();
+
+ private static String vsp1Id;
+ private static String vsp2Id;
+ private static String comp1 = "{\"displayName\": \"VFC_Manual\", " +
+ "\"description\": \"desc manual\"}";
+ private static String compute1 = "{\"name\": \"Compute_A\", " +
+ "\"description\": \"desc manual compute\"}";
+ private static String computeDelete = "{\"name\": \"Compute_Delete\", " +
+ "\"description\": \"desc manual compute delete\"}";
+
+ private static String comp1Id;
+ private static String compute1Id;
+ private ComputeEntity createdCompute;
+
+ static ComponentEntity createComponent(String vspId, Version version, String compId) {
+ ComponentEntity componentEntity = new ComponentEntity(vspId, version, compId);
+ ComponentData compData = new ComponentData();
+ compData.setName(compId + " name");
+ compData.setDisplayName(compId + " display name");
+ compData.setDescription(compId + " desc");
+ componentEntity.setComponentCompositionData(compData);
+ vendorSoftwareProductDao.createComponent(componentEntity);
+ return componentEntity;
+ }
+
+ static ComputeEntity createComputeEntity(String vspId, String componentId, String data ){
+ ComputeEntity comp = new ComputeEntity();
+ comp.setVspId(vspId);
+ comp.setComponentId(componentId);
+ comp.setCompositionData(data);
+ return comp;
+ }
+
+ @BeforeClass
+ private void init() {
+ VspDetails
+ vsp1 = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null,
+ VSPCommon.OnboardingMethod.HEAT.name()), USER1
+ );
+ vsp1Id = vsp1.getId(); //HEAT onboarded
+
+ VspDetails vsp2 = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3",
+ "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null, VSPCommon
+ .OnboardingMethod.Manual.name()), USER1);
+ vsp2Id = vsp2.getId(); //MANUAL onboarded
+
+ ComponentEntity component = new ComponentEntity();
+ component.setVspId(vsp2Id);
+ component.setCompositionData(comp1);
+ ComponentEntity createdComp = vendorSoftwareProductManager.createComponent(component, USER1);
+ comp1Id = createdComp.getId();
+ }
+
+ @Test
+ public void testListWhenNone() {
+
+ final Collection<ListComputeResponse> listComputeResponses =
+ vendorSoftwareProductManager.listCompute(vsp2Id, null, comp1Id, USER1);
+ Assert.assertEquals(listComputeResponses.size(), 0);
+ }
+
+ @Test
+ public void testCreateComputeInHeatOnboardedVsp_negative() {
+ ComputeEntity comp = createComputeEntity(vsp1Id,comp1Id,compute1);
+ try {
+ createdCompute = vendorSoftwareProductManager.createCompute(comp, USER1);
+ Assert.fail();
+ }
+ catch(CoreException exception){
+ Assert.assertEquals(exception.code().id(),ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+ }
+
+ @Test(dependsOnMethods = "testListWhenNone")
+ public void testCreateCompute() {
+ ComputeEntity comp = createComputeEntity(vsp2Id,comp1Id,compute1);
+
+ createdCompute = vendorSoftwareProductManager.createCompute(comp, USER1);
+ compute1Id = createdCompute.getId();
+ Assert.assertNotNull(compute1Id);
+ Assert.assertNotNull(createdCompute.getCompositionData());
+ Assert.assertNotNull(
+ vendorSoftwareProductManager.getCompute(vsp2Id, VERSION01, comp1Id,compute1Id,
+ USER1).getData());
+ }
+
+ @Test(dependsOnMethods = "testCreateCompute")
+ public void testCreateComputeNegative() {
+ ComputeEntity comp = createComputeEntity(vsp2Id,comp1Id,compute1);
+
+ try {
+ ComputeEntity createdCompute = vendorSoftwareProductManager.createCompute(comp, USER1);
+ Assert.fail();
+ }
+ catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(),DUPLICATE_COMPUTE_NAME_NOT_ALLOWED);
+ }
+ }
+
+ @Test
+ public void testGetNonExistingComponentId_negative() {
+ testGet_negative(vsp1Id, null, "non existing component id", compute1Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testGetNonExistingVspId_negative() {
+ testGet_negative("non existing vsp id", null, comp1Id, compute1Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ @Test
+ public void testGetNonExistingComputeId_negative() {
+ testGet_negative(vsp1Id, null, comp1Id, "non existing compute id", USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test(dependsOnMethods = "testCreateCompute")
+ public void testGetCompute() {
+ testGet(vsp2Id, VERSION01, comp1Id, compute1Id, USER1, createdCompute);
+ }
+
+
+ @Test(dependsOnMethods = "testCreateCompute")
+ public void testListCompute() {
+
+ final Collection<ListComputeResponse> actual =
+ vendorSoftwareProductManager.listCompute(vsp2Id, null, comp1Id, USER1);
+ Assert.assertEquals(actual.size(), 1);
+ actual.forEach(listComputeResponse -> {
+ Assert.assertEquals(listComputeResponse.isAssociatedWithDeploymentFlavor(), false);
+ } );
+ }
+
+
+ @Test(dependsOnMethods = "testListCompute")
+ public void testListComputeAssociatedWithDeployment() {
+
+ //Create DF and associate compute1Id CF to it
+ String deployment1Id = null;
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id,
+ VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("DF_testListComputeAssociatedWithDeployment");
+ deploymentFlavor.setDescription("creating a deployment flavor with compute flavor association");
+ ComponentComputeAssociation association = new ComponentComputeAssociation();
+ association.setComponentId(comp1Id);
+ association.setComputeFlavorId(compute1Id);
+ List<ComponentComputeAssociation> associations = new ArrayList<ComponentComputeAssociation>();
+ associations.add(association);
+ deploymentFlavor.setComponentComputeAssociations(associations);
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+
+ DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ Assert.assertEquals((createddeployment.getId() != null), true);
+ deployment1Id = createddeployment.getId();
+
+ final Collection<ListComputeResponse> actual =
+ vendorSoftwareProductManager.listCompute(vsp2Id, null, comp1Id, USER1);
+ Assert.assertEquals(actual.size(), 1);
+ actual.forEach(listComputeResponse -> {
+ Assert.assertEquals(listComputeResponse.isAssociatedWithDeploymentFlavor(), true);
+ } );
+ }
+
+ @Test
+ public void testUpdateNonExistingComponentId_negative() {
+ testUpdate_negative(vsp1Id, "non existing component id", USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testUpdateNonExistingVspId_negative() {
+ testUpdate_negative("non existing vsp id", comp1Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ @Test
+ public void testDelete() {
+ ComputeEntity comp = createComputeEntity(vsp2Id,comp1Id,computeDelete);
+
+ ComputeEntity created = vendorSoftwareProductManager.createCompute(comp, USER1);
+
+ vendorSoftwareProductManager.deleteCompute(vsp2Id,comp1Id,created.getId(),USER1);
+ testGet_negative(vsp2Id,null, comp1Id, created.getId(),USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteNonExistingComputeId_negative() {
+ testDelete_negative(vsp2Id,comp1Id,"InvalidComputeId",USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteNonExistingComponentId_negative() {
+ testDelete_negative(vsp2Id,"InvalidComponentId",compute1Id,USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteNonExistingVspId_negative() {
+ testDelete_negative("InvalidVspId",comp1Id,compute1Id,USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ private void testGet(String vspId, Version version, String componentId, String computeId, String
+ user, ComputeEntity expected) {
+ CompositionEntityResponse<ComputeData>
+ response = vendorSoftwareProductManager.getCompute(vspId, null, componentId, computeId,
+ user);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(response.getData(), expected.getComputeCompositionData());
+ Assert.assertNotNull(response.getSchema());
+ }
+
+ private void testGet_negative(String vspId, Version version, String componentId, String computeId,
+ String user, String expectedErrorCode) {
+ try {
+ vendorSoftwareProductManager.getCompute(vspId, version, componentId, computeId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testDelete_negative(String vspId, String componentId, String computeId, String user,
+ String expectedErrorCode){
+ try {
+ vendorSoftwareProductManager.deleteCompute(vspId, componentId, computeId, user);
+ Assert.fail();
+ }
+ catch(CoreException exception){
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testUpdate_negative(String vspId, String componentId, String user,
+ String expectedErrorCode) {
+ try {
+ vendorSoftwareProductManager
+ .updateComponent(new ComponentEntity(vspId, null, componentId), user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }*/
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java
new file mode 100644
index 0000000000..e3fa0a8480
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/DeploymentFlavorTest.java
@@ -0,0 +1,432 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.FEATURE_GROUP_NOT_EXIST_FOR_VSP;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.INVALID_COMPONENT_COMPUTE_ASSOCIATION;
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.INVALID_COMPUTE_FLAVOR_ID;
+import static org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST;
+import static org.openecomp.sdc.versioning.errors.VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.impl.VendorSoftwareProductManagerImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+public class DeploymentFlavorTest {
+ /*private static final String USER1 = "deploymentTestUser1";
+ private static final String USER2 = "deploymentTestUser2";
+ private static final Version VERSION01 = new Version(0, 1);
+ private static final VendorSoftwareProductManager vendorSoftwareProductManager =
+ new VendorSoftwareProductManagerImpl();
+ private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory.getInstance().createInterface();
+
+ private static String vsp1Id;
+ private static String vsp2Id;
+ private static String vsp3Id;
+ private static String component11Id;
+ private static String component21Id;
+ private static String deployment1Id = "deployment1";
+ private static String deployment2Id = "deployment2";
+
+ @BeforeClass
+ private void init() {
+ List<String> featureGroups = new ArrayList<>();
+ featureGroups.add("fg01");
+ featureGroups.add("fg02");
+ vsp1Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName1",
+ "vlm1Id", "icon", "category", "subCategory", "123", featureGroups,
+ VSPCommon.OnboardingMethod.
+ Manual.name()), USER1).getId();
+ component11Id = ComponentsTest.createComponent(vsp1Id, VERSION01, "component11").getId();
+
+ vsp2Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName1",
+ "vlm1Id", "icon", "category", "subCategory", "123", null,
+ VSPCommon.OnboardingMethod.Manual.name()), USER1).getId();
+ component21Id = ComponentsTest.createComponent(vsp2Id, VERSION01, "component21").getId();
+
+ vsp3Id = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3forDeployment",
+ "vendorName1",
+ "vlm1Id", "icon", "category", "subCategory", "123", null,
+ VSPCommon.OnboardingMethod.HEAT.name()), USER1).getId();
+ }
+
+ static DeploymentFlavorEntity createDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) {
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel(deploymentFlavorId + " name");
+ deploymentFlavor.setDescription(deploymentFlavorId + " desc");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager
+ .createDeploymentFlavor(deploymentFlavorEntity, USER1);
+ deployment2Id = createdDeployment.getId();
+ return deploymentFlavorEntity;
+ }
+
+ @Test
+ public void testCreate() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
+ deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
+ "association");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ Assert.assertEquals((createddeployment.getId() != null), true);
+ deployment1Id = createddeployment.getId();
+ }
+
+ @Test(dependsOnMethods = "testCreate")
+ public void testUniqueModelCreate() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
+ deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
+ "association");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED);
+ }
+ }
+
+ @Test
+ public void testInvalidFeatureGroup() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestInvalidFeatureGroup");
+ deploymentFlavor.setDescription("creating a deployment flavor with invalid FG and without any" +
+ " " +
+ "association");
+ deploymentFlavor.setFeatureGroupId("fg01");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), FEATURE_GROUP_NOT_EXIST_FOR_VSP);
+ }
+ }
+
+ @Test
+ public void testInvalidAssociation() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("testInvalidAssociation");
+ deploymentFlavor.setDescription("creating a deployment flavor with wrong association with " +
+ "null compute flavor id");
+ List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
+ ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
+ componentComputeAssociation.setComputeFlavorId("72138712");
+ componentComputeAssociationList.add(componentComputeAssociation);
+ deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), INVALID_COMPONENT_COMPUTE_ASSOCIATION);
+ }
+
+ }
+
+ @Test
+ public void testInvalidComputeFlavorIdAssociation() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("testInvalidComputeFlavorIdAssociation");
+ deploymentFlavor.setDescription("creating a deployment flavor with wrong compute flavor id in" +
+ " assocation");
+ List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
+ ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
+ componentComputeAssociation.setComponentId(component21Id);
+ componentComputeAssociation.setComputeFlavorId("123123");
+ componentComputeAssociationList.add(componentComputeAssociation);
+ deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), INVALID_COMPUTE_FLAVOR_ID);
+ }
+
+ }
+
+ @Test
+ public void testInvalidVfcIdAssociation() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("testInvalidVfcIdAssociation");
+ deploymentFlavor.setDescription("creating a deployment flavor with invalid vfcid association");
+ List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
+ ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
+ componentComputeAssociation.setComponentId("WRONGVFCID");
+ componentComputeAssociation.setComputeFlavorId("123123");
+ componentComputeAssociationList.add(componentComputeAssociation);
+ deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+ }
+
+ @Test
+ public void testNegativeforVspHeatOnboarded() {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp3Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentcreatewithoutFG");
+ deploymentFlavor.setDescription("creating a deployment flavor for VSP onboarded with HEAT");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ try {
+ vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(),
+ CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+ }
+
+ @Test
+ public void testGetNegative_InvalidVspId(){
+ testGetNegative("InvalidVspId", VERSION01, deployment1Id, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ @Test
+ public void testGetNegative_InvalidDeploymentFlavorId(){
+ testGetNegative(vsp1Id, VERSION01, deployment1Id, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testGet(){
+ DeploymentFlavorEntity expected = createDeploymentFlavor(vsp1Id, VERSION01,deployment2Id);
+ testGet(vsp1Id, VERSION01, deployment2Id, USER1, expected);
+ }
+
+ private void testGet(String vspId, Version version, String componentId, String user,
+ DeploymentFlavorEntity expected) {
+ CompositionEntityResponse<DeploymentFlavor> response = vendorSoftwareProductManager
+ .getDeploymentFlavor(vspId, null, componentId, user);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(response.getData().getDescription(),
+ expected.getDeploymentFlavorCompositionData().getDescription());
+ Assert.assertEquals(response.getData().getModel(),
+ expected.getDeploymentFlavorCompositionData().getModel());
+ Assert.assertEquals(response.getData().getFeatureGroupId(),
+ expected.getDeploymentFlavorCompositionData().getFeatureGroupId());
+ Assert.assertEquals(response.getData().getComponentComputeAssociations(),
+ expected.getDeploymentFlavorCompositionData().getComponentComputeAssociations());
+ Assert.assertNotNull(response.getSchema());
+ }
+
+ private void testGetNegative(String vspId, Version version, String deploymentFlavorId, String User,
+ String expectedErrorCode){
+ try{
+ vendorSoftwareProductManager.getDeploymentFlavor(vspId, version, deploymentFlavorId, User);
+ Assert.fail();
+ } catch (CoreException exception){
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ @Test
+ public void testUpdateNegative_InvalidVspId(){
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity("InvalidVspId",
+ VERSION01,deployment2Id);
+ DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
+ deploymentFlavorData.setModel(deployment2Id);
+ deploymentFlavorData.setDescription("updating a deployment flavor with invalid VspId and without any" +
+ "association");
+ deploymentFlavorData.setFeatureGroupId("fg01");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
+
+ testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ @Test
+ public void testUpdateNegative_InvalidDeploymentFlavorId(){
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp1Id,
+ VERSION01,"InvalidDeploymentFlavorId");
+ testUpdateNegative(deploymentFlavorEntity, USER1, VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test(dependsOnMethods = "testCreate")
+ public void testUpdateNegative_InvalidFeatureGroup(){
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id,
+ VERSION01,deployment1Id);
+ DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
+ deploymentFlavorData.setModel("TestDeploymentCreateWithoutFG");
+ deploymentFlavorData.setDescription("updating a deployment flavor with invalid FeatureGroupId and without any" +
+ "association");
+ deploymentFlavorData.setFeatureGroupId("fg01");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
+ String expectedError = "#/featureGroupId: "
+ +deploymentFlavorData.getFeatureGroupId()+" is not a valid value. Possible values: ";
+
+ final CompositionEntityValidationData validationData = vendorSoftwareProductManager
+ .updateDeploymentFlavor(deploymentFlavorEntity, USER1);
+ final Collection<String> errors = validationData.getErrors();
+ final Object[] objects = errors.toArray();
+ Assert.assertEquals(errors.size(), 1);
+ Assert.assertEquals(objects[0], expectedError);
+ }
+
+ @Test(dependsOnMethods = "testCreate")
+ public void testUpdateNegative_InvalidComputeFlavorIdAssociation(){
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id,
+ VERSION01,deployment1Id);
+ DeploymentFlavor deploymentFlavorData = new DeploymentFlavor();
+ deploymentFlavorData.setModel("TestDeploymentcreatewithInvalidComputFlavorId");
+ deploymentFlavorData.setDescription("updating a deployment flavor with wrong compute flavor id in" +
+ " assocation");
+ List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
+ ComponentComputeAssociation componentComputeAssociation = new ComponentComputeAssociation();
+ componentComputeAssociation.setComponentId(component21Id);
+ componentComputeAssociation.setComputeFlavorId("123123");
+ componentComputeAssociationList.add(componentComputeAssociation);
+ deploymentFlavorData.setComponentComputeAssociations(componentComputeAssociationList);
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavorData);
+
+ testUpdateNegative(deploymentFlavorEntity, USER1, INVALID_COMPUTE_FLAVOR_ID);
+ }
+
+ @Test
+ public void testUpdate(){
+ //Creating a separate deployment flavor for testing deletion
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp1Id, VERSION01, deployment2Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentCreateforUpdate");
+ deploymentFlavor.setDescription("creating a deployment flavor for updation");
+ deploymentFlavor.setFeatureGroupId("fg01");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ deployment2Id = createdDeployment.getId();
+
+ final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData();
+ deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change
+ deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change
+ deploymentFlavorCompositionData.setFeatureGroupId("fg01"); //no change
+ createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData);
+
+ vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
+ CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse = vendorSoftwareProductManager
+ .getDeploymentFlavor(vsp1Id, VERSION01, deployment2Id, USER1);
+ final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
+
+ Assert.assertEquals(
+ data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData().getDescription());
+ }
+
+ @Test
+ public void testUpdateVspWithNoFeatureGroup(){
+ //Creating a separate deployment flavor for testing deletion
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment1Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentCreateforUpdate");
+ deploymentFlavor.setDescription("creating a deployment flavor for updation");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ DeploymentFlavorEntity createdDeployment = vendorSoftwareProductManager
+ .createDeploymentFlavor(deploymentFlavorEntity, USER1);
+ deployment1Id = createdDeployment.getId();
+
+ final DeploymentFlavor deploymentFlavorCompositionData = createdDeployment.getDeploymentFlavorCompositionData();
+ deploymentFlavorCompositionData.setModel("TestDeploymentCreateforUpdate"); //no change
+ deploymentFlavorCompositionData.setDescription("updating deployment flavor"); //allow change
+ createdDeployment.setDeploymentFlavorCompositionData(deploymentFlavorCompositionData);
+
+ vendorSoftwareProductManager.updateDeploymentFlavor(createdDeployment, USER1);
+ CompositionEntityResponse<DeploymentFlavor> deploymentFlavorCompositionEntityResponse =
+ vendorSoftwareProductManager.getDeploymentFlavor(vsp2Id, VERSION01, deployment1Id, USER1);
+ final DeploymentFlavor data = deploymentFlavorCompositionEntityResponse.getData();
+
+ Assert.assertEquals(data.getDescription(),createdDeployment.getDeploymentFlavorCompositionData()
+ .getDescription());
+ }
+
+ private void testUpdateNegative(DeploymentFlavorEntity deploymentFlavorEntity, String user,
+ String expectedErrorCode) {
+ try {
+ vendorSoftwareProductManager
+ .updateDeploymentFlavor(deploymentFlavorEntity, user);
+ System.out.print("updated");
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ @Test
+ public void testDelete(){
+ //Creating a separate deployment flavor for testing deletion
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vsp2Id, VERSION01, deployment2Id);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel("TestDeploymentcreateWithoutFG");
+ deploymentFlavor.setDescription("creating a deployment flavor without any FG and any " +
+ "association");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ DeploymentFlavorEntity createddeployment = vendorSoftwareProductManager.createDeploymentFlavor
+ (deploymentFlavorEntity, USER1);
+ deployment2Id = createddeployment.getId();
+ vendorSoftwareProductManager.deleteDeploymentFlavor(vsp2Id, deployment2Id, USER1);
+ testDeleteNegative(vsp2Id, deployment2Id, USER1,
+ VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteNegative_InvalidVspId(){
+ testDeleteNegative("InvalidVspId", deployment2Id, USER1,
+ VERSIONABLE_ENTITY_NOT_EXIST);
+ }
+
+ @Test
+ public void testDeleteNegative_NonExistingDeploymentFlavorId(){
+ testDeleteNegative(vsp2Id, "NonExistingDeploymentFlavorId", USER1,
+ VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ private void testDeleteNegative(String vspId, String deploymentId, String user,
+ String expectedErrorCode) {
+ try {
+ vendorSoftwareProductManager
+ .deleteDeploymentFlavor(vspId, deploymentId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }*/
+}
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
new file mode 100644
index 0000000000..afd797573a
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/ImagesTest.java
@@ -0,0 +1,463 @@
+package org.openecomp.sdc.vendorsoftwareproduct;
+
+import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.core.utilities.json.JsonUtil;
+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.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.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.util.Collection;
+
+public class ImagesTest {
+
+ /*private static final String USER1 = "imageTestUser1";
+ private static final String USER2 = "imageTestUser2";
+ private static final Version VERSION01 = new Version(0, 1);
+ private static final VendorSoftwareProductManager vendorSoftwareProductManager =
+ new VendorSoftwareProductManagerImpl();
+ private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory
+ .getInstance().createInterface();
+
+ private static String image1Id;
+
+
+ private static String comp1 = "{\"displayName\": \"VFC_Manual\", " +
+ "\"description\": \"desc manual\"}";
+
+ private static String vsp1Id;
+ private static String vsp2Id;
+ private static String vsp3Id;
+ private static String comp1Id;
+
+ private static String image2Id;
+
+ @BeforeClass
+ private void init() {
+ VspDetails
+ vsp1 = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp1", "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null,
+ VSPCommon.OnboardingMethod.Manual.name()), USER1
+ );
+ vsp1Id = vsp1.getId();
+
+ VspDetails vsp2 = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp2", "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null, VSPCommon.OnboardingMethod.
+ Manual.name()), USER1);
+ vsp2Id = vsp2.getId();
+
+ VspDetails vsp3 = vendorSoftwareProductManager.createNewVsp(VSPCommon
+ .createVspDetails(null, null, "VSP_" + CommonMethods.nextUuId(), "Test-vsp3",
+ "vendorName",
+ "vlm1Id", "icon", "category", "subCategory", "123", null, VSPCommon
+ .OnboardingMethod.HEAT.name()), USER1);
+ vsp3Id = vsp3.getId();
+
+ ComponentEntity comp = new ComponentEntity();
+ comp.setVspId(vsp2Id);
+ comp.setCompositionData(comp1);
+ ComponentEntity createdComp = vendorSoftwareProductManager.createComponent(comp, USER1);
+ comp1Id = createdComp.getId();
+ }
+
+ @Test
+ public void testListImagesNonExistingVspId_negative() {
+ testList_negative("non existing vsp id", null, image1Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST,
+ "Versionable entity VendorSoftwareProduct with id non existing vsp id does not exist." );
+ }
+
+ @Test
+ public void testListImagesNonExistingVfcId_negative() {
+ testList_negative(vsp1Id, VERSION01, "444", USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component with Id 444 does not exist for Vendor Software Product "
+ + "with id "+vsp1Id+ " and version "+VERSION01);
+ }
+
+ @Test
+ public void testListImages() {
+ createImageEntity("media-vsrx-vmdisk-15.1X49-D40.6.aki", "aki");
+ createImageEntity("riverbed-15.1X49-D40.6.vdi", "vdi");
+ final Collection<ImageEntity> imageEntities =
+ vendorSoftwareProductManager.listImages(vsp2Id, VERSION01, comp1Id, USER1);
+ System.out.println("size::"+imageEntities.size());
+ }
+
+ @Test
+ public void testCreateNonExistingVspId_negative() {
+ testCreate_negative(new ImageEntity("non existing vsp id", null, null, null), USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST,
+ "Versionable entity VendorSoftwareProduct with id non existing vsp id does not exist.");
+ }
+
+ @Test
+ public void testCreateNonExistingVfcId_negative() {
+ testCreate_negative(new ImageEntity(vsp1Id, VERSION01, "222", null), USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component with Id 222 does not exist for Vendor Software Product "
+ + "with id "+vsp1Id + " and version "+VERSION01);
+ }
+
+ @Test(dependsOnMethods = "testUpdateNonExistingImageId_negative")
+ public void testCreateOnAvailableVsp_negative() {
+ vendorSoftwareProductManager.checkin(vsp1Id, USER1);
+ testCreate_negative(new ImageEntity(vsp1Id, null, null, null), USER1,
+ VersioningErrorCodes.EDIT_ON_UNLOCKED_ENTITY,
+ "Can not edit versionable entity VendorSoftwareProduct with id "+vsp1Id+ " since it is not"
+ + " checked out.");
+ }
+
+ @Test(dependsOnMethods = "testCreateOnAvailableVsp_negative")
+ public void testCreateOnVspOtherUser_negative() {
+ vendorSoftwareProductManager.checkout(vsp1Id, USER1);
+ testCreate_negative(new ImageEntity(vsp1Id, null, null, null), USER2,
+ VersioningErrorCodes.EDIT_ON_ENTITY_LOCKED_BY_OTHER_USER,
+ "Versionable entity VendorSoftwareProduct with id " +vsp1Id+
+ " can not be edited since it is locked by other user "+ USER1+ ".");
+ }
+
+ @Test(dependsOnMethods = "testCreateOnVspOtherUser_negative")
+ public void testOnUndoCheckoutImagesDeleted() {
+
+ ComponentEntity comp = new ComponentEntity();
+ comp.setVspId(vsp1Id);
+ comp.setCompositionData(comp1);
+ ComponentEntity createdComp = vendorSoftwareProductManager.createComponent(comp, USER1);
+ String compId = createdComp.getId();
+
+ vendorSoftwareProductManager.checkin(vsp1Id, USER1);
+ vendorSoftwareProductManager.checkout(vsp1Id, USER1);
+
+ for(int i = 1; i<=3; i++) {
+ ImageEntity imageEntity = new ImageEntity();
+ imageEntity.setVspId(vsp1Id);
+ imageEntity.setComponentId(compId);
+ Image image = new Image();
+ image.setFileName(i + "testimage.aki");
+ //image.setVersion("9.2.0");
+ image.setDescription("riverbed image");
+ //image.setFormat("aki");
+ //image.setMd5("233343DDDD");
+ imageEntity.setImageCompositionData(image);
+ ImageEntity createdImage = vendorSoftwareProductManager.createImage(imageEntity, USER1);
+ }
+
+ Collection<ImageEntity> imageEntities =
+ vendorSoftwareProductManager.listImages(vsp1Id, null, compId, USER1);
+
+ Assert.assertEquals(imageEntities.size(), 3);
+
+ vendorSoftwareProductManager.undoCheckout(vsp1Id, USER1);
+
+ imageEntities = vendorSoftwareProductManager.listImages(vsp1Id, null, compId, USER1);
+
+ Assert.assertEquals(imageEntities.size(), 0);
+ }
+
+ @Test
+ public void testCreateOnHeatVsp_negative() {
+ final ErrorCode addImageNotSupportedHeatOnboardMethodErrorBuilder =
+ NotSupportedHeatOnboardMethodErrorBuilder
+ .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
+ testCreate_negative(new ImageEntity(vsp3Id, null, null, null), USER1,
+ addImageNotSupportedHeatOnboardMethodErrorBuilder.id(),
+ addImageNotSupportedHeatOnboardMethodErrorBuilder.message()
+ );
+ }
+
+ @Test(dependsOnMethods = "testListImages")
+ public void testCreateImage() {
+ ImageEntity createdImage = createImageEntity("riverbed-WX-IMG-9.2.0.qcow2", "qcow2");
+ Assert.assertNotNull(image1Id);
+ Assert.assertNotNull(createdImage.getCompositionData());
+ Assert.assertNotNull(
+ vendorSoftwareProductManager.getImage(vsp2Id, VERSION01, comp1Id,image1Id,
+ USER1).getData());
+ }
+
+ @Test(dependsOnMethods = "testCreateImage")
+ public void testCreateDupImageNameForSameComponent_negative() {
+ ImageEntity createdImage = null;
+ try {
+ createdImage = createImageEntity("riverbed-WX-IMG-9.2.0.qcow2", "qcow2");
+ Assert.fail();
+ }
+ catch(CoreException exception) {
+ Assert.assertEquals(exception.code().id(), VendorSoftwareProductErrorCodes.
+ DUPLICATE_IMAGE_NAME_NOT_ALLOWED);
+ Assert.assertEquals(exception.getMessage(),
+ String.format("Invalid request, Image with name riverbed-WX-IMG-9.2.0.qcow2 already " +
+ "exists for component with ID "+comp1Id)+".");
+ }
+ }
+
+ @Test
+ public void testGet() {
+ ImageEntity createdImage = createImageEntity("read-riverbed-WX-IMG-9.2.0.qcow2", "qcow2");
+ testGet(vsp2Id, VERSION01, comp1Id, createdImage.getId(), USER1, createdImage);
+ }
+
+ @Test
+ public void testGetNonExistingVspId_negative() {
+ testGet_negative("non existing vsp id", null, null, image1Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST,
+ "Versionable entity VendorSoftwareProduct with id non existing vsp id does not exist." );
+ }
+
+ @Test
+ public void testGetNonExistingVfcId_negative() {
+ testGet_negative(vsp1Id, VERSION01, "111", null, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component with Id 111 does not exist for Vendor Software Product "
+ + "with id "+vsp1Id + " and version "+VERSION01);
+ }
+
+ @Test
+ public void testUpdateNonExistingVspId_negative() {
+ ImageEntity imageEntity = new ImageEntity("non existing vsp id", null, null, image1Id);
+
+ testUpdate_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST,
+ "Versionable entity VendorSoftwareProduct with id non existing vsp id does not exist." );
+ }
+
+ @Test(dependsOnMethods = "testUpdateNonExistingVspId_negative")
+ public void testUpdateNonExistingVfcId_negative() {
+ ImageEntity imageEntity = new ImageEntity(vsp1Id, VERSION01, "111", null);
+
+ testUpdate_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component with Id 111 does not exist for Vendor Software Product "
+ + "with id "+vsp1Id + " and version "+VERSION01);
+ }
+
+ @Test(dependsOnMethods = "testUpdateNonExistingVfcId_negative")
+ public void testUpdateNonExistingImageId_negative() {
+ ImageEntity imageEntity = new ImageEntity(vsp2Id, VERSION01, comp1Id, "222");
+
+ testUpdate_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component Image with Id 222 does not exist for Vendor " +
+ "Software Product with id "+vsp2Id+ " and version "+VERSION01 );
+ }
+
+ @Test(dependsOnMethods = "testCreateImage")
+ public void testUpdate() {
+ ImageEntity imageEntity = createImageEntity("testimage1","qcow2");
+ testGet(vsp2Id, VERSION01, comp1Id, imageEntity.getId(),USER1, imageEntity );
+
+ final Image imageCompositionData = imageEntity.getImageCompositionData();
+ //imageCompositionData.setVersion("10.0");
+ imageCompositionData.setDescription("updated image");
+
+ vendorSoftwareProductManager.updateImage(imageEntity, USER1);
+
+ testGet(vsp2Id, VERSION01, comp1Id, imageEntity.getId(),USER1, imageEntity );
+ image2Id = imageEntity.getId();
+ }
+
+ @Test(dependsOnMethods = "testUpdate")
+ public void testUpdateNegative_UniqueName() {
+ final CompositionEntityResponse<Image> image =
+ vendorSoftwareProductManager.getImage(vsp2Id, VERSION01, comp1Id,
+ image2Id, USER1);
+ final Image data = image.getData();
+
+ final Image imageCompositionData = data;
+ imageCompositionData.setFileName("riverbed-WX-IMG-9.2.0.qcow2");
+
+ ImageEntity entity = new ImageEntity(vsp2Id, VERSION01, comp1Id, image2Id );
+ entity.setImageCompositionData(imageCompositionData);
+ testUpdate_negative(entity, USER1, ImageErrorBuilder.getDuplicateImageNameErrorBuilder(
+ "riverbed-WX-IMG-9.2.0.qcow2", comp1Id).id()
+ ,ImageErrorBuilder.getDuplicateImageNameErrorBuilder("riverbed-WX-IMG-9.2.0.qcow2", comp1Id)
+ .message() );
+ }
+
+ @Test(dependsOnMethods = "testUpdateNegative_UniqueName")
+ public void testDeleteImage() {
+ CompositionEntityResponse<Image> image =
+ vendorSoftwareProductManager.getImage(vsp2Id, VERSION01, comp1Id, image2Id, USER1);
+
+ Assert.assertNotNull(image.getData());
+
+ vendorSoftwareProductManager.deleteImage(vsp2Id, comp1Id, image2Id, USER1);
+
+ testGet_negative(vsp2Id, VERSION01, comp1Id, image2Id, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component Image with Id "+image2Id+ " does not exist for " +
+ "Vendor Software Product with id "+vsp2Id+ " and version "+VERSION01 );
+
+ }
+
+ @Test
+ public void testDeleteNonExistingVspId_negative() {
+ ImageEntity imageEntity = new ImageEntity("non existing vsp id", null, null, image1Id);
+
+ testDelete_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_ENTITY_NOT_EXIST,
+ "Versionable entity VendorSoftwareProduct with id non existing vsp id does not exist." );
+ }
+
+ @Test(dependsOnMethods = "testDeleteNonExistingVspId_negative")
+ public void testDeleteNonExistingVfcId_negative() {
+ ImageEntity imageEntity = new ImageEntity(vsp1Id, VERSION01, "111", null);
+
+ testDelete_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component with Id 111 does not exist for Vendor Software Product "
+ + "with id "+vsp1Id + " and version "+VERSION01);
+ }
+
+ @Test(dependsOnMethods = "testDeleteNonExistingVfcId_negative")
+ public void testDeleteNonExistingImageId_negative() {
+ ImageEntity imageEntity = new ImageEntity(vsp2Id, VERSION01, comp1Id, "222");
+
+ testDelete_negative(imageEntity, USER1,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND,
+ "Vendor Software Product Component Image with Id 222 does not exist for Vendor " +
+ "Software Product with id "+vsp2Id+ " and version "+VERSION01 );
+ }
+
+ @Test
+ public void testUpdateandGetQuestionnaire() {
+ ImageEntity imageEntity = createImageEntity("newimage_testUpdateandGetQuestionnaire.vdi","vdi");
+ vendorSoftwareProductManager.updateImageQuestionnaire(vsp2Id, comp1Id, imageEntity.getId(),
+ "{\"format\":\"vdi\",\"version\":\"1.2\",\"md5\":\"ssd3344\"}",
+ USER1);
+
+ final QuestionnaireResponse imageQuestionnaire =
+ vendorSoftwareProductManager.getImageQuestionnaire(vsp2Id, VERSION01, comp1Id,
+ imageEntity.getId(), USER1);
+
+ String imageDetails = imageQuestionnaire.getData();
+ Assert.assertEquals("vdi", JsonUtil.json2Object(imageDetails, ImageDetails.class).getFormat());
+ Assert.assertEquals("1.2", JsonUtil.json2Object(imageDetails, ImageDetails.class).getVersion());
+ Assert.assertEquals("ssd3344", JsonUtil.json2Object(imageDetails, ImageDetails.class).getMd5());
+ }
+
+ @Test
+ public void testUpdateQuestionnaireInvalidFormat_negative() {
+ ImageEntity imageEntity = createImageEntity("newimage.vdi","vdi");
+ try {
+ vendorSoftwareProductManager.updateImageQuestionnaire(vsp2Id, comp1Id, imageEntity.getId(),
+ "{\"format\":\"invalidformat\",\"version\":\"1.2\",\"md5\":\"ssd3344\"}",
+ USER1);
+ Assert.fail();
+ }
+ catch(CoreException exception) {
+ Assert.assertEquals(exception.code().id(), "VFC_IMAGE_INVALID_FORMAT");
+ Assert.assertEquals(exception.getMessage(), "The format value doesn't meet the expected "
+ + "attribute value.");
+ }
+ }
+
+ private ImageEntity createImageEntity(String fileName, String format) {
+ ImageEntity imageEntity = new ImageEntity();
+ imageEntity.setVspId(vsp2Id);
+ imageEntity.setComponentId(comp1Id);
+ Image image = new Image();
+ image.setFileName(fileName);
+ //image.setVersion("9.2.0");
+ image.setDescription("riverbed image");
+ //image.setFormat(format);
+ // image.setMd5("233343DDDD");
+ imageEntity.setImageCompositionData(image);
+
+ ImageEntity createdImage = vendorSoftwareProductManager.createImage(imageEntity, USER1);
+ image1Id = createdImage.getId();
+ return createdImage;
+ }
+
+ private void testGet(String vspId, Version version, String componentId, String imageId, String
+ user, ImageEntity expected) {
+ CompositionEntityResponse<Image>
+ response = vendorSoftwareProductManager.getImage(vspId, null, componentId, imageId, user);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(expected.getImageCompositionData().getFileName(), response.getData().
+ getFileName());
+ Assert.assertEquals(expected.getImageCompositionData().getDescription(), response.getData().
+ getDescription());
+ Assert.assertNotNull(response.getSchema());
+ }
+
+ private void testCreate_negative(ImageEntity image, String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ vendorSoftwareProductManager.createImage(image, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testGet_negative(String vspId, Version version, String componentId, String imageId,
+ String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ vendorSoftwareProductManager.getImage(vspId, version, componentId, imageId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testList_negative(String vspId, Version version, String componentId, String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ vendorSoftwareProductManager.listImages(vspId, version, componentId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testUpdate_negative(ImageEntity imageEntity,
+ String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+
+ vendorSoftwareProductManager.updateImage(imageEntity, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testDelete_negative(ImageEntity imageEntity,
+ String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+
+ vendorSoftwareProductManager.updateImage(imageEntity, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }*/
+} \ 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/VSPFullTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java
index d4dea70f2f..be2de13c16 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/VSPFullTest.java
@@ -20,43 +20,6 @@
package org.openecomp.sdc.vendorsoftwareproduct;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
-import org.openecomp.core.util.UniqueValueUtil;
-import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
-import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
-import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
-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.NicEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VSPCommon;
-import org.openecomp.sdc.versioning.dao.types.Version;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-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.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
public class VSPFullTest {
/*
@@ -71,7 +34,7 @@ public class VSPFullTest {
private static VendorLicenseFacade vendorLicenseFacade =
VendorLicenseFacadeFactory.getInstance().createInterface();
private OrchestrationTemplateCandidateManager candidateManager;
- private MibManager mibManager;
+ private MonitoringUploadsManager mibManager;
private NicManager nicManager;
@Test
@@ -106,7 +69,7 @@ public class VSPFullTest {
mibManager
.upload(zis1, "MMSC.zip", vspId, VERSION01,
components.iterator().next().getId(),
- ArtifactType.SNMP_TRAP,
+ MonitoringUploadType.SNMP_TRAP,
USER1);
//check in
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java
index 34af0e67b2..7cfcb05589 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImplTest.java
@@ -8,6 +8,7 @@ import org.mockito.Spy;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
@@ -24,6 +25,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -47,6 +49,8 @@ public class ComponentManagerImplTest {
private CompositionEntityDataManager compositionEntityDataManagerMock;
@Mock
private NicManager nicManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDao;
@InjectMocks
@Spy
private ComponentManagerImpl componentManager;
@@ -95,25 +99,102 @@ public class ComponentManagerImplTest {
/* @Test
public void testCreate() {
COMP1_ID = testCreate(VSP_ID);
+ }*/
+ @Test
+ public void testCreate() {
+ ComponentEntity expected = new ComponentEntity(VSP_ID, null, null);
+ ComponentData compData = new ComponentData();
+ compData.setName("comp1 name");
+ compData.setDescription("comp1 desc");
+ expected.setComponentCompositionData(compData);
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<ComponentEntity> vspComponentList = new ArrayList<>();
+ doReturn(vspComponentList).when(componentDaoMock).list(anyObject());
+ doReturn(expected).when(compositionEntityDataManagerMock).createComponent(anyObject());
+
+ ComponentEntity created = componentManager.createComponent(expected, USER);
+ Assert.assertNotNull(created);
+ //expected.setId(created.getId());
+ //expected.setVersion(VERSION);
+
+ //ComponentEntity actual = componentDaoMock.getComponent(VSP_ID, VERSION, created.getId());
+
+ //Assert.assertEquals(actual, expected);
+ //return created.getId();
+ }
+
+ @Test
+ public void testCreateWithVspCompListMoreThanOne() {
+ ComponentEntity expected = new ComponentEntity(VSP_ID, null, null);
+ ComponentData compData = new ComponentData();
+ compData.setName("comp1 name");
+ compData.setDescription("comp1 desc");
+ expected.setComponentCompositionData(compData);
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<ComponentEntity> vspComponentList = new ArrayList<>();
+ vspComponentList.add(expected);
+ doReturn(vspComponentList).when(componentDaoMock).list(anyObject());
+
+ try {
+ ComponentEntity created = componentManager.createComponent(expected, USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals("Creation of only one VFC per VSP allowed.", exception.code().message());
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.VSP_VFC_COUNT_EXCEED,
+ exception.code().id());
}
+ }
- private String testCreate(String VSP_ID) {
- ComponentEntity expected = new ComponentEntity(VSP_ID, null, null);
- ComponentData compData = new ComponentData();
- compData.setName("comp1 name");
- compData.setDescription("comp1 desc");
- expected.setComponentCompositionData(compData);
+ @Test
+ public void testUpdateComp() {
+ ComponentEntity expected = new ComponentEntity(VSP_ID, null, COMP1_ID);
+ ComponentData compData = new ComponentData();
+ compData.setName("comp1 name");
+ compData.setDescription("comp1 desc");
+ expected.setComponentCompositionData(compData);
+
+ doReturn(expected).when(componentDaoMock).get(anyObject());
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<ComponentEntity> vspComponentList = new ArrayList<>();
+ vspComponentList.add(expected);
+ doReturn(vspComponentList).when(componentDaoMock).list(anyObject());
+ doReturn(new CompositionEntityValidationData(null,null)).when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(),anyObject(),anyObject());
+
+ CompositionEntityValidationData created = componentManager.updateComponent(expected, USER);
+ Assert.assertNotNull(created);
+ }
- ComponentEntity created = componentManager.createComponent(expected, USER);
- Assert.assertNotNull(created);
- expected.setId(created.getId());
- expected.setVersion(VERSION);
+ @Test
+ public void testUpdateCompWithSameVfcDisplayName() {
+ ComponentEntity expected = new ComponentEntity(VSP_ID, null, COMP1_ID);
+ ComponentData compData = new ComponentData();
+ compData.setName("comp1 name");
+ compData.setDescription("comp1 desc");
+ compData.setDisplayName("comp1 displayname");
+ expected.setComponentCompositionData(compData);
- ComponentEntity actual = componentDaoMock.getComponent(VSP_ID, VERSION, created.getId());
+ doReturn(expected).when(componentDaoMock).get(anyObject());
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<ComponentEntity> vspComponentList = new ArrayList<>();
+ vspComponentList.add(expected);
+ ComponentEntity expected2 = new ComponentEntity(VSP_ID+"2", null, COMP1_ID+"2");
+ expected2.setComponentCompositionData(compData);
+ vspComponentList.add(expected2);
+ doReturn(vspComponentList).when(componentDaoMock).list(anyObject());
+ doReturn(new CompositionEntityValidationData(null,null)).when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(),anyObject(),anyObject());
- Assert.assertEquals(actual, expected);
- return created.getId();
- }*/
+ try {
+ CompositionEntityValidationData created = componentManager.updateComponent(expected, USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals("VFC with specified name already present in given VSP.",
+ exception.code().message());
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME,
+ exception.code().id());
+ }
+ }
/* @Test
public void testCreateWithExistingName_negative() {
@@ -133,7 +214,7 @@ public class ComponentManagerImplTest {
@Test
public void testCreateOnUploadVsp_negative() {
testCreate_negative(new ComponentEntity(VSP_ID, VERSION, null), USER,
- VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
+ VendorSoftwareProductErrorCodes.VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING);
}
@Test
@@ -159,6 +240,8 @@ public class ComponentManagerImplTest {
compData.setName(COMP1_ID + " name"); // no change
compData.setDisplayName(COMP1_ID + " display name"); // no change
compData.setVfcCode(COMP1_ID + " display name"); // no change
+ compData.setNfcCode(COMP1_ID + " display name"); // no change
+ compData.setNfcFunction(COMP1_ID + " display name"); // no change
compData.setDescription(COMP1_ID + " desc updated"); // allowed change
component.setComponentCompositionData(compData);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java
new file mode 100644
index 0000000000..c8f473c8c7
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java
@@ -0,0 +1,377 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import org.junit.runner.RunWith;
+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.ValidationErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateComputeInComponentErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.ListComputeResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.*;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by DIVESHM on 5/16/2017.
+ */
+
+
+public class ComputeManagerImplTest {
+
+ private static final String COMPUTE_NOT_EXIST_MSG =
+ "Vendor Software Product COMPUTE with Id compute1 does not exist for Vendor Software Product with " +
+ "id VSP_ID and version 0.1";
+
+ private static final String USER = "computeTestUser";
+ private static final String VSP_ID = "VSP_ID";
+ private static final Version VERSION = new Version(0, 1);
+ private static final String COMPONENT_ID = "COMPONENT_ID";
+ private static final String COMPUTE1_ID = "compute1";
+ private static final String COMPUTE2_ID = "compute2";
+
+ @Mock
+ private ComputeDao computeDao;
+
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManagerMock;
+
+ @Mock
+ private NetworkManager networkManagerMock;
+
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDao;
+
+ @Mock
+ private ComputeEntity computeEntity;
+
+ @Mock
+ private ListComputeResponse listComputeResponse;
+
+ @Mock
+ private DeploymentFlavorEntity deploymentFlavorEntity;
+
+ @Mock
+ private DeploymentFlavorDao deploymentFlavorDao;
+
+ @Mock
+ private ComponentComputeAssociation componentComputeAssociation;
+
+ @Mock
+ DeploymentFlavor deploymentFlavor;
+
+ @InjectMocks
+ @Spy
+ private ComputeManagerImpl computeManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testListWhenNone() {
+ Collection<ListComputeResponse> computes = computeManager.listCompute(VSP_ID, VERSION, COMPONENT_ID, USER);
+ Assert.assertEquals(computes.size(), 0);
+ }
+
+ @Test
+ public void testList(){
+ doReturn(Arrays.asList(
+ createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID),
+ createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE2_ID)))
+ .when(computeDao).list(anyObject());
+
+
+ Collection<ListComputeResponse> computes = computeManager.listCompute(VSP_ID, VERSION, COMPONENT_ID, USER);
+ Assert.assertEquals(computes.size(), 2);
+ for (ListComputeResponse compute : computes) {
+ Assert.assertEquals(compute.getComputeEntity().getComputeCompositionData().getName(),
+ COMPUTE1_ID.equals(compute.getComputeEntity().getId())
+ ? "compute1name"
+ : "compute2name");
+ };
+ }
+
+ @Test
+ public void testCreateOnNotManualCompute_negative() {
+
+ testCreate_negative(new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER,
+ VendorSoftwareProductErrorCodes.ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+
+ @Test
+ public void testCreateManualCompute() {
+ ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ computeManager.createCompute(expected, USER);
+ verify(compositionEntityDataManagerMock).createCompute(expected);
+ verify(compositionEntityDataManagerMock).createCompute(expected);
+ }
+
+ @Test
+ public void testCreateManualImageWithDuplicateName() {
+ ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ ComputeEntity expectedDiffName = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ ComputeData computeData = expectedDiffName.getComputeCompositionData();
+ computeData.setName(COMPUTE1_ID + "Name");
+ expectedDiffName.setComputeCompositionData(computeData);
+ List<ComputeEntity> vfcImageList = new ArrayList<ComputeEntity>();
+ vfcImageList.add(expectedDiffName);
+ doReturn(vfcImageList).when(computeDao).list(anyObject());
+
+ try {
+ computeManager.createCompute(expected, USER);
+ Assert.fail();
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.DUPLICATE_COMPUTE_NAME_NOT_ALLOWED,
+ ex.code().id());
+ }
+ }
+
+
+ @Test
+ public void testUpdateNonExistingComputeId_negative() {
+
+ testUpdate_negative(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testUpdateCompute() {
+ doReturn(createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID))
+ .when(computeDao).get(anyObject());
+
+ doReturn(new CompositionEntityValidationData(CompositionEntityType.compute, COMPUTE1_ID))
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
+
+ ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ ComputeData computeData = new ComputeData();
+ computeData.setName(COMPUTE1_ID + "name");
+ computeData.setDescription(COMPUTE1_ID + "desc updated");
+ computeEntity.setComputeCompositionData(computeData);
+
+ CompositionEntityValidationData validationData =
+ computeManager.updateCompute(computeEntity, USER);
+ Assert.assertTrue(validationData == null || validationData.getErrors() == null);
+ verify(computeDao).update(computeEntity);
+ }
+
+ @Test
+ public void testIllegalComputeUpdate() {
+ doReturn(createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID))
+ .when(computeDao).get(anyObject());
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ CompositionEntityValidationData toBeReturned =
+ new CompositionEntityValidationData(CompositionEntityType.compute, COMPUTE1_ID);
+ toBeReturned.setErrors(Arrays.asList("error1", "error2"));
+ doReturn(toBeReturned)
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
+
+ ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ ComputeData computeData = new ComputeData();
+ computeData.setName(COMPUTE1_ID + " name updated");
+ computeData.setDescription(COMPUTE1_ID + " desc updated");
+ computeEntity.setComputeCompositionData(computeData);
+
+ CompositionEntityValidationData validationData = computeManager.updateCompute(computeEntity, USER);
+ Assert.assertNotNull(validationData);
+ Assert.assertEquals(validationData.getErrors().size(), 2);
+
+ verify(computeDao, never()).update(computeEntity);
+ }
+
+ @Test
+ public void testUpdateHEATComputeName() throws Exception {
+ doReturn(createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID))
+ .when(computeDao).get(anyObject());
+ ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ ComputeData computeData = new ComputeData();
+ computeData.setName(COMPUTE1_ID + " name updated");
+ computeData.setDescription(COMPUTE1_ID + " desc updated");
+ computeEntity.setComputeCompositionData(computeData);
+
+ try {
+ computeManager.updateCompute(computeEntity, USER);
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(ex.code().id(), VendorSoftwareProductErrorCodes.UPDATE_COMPUTE_NOT_ALLOWED);
+ }
+
+ }
+
+ @Test
+ public void testUpdateManualComputeQuestionnaire() throws Exception {
+ String json = "{\"md5\" :\"FFDSD33SS\"}";
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ doReturn(new ComputeEntity(null,null,null,null)).when(computeDao).get(anyObject());
+
+ computeManager.updateComputeQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, json, USER);
+ verify(computeDao).updateQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, json);
+ }
+
+ @Test
+ public void testGetNonExistingComputeId_negative() {
+ testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing compute id", USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testGet() {
+ ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ doReturn(expected).when(computeDao).get(anyObject());
+ String compositionSchema = "schema string";
+ doReturn(compositionSchema).when(computeManager).getComputeCompositionSchema(anyObject());
+
+ CompositionEntityResponse<ComputeData> response =
+ computeManager.getCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(response.getData().getName(), expected.getComputeCompositionData().getName());
+ Assert.assertEquals(response.getData().getDescription(), expected.getComputeCompositionData().
+ getDescription());
+ Assert.assertEquals(response.getSchema(), compositionSchema);
+ }
+
+ @Test
+ public void testGetQuestionnaire() throws Exception {
+ ComputeEntity compute = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ compute.setQuestionnaireData("{}");
+ doReturn(compute).when(computeDao).getQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+
+ String schema = "schema string";
+
+
+ doReturn(schema).when(computeManager).getComputeQuestionnaireSchema(anyObject());
+
+ QuestionnaireResponse questionnaire =
+ computeManager.getComputeQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER);
+
+ Assert.assertNotNull(questionnaire);
+ Assert.assertEquals(questionnaire.getData(), compute.getQuestionnaireData());
+ Assert.assertEquals(questionnaire.getSchema(), schema);
+ Assert.assertNull(questionnaire.getErrorMessage());
+ }
+
+ @Test
+ public void testDeleteOnNotManualCompute() {
+ ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ doReturn(expected).when(computeDao).get(anyObject());
+ testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER,
+ VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
+ }
+
+ @Test
+ public void testDeleteOnManualCompute() {
+ ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+ doReturn(expected).when(computeDao).get(anyObject());
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ computeManager.deleteCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER);
+ verify(computeDao).delete(anyObject());
+ }
+
+ @Test
+ public void testDeleteOnNotExistCompute() {
+ testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID, USER,
+ VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
+ }
+
+
+ private void testDelete_negative(String vspId, Version version, String componentId, String computeId,
+ String user,
+ String expectedErrorCode) {
+ try {
+ computeManager.deleteCompute(vspId, version, componentId, computeId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testGet_negative(String vspId, Version version, String componentId, String computeId,
+ String user, String expectedErrorCode) {
+ try {
+ computeManager.getCompute(vspId, version, componentId, computeId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testList_negative(String vspId, Version version, String componentId, String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ computeManager.listCompute(vspId, version, componentId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+
+
+ private void testUpdate_negative(String vspId, Version version, String componentId, String computeId,
+ String user, String expectedErrorCode) {
+ try {
+ computeManager.updateCompute(new ComputeEntity(vspId, version, componentId, computeId), user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testCreate_negative(ComputeEntity computeEntity1, String user, String expectedErrorCode) {
+ try {
+ computeManager.createCompute(computeEntity1, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ static ComputeEntity createCompute(String vspId, Version version, String compId, String computeId){
+ ComputeEntity computeEntity1 = new ComputeEntity(vspId, version, compId, computeId);
+ ComputeData computeData = new ComputeData();
+ computeData.setName(computeId+"name");
+ computeData.setDescription(computeId+"desc");
+ computeEntity1.setComputeCompositionData(computeData);
+ return computeEntity1;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java
new file mode 100644
index 0000000000..e082b25435
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java
@@ -0,0 +1,409 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+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.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+public class DeplomentFlavorManagerImplTest {
+ private static final String USER = "depFlavorTestUser";
+ private static final String VSP_ID = "VSP_ID";
+ private static final Version VERSION = new Version(0, 1);
+ private static final String COMPONENT_ID = "COMPONENT_ID";
+ private static final String DF1_ID = "df1";
+ private static final String DF2_ID = "df2";
+
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ @Mock
+ DeploymentFlavorDao deploymentFlavorDaoMock;
+ @Mock
+ ComponentDao componentDaoMock;
+ @Mock
+ ComputeDao computeDaoMock;
+ @InjectMocks
+ @Spy
+ private DeploymentFlavorManagerImpl deploymentFlavorManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testListWhenNone() {
+ final Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(VSP_ID, VERSION, USER);
+ Assert.assertEquals(deploymentFlavorEntities.size(), 0);
+ }
+
+ @Test
+ public void testCreateOnNotManual_negative() {
+
+ testCreate_negative(new DeploymentFlavorEntity(VSP_ID, VERSION, null), USER,
+ VendorSoftwareProductErrorCodes.CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+
+ @Test
+ public void testCreateManualDepFlavor() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ verify(compositionEntityDataManagerMock).createDeploymentFlavor(expected);
+ }
+
+ @Test
+ public void testCreateManualDepFlavorWithDuplicateName() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ DeploymentFlavorEntity expectedDiffName = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ DeploymentFlavor deploymentFlavor = expectedDiffName.getDeploymentFlavorCompositionData();
+ deploymentFlavor.setModel(DF1_ID + " Name");
+ expectedDiffName.setDeploymentFlavorCompositionData(deploymentFlavor);
+ List<DeploymentFlavorEntity> list = new ArrayList<DeploymentFlavorEntity>();
+ list.add(expectedDiffName);
+ doReturn(list).when(deploymentFlavorDaoMock).list(anyObject());
+
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ Assert.fail();
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED,
+ ex.code().id());
+ }
+ }
+
+ @Test
+ public void testCreateManualDepFlavorWithFGNotInVSP() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ final DeploymentFlavor deploymentFlavor =
+ JsonUtil.json2Object(expected.getCompositionData(), DeploymentFlavor.class);
+ deploymentFlavor.setFeatureGroupId("fg3");
+ expected.setCompositionData(JsonUtil.object2Json(deploymentFlavor));
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ List<String> featureGrps = new ArrayList<String>();
+ featureGrps.add("fg1");
+ featureGrps.add("fg2");
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ vspDetails.setFeatureGroups(featureGrps);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ Assert.fail();
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.FEATURE_GROUP_NOT_EXIST_FOR_VSP,
+ ex.code().id());
+ }
+ }
+
+ @Test
+ public void testCreateManualDepFlavorWithNullCompInAssociation() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ final DeploymentFlavor deploymentFlavor =
+ JsonUtil.json2Object(expected.getCompositionData(), DeploymentFlavor.class);
+ ComponentComputeAssociation association = new ComponentComputeAssociation();
+ association.setComponentId(null);
+ association.setComputeFlavorId("CF1");
+ List<ComponentComputeAssociation> list = new ArrayList<ComponentComputeAssociation>();
+ list.add(association);
+ deploymentFlavor.setComponentComputeAssociations(list);
+ expected.setCompositionData(JsonUtil.object2Json(deploymentFlavor));
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.INVALID_COMPONENT_COMPUTE_ASSOCIATION,
+ ex.code().id());
+ Assert.assertEquals("Invalid request,for valid association please provide ComponentId for Compute Flavor",
+ ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testCreateManualDepFlavorWithInvalidComputeInAssociation() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ final DeploymentFlavor deploymentFlavor =
+ JsonUtil.json2Object(expected.getCompositionData(), DeploymentFlavor.class);
+ ComponentComputeAssociation association = new ComponentComputeAssociation();
+ association.setComponentId(COMPONENT_ID);
+ association.setComputeFlavorId("CF1");
+ List<ComponentComputeAssociation> list = new ArrayList<ComponentComputeAssociation>();
+ list.add(association);
+ deploymentFlavor.setComponentComputeAssociations(list);
+ expected.setCompositionData(JsonUtil.object2Json(deploymentFlavor));
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ ComponentEntity component = new ComponentEntity(VSP_ID, VERSION, USER);
+ doReturn(component).when(componentDaoMock).get(anyObject());
+
+ doReturn(null).when(computeDaoMock).get(anyObject());
+
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.INVALID_COMPUTE_FLAVOR_ID,
+ ex.code().id());
+ }
+ }
+
+ @Test
+ public void testCreateManualDepFlavorWithDuplicateVfcAssociation() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ final DeploymentFlavor deploymentFlavor =
+ JsonUtil.json2Object(expected.getCompositionData(), DeploymentFlavor.class);
+ ComponentComputeAssociation association = new ComponentComputeAssociation();
+ association.setComponentId(COMPONENT_ID);
+ association.setComputeFlavorId("CF1");
+ List<ComponentComputeAssociation> list = new ArrayList<ComponentComputeAssociation>();
+ list.add(association);
+ list.add(association);
+ deploymentFlavor.setComponentComputeAssociations(list);
+ expected.setCompositionData(JsonUtil.object2Json(deploymentFlavor));
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ ComponentEntity component = new ComponentEntity(VSP_ID, VERSION, USER);
+ doReturn(component).when(componentDaoMock).get(anyObject());
+
+ ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, "CF1");
+ doReturn(computeEntity).when(computeDaoMock).get(anyObject());
+
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(expected, USER);
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED,
+ ex.code().id());
+ }
+ }
+
+ @Test
+ public void testList() {
+
+ doReturn(Arrays.asList(
+ createDeploymentFlavor(VSP_ID, VERSION, DF1_ID),
+ createDeploymentFlavor(VSP_ID, VERSION, DF2_ID)))
+ .when(deploymentFlavorDaoMock).list(anyObject());
+
+
+ final Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
+ deploymentFlavorManager.listDeploymentFlavors(VSP_ID, VERSION, USER);
+ Assert.assertEquals(deploymentFlavorEntities.size(), 2);
+ for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
+ Assert.assertEquals(deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel()
+ , DF1_ID.equals(deploymentFlavorEntity.getId()) ? DF1_ID+" name" : DF2_ID+" name" );
+ }
+ }
+
+ @Test
+ public void testUpdateHeatDepFlavor() {
+ testUpdate_negative(VSP_ID, VERSION, DF1_ID, USER,
+ VendorSoftwareProductErrorCodes.EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+
+ @Test
+ public void testUpdateNonExistingManualDepFlavorId_negative() {
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ testUpdate_negative(VSP_ID, VERSION, DF1_ID, USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testManualUpdateDepFlavor() {
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ doReturn(createDeploymentFlavor(VSP_ID, VERSION, DF1_ID))
+ .when(deploymentFlavorDaoMock).get(anyObject());
+
+ doReturn(new CompositionEntityValidationData(CompositionEntityType.image, DF1_ID))
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(VSP_ID, VERSION, DF1_ID);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel(DF1_ID + " name");
+ deploymentFlavor.setDescription(DF1_ID + " desc updated");
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+
+ CompositionEntityValidationData validationData =
+ deploymentFlavorManager.updateDeploymentFlavor(deploymentFlavorEntity, USER);
+ Assert.assertTrue(validationData == null || validationData.getErrors() == null);
+ verify(deploymentFlavorDaoMock).update(deploymentFlavorEntity);
+ }
+
+ @Test
+ public void testGetNonExistingDepFlavorId_negative() {
+ testGet_negative(VSP_ID, VERSION, "non existing image id", USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testGet() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ doReturn(expected).when(deploymentFlavorDaoMock).get(anyObject());
+
+ VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+ doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+ CompositionEntityResponse<DeploymentFlavor> response =
+ deploymentFlavorManager.getDeploymentFlavor(VSP_ID, VERSION, DF1_ID, USER);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(response.getData().getModel(), expected.getDeploymentFlavorCompositionData().
+ getModel());
+ Assert.assertEquals(response.getData().getDescription(), expected.getDeploymentFlavorCompositionData().
+ getDescription());
+ }
+
+ @Test
+ public void testDeleteDepFlavorOnHEAT() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ doReturn(expected).when(deploymentFlavorDaoMock).get(anyObject());
+ testDelete_negative(VSP_ID, VERSION, DF1_ID, USER,
+ VendorSoftwareProductErrorCodes.DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+
+ @Test
+ public void testDeleteOnNotExistImage() {
+ testDelete_negative(VSP_ID, VERSION, DF1_ID, USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteOnManualImage() {
+ DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+ doReturn(expected).when(deploymentFlavorDaoMock).get(anyObject());
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ deploymentFlavorManager.deleteDeploymentFlavor(VSP_ID, VERSION, DF1_ID, USER);
+ verify(deploymentFlavorDaoMock).delete(anyObject());
+ }
+
+ private void testList_negative(String vspId, Version version, String componentId, String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testCreate_negative(DeploymentFlavorEntity deploymentFlavorEntity, String user, String
+ expectedErrorCode) {
+ try {
+ deploymentFlavorManager.createDeploymentFlavor(deploymentFlavorEntity, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testDelete_negative(String vspId, Version version, String deploymentFlavorId,
+ String user,
+ String expectedErrorCode) {
+ try {
+ deploymentFlavorManager.deleteDeploymentFlavor(vspId, version, deploymentFlavorId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ static DeploymentFlavorEntity createDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) {
+
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ deploymentFlavor.setModel(deploymentFlavorId + " name");
+ deploymentFlavor.setDescription(deploymentFlavorId + " desc");
+
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ return deploymentFlavorEntity;
+ }
+
+ private void testUpdate_negative(String vspId, Version version, String
+ deploymentFlavorId, String user, String expectedErrorCode) {
+ try {
+ deploymentFlavorManager
+ .updateDeploymentFlavor(new DeploymentFlavorEntity(vspId, version, deploymentFlavorId), user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testGet_negative(String vspId, Version version, String deploymentFlavorId,
+ String user, String expectedErrorCode) {
+ try {
+ deploymentFlavorManager.getDeploymentFlavor(vspId, version, deploymentFlavorId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+}
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
new file mode 100644
index 0000000000..ec676e517b
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
@@ -0,0 +1,374 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+
+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.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
+import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import static org.mockito.Mockito.never;
+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";
+
+ private static final String USER = "imageTestUser";
+ private static final String VSP_ID = "VSP_ID";
+ private static final Version VERSION = new Version(0, 1);
+ private static final String COMPONENT_ID = "COMPONENT_ID";
+ private static final String IMAGE1_ID = "image1";
+ private static final String IMAGE2_ID = "image2";
+
+ @Mock
+ private ImageDao imageDao;
+ @Mock
+ private CompositionEntityDataManager compositionEntityDataManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDao;
+ @InjectMocks
+ @Spy
+ private ImageManagerImpl imageManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testListWhenNone() {
+ final Collection<ImageEntity> imageEntities =
+ imageManager.listImages(VSP_ID, VERSION, COMPONENT_ID, USER);
+ Assert.assertEquals(imageEntities.size(), 0);
+ }
+
+ @Test
+ 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());
+
+
+ final Collection<ImageEntity> images =
+ 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" );
+ }
+ }
+
+ @Test
+ public void testCreateOnNotManualImage_negative() {
+
+ testCreate_negative(new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER,
+ VendorSoftwareProductErrorCodes.ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING);
+ }
+
+ @Test
+ public void testCreateManualImage() {
+ ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ imageManager.createImage(expected, USER);
+ verify(compositionEntityDataManagerMock).createImage(expected);
+ verify(compositionEntityDataManagerMock).createImage(expected);
+ }
+
+ @Test
+ public void testCreateManualImageWithDuplicateName() {
+ ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ ImageEntity expectedDiffName = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ Image image = expectedDiffName.getImageCompositionData();
+ image.setFileName(IMAGE1_ID + " Name");
+ expectedDiffName.setImageCompositionData(image);
+ List<ImageEntity> vfcImageList = new ArrayList<ImageEntity>();
+ vfcImageList.add(expectedDiffName);
+ doReturn(vfcImageList).when(imageDao).list(anyObject());
+ try {
+ imageManager.createImage(expected, USER);
+ Assert.fail();
+ }
+ catch (CoreException ex) {
+ 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);
+ }
+
+ @Test
+ public void testUpdateImage() {
+ doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
+ .when(imageDao).get(anyObject());
+
+ doReturn(new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID))
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
+
+ ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ Image imageData = new Image();
+ imageData.setFileName(IMAGE1_ID + " name");
+ imageData.setDescription(IMAGE1_ID + " desc updated");
+ imageEntity.setImageCompositionData(imageData);
+
+ CompositionEntityValidationData validationData =
+ imageManager.updateImage(imageEntity, USER);
+ Assert.assertTrue(validationData == null || validationData.getErrors() == null);
+ verify(imageDao).update(imageEntity);
+ }
+
+ @Test
+ public void testIllegalImageUpdate() {
+ doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
+ .when(imageDao).get(anyObject());
+
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+ CompositionEntityValidationData toBeReturned =
+ new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID);
+ toBeReturned.setErrors(Arrays.asList("error1", "error2"));
+ doReturn(toBeReturned)
+ .when(compositionEntityDataManagerMock)
+ .validateEntity(anyObject(), anyObject(), anyObject());
+
+ ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ Image imageData = new Image();
+ imageData.setFileName(IMAGE1_ID + " name updated");
+ imageData.setDescription(IMAGE1_ID + " desc updated");
+ imageEntity.setImageCompositionData(imageData);
+
+ CompositionEntityValidationData validationData = imageManager.updateImage(imageEntity, USER);
+ Assert.assertNotNull(validationData);
+ Assert.assertEquals(validationData.getErrors().size(), 2);
+
+ verify(imageDao, never()).update(imageEntity);
+ }
+
+ @Test
+ public void testUpdateHEATImageFileName() throws Exception {
+ doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
+ .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");
+ imageData.setDescription(IMAGE1_ID + " desc updated");
+ imageEntity.setImageCompositionData(imageData);
+
+ try {
+ imageManager.updateImage(imageEntity, USER);
+ }
+ catch (CoreException ex) {
+ Assert.assertEquals(ex.code().id(), VendorSoftwareProductErrorCodes.UPDATE_IMAGE_NOT_ALLOWED);
+ }
+
+ }
+
+ @Test
+ public void testGetNonExistingImageId_negative() {
+ testGet_negative(VSP_ID, VERSION, COMPONENT_ID, "non existing image id", USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testGet() {
+ ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ doReturn(expected).when(imageDao).get(anyObject());
+ String compositionSchema = "schema string";
+ doReturn(compositionSchema).when(imageManager).getImageCompositionSchema(anyObject());
+
+ CompositionEntityResponse<Image> response =
+ imageManager.getImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
+ Assert.assertEquals(response.getId(), expected.getId());
+ Assert.assertEquals(response.getData().getFileName(), expected.getImageCompositionData().
+ getFileName());
+ Assert.assertEquals(response.getData().getDescription(), expected.getImageCompositionData().
+ getDescription());
+ Assert.assertEquals(response.getSchema(), compositionSchema);
+ }
+
+ @Test
+ public void testDeleteOnNotManualImage() {
+ 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);
+ }
+
+ @Test
+ public void testDeleteOnNotExistImage() {
+ testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER,
+ VersioningErrorCodes.VERSIONABLE_SUB_ENTITY_NOT_FOUND);
+ }
+
+ @Test
+ public void testDeleteOnManualImage() {
+ ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ doReturn(expected).when(imageDao).get(anyObject());
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ imageManager.deleteImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
+ verify(imageDao).delete(anyObject());
+ }
+
+ @Test
+ public void testGetQuestionnaire() throws Exception {
+ ImageEntity image = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ image.setQuestionnaireData("{}");
+ doReturn(image).when(imageDao).getQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+
+ String schema = "schema string";
+ doReturn(schema).when(imageManager).getImageQuestionnaireSchema(anyObject());
+
+ QuestionnaireResponse questionnaire =
+ imageManager.getImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, USER);
+ Assert.assertNotNull(questionnaire);
+ Assert.assertEquals(questionnaire.getData(), image.getQuestionnaireData());
+ Assert.assertEquals(questionnaire.getSchema(), schema);
+ Assert.assertNull(questionnaire.getErrorMessage());
+ }
+
+ @Test
+ public void testUpdateManualImageQuestionnaire() throws Exception {
+ String json = "{\"md5\" :\"FFDSD33SS\"}";
+ doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+ doReturn(new ImageEntity()).when(imageDao).get(anyObject());
+
+ imageManager.updateImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, json, USER);
+ verify(imageDao).updateQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, json);
+ }
+
+ @Test
+ public void testUpdateHEATImageQuestionnaireWithFormat() throws Exception {
+ String json = "{\"format\" :\"qcow2\"}";
+ ImageEntity image = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ image.setQuestionnaireData(json);
+ doReturn(image).when(imageDao).get(anyObject());
+
+ doReturn(false).when(vspInfoDao).isManual(anyObject(), anyObject());
+ doReturn(image).when(imageDao).getQuestionnaireData(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+
+ String updJson = "{\"format\" :\"aki\"}";
+ try {
+ imageManager.updateImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, updJson,
+ USER);
+ Assert.fail();
+ }
+ catch(CoreException ex) {
+ Assert.assertEquals(ex.code().id(), VendorSoftwareProductErrorCodes.UPDATE_IMAGE_NOT_ALLOWED);
+ }
+ }
+
+ @Test
+ public void testUpdateHEATImageQuestionnaireWithInvalidFormat() throws Exception {
+ String json = "{\"format\" :\"qcow2\"}";
+ ImageEntity image = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+ image.setQuestionnaireData(json);
+ doReturn(image).when(imageDao).get(anyObject());
+
+ String updJson = "{\"format\" :\"a22\"}";
+ try {
+ imageManager.updateImageQuestionnaire(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID, updJson,
+ USER);
+ Assert.fail();
+ }
+ catch(CoreException ex) {
+ Assert.assertEquals(ex.code().id(), VendorSoftwareProductErrorCodes.VFC_IMAGE_INVALID_FORMAT);
+ }
+ }
+
+ private void testList_negative(String vspId, Version version, String componentId, String user,
+ String expectedErrorCode, String expectedErrorMsg) {
+ try {
+ imageManager.listImages(vspId, version, componentId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ Assert.assertEquals(exception.getMessage(), expectedErrorMsg);
+ }
+ }
+
+ private void testCreate_negative(ImageEntity image, String user, String expectedErrorCode) {
+ try {
+ imageManager.createImage(image, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testDelete_negative(String vspId, Version version, String componentId, String nicId,
+ String user,
+ String expectedErrorCode) {
+ try {
+ imageManager.deleteImage(vspId, version, componentId, nicId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ static ImageEntity createImage(String vspId, Version version, String compId, String imageId) {
+ ImageEntity imageEntity = new ImageEntity(vspId, version, compId, imageId);
+ Image imageData = new Image();
+ imageData.setFileName(imageId + " name");
+ imageData.setDescription(imageId + " desc");
+ imageEntity.setImageCompositionData(imageData);
+ return imageEntity;
+ }
+
+ private void testUpdate_negative(String vspId, Version version, String componentId, String
+ imageId, String user, String expectedErrorCode) {
+ try {
+ imageManager.updateImage(new ImageEntity(vspId, version, componentId, imageId), user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+ private void testGet_negative(String vspId, Version version, String componentId, String imageId,
+ String user, String expectedErrorCode) {
+ try {
+ imageManager.getImage(vspId, version, componentId, imageId, user);
+ Assert.fail();
+ } catch (CoreException exception) {
+ Assert.assertEquals(exception.code().id(), expectedErrorCode);
+ }
+ }
+
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java
new file mode 100644
index 0000000000..4bbbec166e
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java
@@ -0,0 +1,562 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import static org.openecomp.sdc.generator.util.GeneratorConstants.ALLOWED_FLAVORS_PROPERTY;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.BINDING_REQUIREMENT_ID;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.COUNT_PROPERTY_NAME;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdc.generator.core.utils.GeneratorUtils;
+import org.openecomp.sdc.generator.datatypes.tosca.ComputeFlavor;
+import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
+import org.openecomp.sdc.generator.datatypes.tosca.LicenseFlavor;
+import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
+import org.openecomp.sdc.generator.datatypes.tosca.VendorInfo;
+import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
+import org.openecomp.sdc.generator.util.GeneratorConstants;
+import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
+import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
+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.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ManualVspToscaManagerImplTest {
+
+ private static final String COMPONENT_ID = "Component_id";
+ private static final String COMPONENT_NAME = "Component_name";
+ private static final String SP_PART_NUMBER_1 = "Part_number_123";
+ private static final String FEATURE_GROUP_ID_1 = "Feature_Group_id_1";
+ private static final String MANUFACTURER_REF_1 = "Manufacturer_Ref_1";
+ private static final String VENDOR_MODEL_1 = "VLM_1";
+ private static final int NUM_CPUS_1 = 1;
+ private static final String DISK_SIZE_1 = "2GB";
+ private static final String MEM_SIZE_1 = "8GB";
+
+ private static final String SP_PART_NUMBER_2 = "Part_number_345";
+ private static final String FEATURE_GROUP_ID_2 = "Feature_Group_id_2";
+ private static final String MANUFACTURER_REF_2 = "Manufacturer_Ref_2";
+ private static final String VENDOR_MODEL_2 = "VLM_2";
+ private static final int NUM_CPUS_2 = 4;
+ private static final String DISK_SIZE_2 = "3GB";
+ private static final String MEM_SIZE_2 = "2GB";
+
+ private static final String IMAGE_VERSION_1 = "3.16.1";
+ private static final String IMAGE_HASH_1 = "65edfgye3256hjutve";
+ private static final String IMAGE_FILE_NAME_1 = "image-file-name1";
+ private static final String IMAGE_FILE_FORMAT_1 = "qcow2";
+ private static final String IMAGE_VERSION_2 = "3.1.9";
+ private static final String IMAGE_HASH_2 = "84rtedfe3256hjutaw";
+ private static final String IMAGE_FILE_NAME_2 = "image-file-name1";
+ private static final String IMAGE_FILE_FORMAT_2 = "iso";
+
+ private ManualVspToscaManager manualVspToscaManager = new ManualVspToscaManagerImpl();
+
+ @Test
+ public void testGenerateToscaInvalidVspId() {
+ VspModelInfo emptyVspCollectedData = new VspModelInfo();
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(emptyVspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(19, toscaServiceModel.getServiceTemplates().size());
+ }
+
+ @Test
+ public void testGenerateToscaNoComponent() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setReleaseVendor("Vendor-1");
+ vspCollectedData.setComponents(null);
+ vspCollectedData.setMultiFlavorVfcImages(null);
+ vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(19, toscaServiceModel.getServiceTemplates().size());
+ }
+
+ @Test
+ public void testGenerateToscaReleaseVendorNotPresent() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
+ vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
+ Assert.assertNotNull(mainServiceTemplate);
+ Assert.assertNull(mainServiceTemplate.getMetadata().get("releaseVendor"));
+ }
+
+ @Test
+ public void testGenerateToscaNoImages() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(null);
+ vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
+ Assert.assertNotNull(mainServiceTemplate);
+ String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
+ Assert.assertNull(mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX)
+ .getProperties());
+ }
+
+ @Test
+ public void testGenerateToscaNoPorts() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
+ vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
+ vspCollectedData.setNics(null);
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
+ String substitutionServiceTemplateFileName =
+ componentName + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
+ ServiceTemplate substitutionServiceTemplate =
+ serviceTemplates.get(substitutionServiceTemplateFileName);
+ Assert.assertNotNull(substitutionServiceTemplate);
+ //Only component node template should be present since there are no ports
+ Assert.assertEquals(1, substitutionServiceTemplate.getTopology_template().getNode_templates()
+ .size());
+ }
+
+ @Test
+ public void testGenerateToscaNoManufacturerRefNumAndFeatureGroup() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setReleaseVendor("Vendor-1");
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
+ Map<String, DeploymentFlavorModel> deploymentFlavorData = getDeploymentFlavorData();
+ deploymentFlavorData.get(SP_PART_NUMBER_1).getVendor_info()
+ .setManufacturer_reference_number(null);
+ deploymentFlavorData.get(SP_PART_NUMBER_1).getLicense_flavor().setFeature_group_uuid(null);
+ vspCollectedData.setAllowedFlavors(deploymentFlavorData);
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
+ Assert.assertNotNull(mainServiceTemplate);
+ String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
+ Map<String, DeploymentFlavorModel> actualDeploymentFlavor = (Map<String, DeploymentFlavorModel>)
+ mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX)
+ .getProperties().get(ALLOWED_FLAVORS_PROPERTY);
+ Assert.assertNull(actualDeploymentFlavor.get(SP_PART_NUMBER_1).getVendor_info()
+ .getManufacturer_reference_number());
+ Assert.assertNull(actualDeploymentFlavor.get(SP_PART_NUMBER_1).getLicense_flavor()
+ .getFeature_group_uuid());
+ }
+
+ @Test
+ public void testGenerateToscaNoDeploymentFlavor() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setReleaseVendor("Vendor-1");
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
+ vspCollectedData.setAllowedFlavors(null);
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
+ Assert.assertNotNull(mainServiceTemplate);
+ String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
+ Assert.assertNull(mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX)
+ .getProperties());
+ }
+
+ @Test
+ public void testGenerateToscaCompleteData() {
+ VspModelInfo vspCollectedData = new VspModelInfo();
+ vspCollectedData.setReleaseVendor("Vendor-1");
+ vspCollectedData.setComponents(getComponentData());
+ vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
+ vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
+ vspCollectedData.setNics(getComponentNics());
+ ToscaServiceModel toscaServiceModel =
+ manualVspToscaManager.generateToscaModel(vspCollectedData);
+ Assert.assertNotNull(toscaServiceModel);
+ Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
+ //Service model should contain only the packed global types
+ Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
+ Assert.assertNotNull(mainServiceTemplate);
+ String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
+
+ Assert.assertNotNull(mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX));
+ Assert.assertNotNull(mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX));
+ //Validate vnf configuration node template
+ validateVnfConfigurationNodeTemplate(mainServiceTemplate, componentName);
+ //Validate vfc node template
+ validateVfcNodeTemplateinMainServiceTemplate(mainServiceTemplate, componentName);
+ //Validate vnf node template
+ validateVnfNodeTemplate(mainServiceTemplate, componentName);
+
+ //Validate substitution service template
+ ServiceTemplate substitutionServiceTemplate = toscaServiceModel.getServiceTemplates()
+ .get(componentName + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX);
+ List<Nic> nics = vspCollectedData.getNics().get(COMPONENT_ID);
+ validateSubstitutionServiceTemplate(substitutionServiceTemplate, nics, componentName);
+
+ //Validate global substitution service template
+ ServiceTemplate globalSubstitutionServiceTemplate = toscaServiceModel.getServiceTemplates()
+ .get(ToscaUtil.getServiceTemplateFileName(GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
+ validateGlobalSubstitutionServiceTemplate(globalSubstitutionServiceTemplate, nics,
+ componentName);
+ }
+
+ private void validateVnfConfigurationNodeTemplate(ServiceTemplate mainServiceTemplate,
+ String componentName) {
+ NodeTemplate vnfConfigNodeTemplate =
+ mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX);
+ Assert.assertNotNull(vnfConfigNodeTemplate);
+ Assert.assertEquals(ToscaNodeType.VNF_CONFIG_NODE_TYPE, vnfConfigNodeTemplate.getType());
+ Map<String, DeploymentFlavorModel> allowedFlavors = (Map<String, DeploymentFlavorModel>)
+ vnfConfigNodeTemplate.getProperties().get(GeneratorConstants.ALLOWED_FLAVORS_PROPERTY);
+ Map<String, DeploymentFlavorModel> deploymentFlavorData = getDeploymentFlavorData();
+ Assert.assertNotNull(allowedFlavors);
+ Assert.assertEquals(deploymentFlavorData.size(), allowedFlavors.size());
+ Assert.assertEquals(deploymentFlavorData, allowedFlavors);
+ }
+
+ private void validateVfcNodeTemplateinMainServiceTemplate(ServiceTemplate mainServiceTemplate,
+ String componentName) {
+ NodeTemplate vfcNodeTemplate =
+ mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX);
+ Assert.assertNotNull(vfcNodeTemplate);
+ Assert.assertEquals(ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE, vfcNodeTemplate.getType());
+ Map<String, MultiFlavorVfcImage> vfcImages = (Map<String, MultiFlavorVfcImage>)
+ vfcNodeTemplate.getProperties().get(GeneratorConstants.IMAGES_PROPERTY);
+ Assert.assertNotNull(vfcImages);
+ Assert.assertEquals(2, vfcImages.size());
+ MultiFlavorVfcImage image1 = vfcImages.get(IMAGE_VERSION_1);
+ MultiFlavorVfcImage expectedImage1 = getImageData(IMAGE_VERSION_1, IMAGE_HASH_1,
+ IMAGE_FILE_NAME_1, "md5", IMAGE_FILE_FORMAT_1);
+ Assert.assertEquals(expectedImage1, image1);
+ MultiFlavorVfcImage image2 = vfcImages.get(IMAGE_VERSION_2);
+ MultiFlavorVfcImage expectedImage2 = getImageData(IMAGE_VERSION_2, IMAGE_HASH_2,
+ IMAGE_FILE_NAME_2, "md5", IMAGE_FILE_FORMAT_2);
+ Assert.assertEquals(expectedImage2, image2);
+ }
+
+ private void validateVnfNodeTemplate(ServiceTemplate mainServiceTemplate,
+ String componentName) {
+ NodeTemplate vnfNodeTemplate =
+ mainServiceTemplate.getTopology_template().getNode_templates()
+ .get(componentName + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX);
+ Assert.assertNotNull(vnfNodeTemplate);
+ Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName,
+ vnfNodeTemplate.getType());
+ Assert.assertNotNull(vnfNodeTemplate.getDirectives());
+ Assert.assertEquals(true, vnfNodeTemplate.getDirectives().contains(ToscaConstants
+ .NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE));
+
+ Map<String, Object> serviceTemplateFilterProperty = (Map<String, Object>) vnfNodeTemplate
+ .getProperties().get(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+ Assert.assertNotNull(serviceTemplateFilterProperty);
+ String substituteServiceTemplate = serviceTemplateFilterProperty
+ .get(SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME).toString();
+ String expectedServiceTemplateName = componentName + GeneratorConstants
+ .TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
+ Assert.assertEquals(expectedServiceTemplateName, substituteServiceTemplate);
+ int count = (int) serviceTemplateFilterProperty.get(COUNT_PROPERTY_NAME);
+ Assert.assertEquals(1, count);
+ }
+
+ private void validateSubstitutionServiceTemplate(ServiceTemplate substitutionServiceTemplate,
+ List<Nic> nics,
+ String componentName) {
+ Assert.assertNotNull(substitutionServiceTemplate);
+ int expectedNumberOfNodeTemplates = nics.size() + 1; //1 component node template
+ Map<String, NodeTemplate> substitutionNodeTemplates =
+ substitutionServiceTemplate.getTopology_template().getNode_templates();
+ Assert.assertEquals(expectedNumberOfNodeTemplates, substitutionNodeTemplates.size());
+ NodeTemplate componentNodeTemplate = substitutionNodeTemplates.get(componentName);
+ Assert.assertNotNull(componentNodeTemplate);
+ Assert.assertEquals(ToscaNodeType.VFC_NODE_TYPE_PREFIX + componentName, componentNodeTemplate
+ .getType());
+ for (Nic nic : nics) {
+ String nicName = nic.getName();
+ NodeTemplate nicNodeTemplate =
+ substitutionNodeTemplates.get(nicName + PORT_NODE_TEMPLATE_ID_SUFFIX);
+ validateNicNodeTemplate(nicNodeTemplate, componentName);
+ }
+ SubstitutionMapping substitutionMappings =
+ substitutionServiceTemplate.getTopology_template().getSubstitution_mappings();
+ validateSubstitutionMappings(substitutionMappings, nics, componentName);
+ }
+
+ private void validateNicNodeTemplate(NodeTemplate nicNodeTemplate,
+ String componentName) {
+ Assert.assertNotNull(nicNodeTemplate);
+ Assert.assertEquals(ToscaNodeType.NETWORK_PORT, nicNodeTemplate.getType());
+ List<Map<String, RequirementAssignment>> nicNodeTemplateRequirements =
+ nicNodeTemplate.getRequirements();
+ Assert.assertNotNull(nicNodeTemplateRequirements);
+ Assert.assertEquals(1, nicNodeTemplateRequirements.size());
+ RequirementAssignment expectedRequirementAssignment = new RequirementAssignment();
+ expectedRequirementAssignment.setCapability(ToscaCapabilityType.NATIVE_NETWORK_BINDABLE);
+ expectedRequirementAssignment.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_BINDS_TO);
+ expectedRequirementAssignment.setNode(componentName);
+ Assert.assertEquals(true, new ToscaAnalyzerServiceImpl()
+ .isRequirementExistInNodeTemplate(nicNodeTemplate, BINDING_REQUIREMENT_ID,
+ expectedRequirementAssignment));
+ }
+
+ private void validateSubstitutionMappings(SubstitutionMapping substitutionMappings,
+ List<Nic> nics,
+ String componentName) {
+ Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName,
+ substitutionMappings.getNode_type());
+ Map<String, List<String>> capabilities = substitutionMappings.getCapabilities();
+ validateSubstitutionCapabilities(capabilities, componentName);
+ Map<String, List<String>> requirements = substitutionMappings.getRequirements();
+ validateSubstitutionRequirements(requirements, nics);
+ }
+
+ private void validateSubstitutionCapabilities(Map<String, List<String>> capabilities,
+ String componentName) {
+ List<String> supportedCapabilities = GeneratorUtils.supportedCapabilities;
+ Assert.assertEquals(supportedCapabilities.size(), capabilities.size());
+ for (String capability : supportedCapabilities) {
+ String expectedCapabilityId = capability + "_" + componentName;
+ Assert.assertEquals(true, capabilities.containsKey(expectedCapabilityId));
+ List<String> expectedCapabilityValue = new ArrayList<>(2);
+ expectedCapabilityValue.add(componentName);
+ expectedCapabilityValue.add(capability);
+ List<String> actualCapabilityValue = capabilities.get(expectedCapabilityId);
+ Assert.assertEquals(expectedCapabilityValue, actualCapabilityValue);
+ }
+ }
+
+ private void validateSubstitutionRequirements(Map<String, List<String>> requirements,
+ List<Nic> nics) {
+ List<String> supportedRequirements = GeneratorUtils.supportedRequirements;
+ for(Nic nic : nics) {
+ String nicNodeTemplateId = nic.getName() + PORT_NODE_TEMPLATE_ID_SUFFIX;
+ for (String requirement : supportedRequirements) {
+ String expectedRequirementId = requirement + "_" + nicNodeTemplateId;
+ Assert.assertEquals(true, requirements.containsKey(expectedRequirementId));
+ List<String> expectedRequirementValue = new ArrayList<>(2);
+ expectedRequirementValue.add(nicNodeTemplateId);
+ expectedRequirementValue.add(requirement);
+ List<String> actualRequirementValue = requirements.get(expectedRequirementId);
+ Assert.assertEquals(expectedRequirementValue, actualRequirementValue);
+ }
+ }
+ }
+
+ private void validateGlobalSubstitutionServiceTemplate(ServiceTemplate
+ globalSubstitutionServiceTemplate,
+ List<Nic> nics,
+ String componentName) {
+ Assert.assertNotNull(globalSubstitutionServiceTemplate);
+ Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
+ Assert.assertEquals(1, nodeTypes.size());
+ NodeType deploymentFlavorNodeType =
+ nodeTypes.get(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName);
+ Assert.assertNotNull(deploymentFlavorNodeType);
+ Map<String, PropertyDefinition> properties = deploymentFlavorNodeType.getProperties();
+ Assert.assertNotNull(properties);
+ PropertyDefinition numCpusProperty = properties.get(GeneratorConstants.NUM_CPUS);
+ Assert.assertNotNull(numCpusProperty);
+ Assert.assertEquals(PropertyType.INTEGER.getDisplayName(), numCpusProperty.getType());
+ Assert.assertEquals(true, numCpusProperty.getRequired());
+
+ PropertyDefinition diskSizeProperty = properties.get(GeneratorConstants.DISK_SIZE);
+ Assert.assertNotNull(diskSizeProperty);
+ Assert.assertEquals(PropertyType.SCALAR_UNIT_SIZE.getDisplayName(), diskSizeProperty.getType());
+ Assert.assertEquals(true, diskSizeProperty.getRequired());
+
+ PropertyDefinition memSizeProperty = properties.get(GeneratorConstants.MEM_SIZE);
+ Assert.assertNotNull(memSizeProperty);
+ Assert.assertEquals(PropertyType.SCALAR_UNIT_SIZE.getDisplayName(), memSizeProperty.getType());
+ Assert.assertEquals(true, memSizeProperty.getRequired());
+
+ List<Map<String, RequirementDefinition>> requirements =
+ deploymentFlavorNodeType.getRequirements();
+ List<String> supportedRequirements = GeneratorUtils.supportedRequirements;
+ for (Nic nic : nics) {
+ boolean found = false;
+ String nicNodeTemplateId = nic.getName() + PORT_NODE_TEMPLATE_ID_SUFFIX;
+ for (String requirementId : supportedRequirements) {
+ String expectedRequirementId = requirementId + "_" + nicNodeTemplateId;
+ for (Map<String, RequirementDefinition> requirement : requirements) {
+ if (requirement.containsKey(expectedRequirementId)) {
+ found = true;
+ break;
+ }
+ }
+ }
+ Assert.assertEquals(true, found);
+ }
+
+ Map<String, CapabilityDefinition> capabilities = deploymentFlavorNodeType.getCapabilities();
+ List<String> supportedCapabilities = GeneratorUtils.supportedCapabilities;
+ for (String capabilityId : supportedCapabilities) {
+ String expectedCapabilityId = capabilityId + "_" + componentName;
+ Assert.assertEquals (true, capabilities.containsKey(expectedCapabilityId));
+ }
+ }
+
+ private Map<String, String> getComponentData() {
+ Map<String, String> componentData = new HashMap<>();
+ componentData.put(COMPONENT_ID, COMPONENT_NAME);
+ return componentData;
+ }
+
+ private Map<String, List<MultiFlavorVfcImage>> getVfcImageData() {
+ Map<String, List<MultiFlavorVfcImage>> imageData = new HashMap<>();
+ List<MultiFlavorVfcImage> images = new ArrayList<>(2);
+ MultiFlavorVfcImage image1 = getImageData(IMAGE_VERSION_1, IMAGE_HASH_1, IMAGE_FILE_NAME_1,
+ "md5", IMAGE_FILE_FORMAT_1);
+ MultiFlavorVfcImage image2 = getImageData(IMAGE_VERSION_2, IMAGE_HASH_2, IMAGE_FILE_NAME_2,
+ "md5", IMAGE_FILE_FORMAT_2);
+ images.add(image1);
+ images.add(image2);
+ imageData.put(COMPONENT_ID, images);
+ return imageData;
+ }
+
+ private Map<String, DeploymentFlavorModel> getDeploymentFlavorData() {
+ Map<String, DeploymentFlavorModel> deploymentFlavorData = new HashMap<>();
+ ComputeFlavor computeFlavor1 = getComputeFlavorData(NUM_CPUS_1, DISK_SIZE_1, MEM_SIZE_1);
+ LicenseFlavor licenseFlavor1 = getLicenseFlavor(FEATURE_GROUP_ID_1);
+ VendorInfo vendorInfo1 = getVendorInfo(MANUFACTURER_REF_1, VENDOR_MODEL_1);
+ DeploymentFlavorModel deploymentFlavor1 = getDeploymentFlavorModel(SP_PART_NUMBER_1,
+ computeFlavor1, vendorInfo1, licenseFlavor1);
+
+ ComputeFlavor computeFlavor2 = getComputeFlavorData(NUM_CPUS_2, DISK_SIZE_2, MEM_SIZE_2);
+ LicenseFlavor licenseFlavor2 = getLicenseFlavor(FEATURE_GROUP_ID_2);
+ VendorInfo vendorInfo2 = getVendorInfo(MANUFACTURER_REF_2, VENDOR_MODEL_2);
+
+ DeploymentFlavorModel deploymentFlavor2 = getDeploymentFlavorModel(SP_PART_NUMBER_2,
+ computeFlavor2, vendorInfo2, licenseFlavor2);
+
+ deploymentFlavorData.put(SP_PART_NUMBER_1, deploymentFlavor1);
+ deploymentFlavorData.put(SP_PART_NUMBER_2, deploymentFlavor2);
+ return deploymentFlavorData;
+ }
+
+ private DeploymentFlavorModel getDeploymentFlavorModel(String spPartNumber, ComputeFlavor
+ computeFlavor, VendorInfo vendorInfo, LicenseFlavor licenseFlavor) {
+ DeploymentFlavorModel deploymentFlavor = new DeploymentFlavorModel();
+ deploymentFlavor.setSp_part_number(spPartNumber);
+ deploymentFlavor.setCompute_flavor(computeFlavor);
+ deploymentFlavor.setLicense_flavor(licenseFlavor);
+ deploymentFlavor.setVendor_info(vendorInfo);
+ return deploymentFlavor;
+ }
+
+ private ComputeFlavor getComputeFlavorData(int numCpus, String diskSize, String memSize ) {
+ ComputeFlavor computeFlavor = new ComputeFlavor();
+ computeFlavor.setNum_cpus(numCpus);
+ computeFlavor.setDisk_size(diskSize);
+ computeFlavor.setMem_size(memSize);
+ return computeFlavor;
+ }
+
+ private VendorInfo getVendorInfo(String manufacturerRefNumber, String vlmId) {
+ VendorInfo vendorInfo = new VendorInfo();
+ vendorInfo.setManufacturer_reference_number(manufacturerRefNumber);
+ vendorInfo.setVendor_model(vlmId);
+ return vendorInfo;
+ }
+
+ private LicenseFlavor getLicenseFlavor(String featureGroupId) {
+ LicenseFlavor licenseFlavor = new LicenseFlavor();
+ licenseFlavor.setFeature_group_uuid(featureGroupId);
+ return licenseFlavor;
+ }
+
+ private MultiFlavorVfcImage getImageData(String imageVersion, String fileHash, String fileName,
+ String fileHashType, String fileFormat) {
+ MultiFlavorVfcImage image = new MultiFlavorVfcImage();
+ image.setSoftware_version(imageVersion);
+ image.setFile_hash(fileHash);
+ image.setFile_hash_type(fileHashType);
+ image.setFile_name(fileName+"-"+IMAGE_VERSION_2+"."+fileFormat);
+ return image;
+ }
+
+ private Map<String, List<Nic>> getComponentNics() {
+ Map<String, List<Nic>> nicData = new HashMap<>();
+ List<Nic> nicList = new ArrayList<>(2);
+ Nic nic1 = new Nic();
+ nic1.setName("Nic_1");
+
+ Nic nic2 = new Nic();
+ nic2.setName("Nic_2");
+
+ nicList.add(nic1);
+ nicList.add(nic2);
+ nicData.put(COMPONENT_ID, nicList);
+ return nicData;
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java
deleted file mode 100644
index 54e979cdaf..0000000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MibManagerImplTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.openecomp.sdc.vendorsoftwareproduct.impl;
-
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
-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.io.InputStream;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Optional;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-public class MibManagerImplTest {
-
- private static final String USER1 = "ComponentsUploadTestUser";
- private static final String COMPONENT_ID = "COMPONENT_ID";
- private static final String VSP_ID = "vspId";
- private static final Version VERSION = new Version(0, 1);
- private static final String trapFileName = "MMSC.zip";
- private static final String pollFileName = "MNS OAM FW.zip";
- private static final String notZipFileName = "notZipFile";
- private static final String zipWithFoldersFileName = "zipFileWithFolder.zip";
- private static final String emptyZipFileName = "emptyZip.zip";
- private static final String ZIP_DIR = "/vspmanager/zips/";
-
- @Mock
- private VendorSoftwareProductDao vendorSoftwareProductDaoMock;
- @Mock
- private MibDao mibDaoMock;
- @InjectMocks
- private MibManagerImpl mibManager;
-
- @BeforeMethod
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test(expectedExceptions = CoreException.class)
- public void testUploadEmptyZip() {
- InputStream zis = getFileInputStream(ZIP_DIR + emptyZipFileName);
- mibManager.upload(zis, emptyZipFileName, VSP_ID, VERSION, COMPONENT_ID,
- ArtifactType.SNMP_TRAP, USER1);
- }
-
- @Test
- public void testUploadInvalidZip() {
- URL url = this.getClass().getResource("/notZipFile");
- try {
- mibManager
- .upload(url.openStream(), notZipFileName, VSP_ID, VERSION, COMPONENT_ID,
- ArtifactType.SNMP_TRAP, USER1);
- Assert.fail();
- } catch (Exception exception) {
- Assert.assertEquals(exception.getMessage(), "Invalid zip file");
- }
- }
-
- @Test
- public void testUploadZipWithFolders() {
- InputStream zis = getFileInputStream(ZIP_DIR + zipWithFoldersFileName);
-
- try {
- mibManager
- .upload(zis, zipWithFoldersFileName, VSP_ID, VERSION, COMPONENT_ID,
- ArtifactType.SNMP_TRAP, USER1);
- Assert.fail();
- } catch (Exception exception) {
- Assert.assertEquals(exception.getMessage(), "Zip file should not contain folders");
- }
- }
-
-
- @Test
- public void testListMibFilenames() {
- MibEntity artifact1 =
- new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact1");
- artifact1.setType(ArtifactType.SNMP_TRAP);
- artifact1.setArtifactName(trapFileName);
-
- MibEntity artifact2 =
- new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact2");
- artifact2.setType(ArtifactType.SNMP_POLL);
- artifact2.setArtifactName(pollFileName);
-
- doReturn(Arrays.asList(artifact1, artifact2))
- .when(mibDaoMock).list(anyObject());
-
- MibUploadStatus mibUploadStatus =
- mibManager.listFilenames(VSP_ID, VERSION, COMPONENT_ID, USER1);
-
- Assert.assertEquals(mibUploadStatus.getSnmpTrap(), trapFileName);
- Assert.assertEquals(mibUploadStatus.getSnmpPoll(), pollFileName);
- }
-
- @Test (expectedExceptions = CoreException.class)
- public void testDeleteComponentMibWhenNone() {
- doReturn(Optional.empty()).when(mibDaoMock).getByType(any());
- mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1);
-
- verify(mibDaoMock, never()).delete(anyObject());
- }
-
- @Test
- public void testDeleteComponentMib() {
- doReturn(Optional.of(new MibEntity(VSP_ID, VERSION, COMPONENT_ID, "artifactId"))).when
- (mibDaoMock).getByType(anyObject());
-
- mibManager.delete(VSP_ID, VERSION, COMPONENT_ID, ArtifactType.SNMP_POLL, USER1);
-
- verify(mibDaoMock).delete(anyObject());
- }
-
-
- private InputStream getFileInputStream(String fileName) {
- URL url = this.getClass().getResource(fileName);
- try {
- return url.openStream();
- } catch (IOException exception) {
- exception.printStackTrace();
- return null;
- }
- }
-}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImplTest.java
new file mode 100644
index 0000000000..534c630e40
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/MonitoringUploadsManagerImplTest.java
@@ -0,0 +1,164 @@
+package org.openecomp.sdc.vendorsoftwareproduct.impl;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MonitoringUploadStatus;
+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.io.InputStream;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Optional;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+public class MonitoringUploadsManagerImplTest {
+
+ private static final String USER1 = "ComponentsUploadTestUser";
+ private static final String COMPONENT_ID = "COMPONENT_ID";
+ private static final String VSP_ID = "vspId";
+ private static final Version VERSION = new Version(0, 1);
+ private static final String trapFileName = "MMSC.zip";
+ private static final String pollFileName = "MNS OAM FW.zip";
+ private static final String vesFileName = "vesTest-yml_only.zip";
+ private static final String invalidVesFileName = "invalid_ves_file.zip";
+ private static final String notZipFileName = "notZipFile";
+ private static final String zipWithFoldersFileName = "zipFileWithFolder.zip";
+ private static final String emptyZipFileName = "emptyZip.zip";
+ private static final String ZIP_DIR = "/vspmanager/zips/";
+
+ @Mock
+ private ComponentArtifactDao componentArtifactDaoMock;
+ @InjectMocks
+ private MonitoringUploadsManagerImpl moitoringUploadsManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test(expectedExceptions = CoreException.class)
+ public void testUploadEmptyZip() {
+ InputStream zis = getFileInputStream(ZIP_DIR + emptyZipFileName);
+ moitoringUploadsManager.upload(zis, emptyZipFileName, VSP_ID, VERSION, COMPONENT_ID,
+ MonitoringUploadType.SNMP_TRAP, USER1);
+ }
+
+ @Test
+ public void testUploadInvalidZip() {
+ URL url = this.getClass().getResource("/notZipFile");
+ try {
+ moitoringUploadsManager
+ .upload(url.openStream(), notZipFileName, VSP_ID, VERSION, COMPONENT_ID,
+ MonitoringUploadType.VES_EVENTS, USER1);
+ Assert.fail();
+ } catch (Exception exception) {
+ Assert.assertEquals(exception.getMessage(), "Invalid zip file");
+ }
+ }
+
+ @Test
+ public void testUploadZipWithFolders() {
+ InputStream zis = getFileInputStream(ZIP_DIR + zipWithFoldersFileName);
+
+ try {
+ moitoringUploadsManager
+ .upload(zis, zipWithFoldersFileName, VSP_ID, VERSION, COMPONENT_ID,
+ MonitoringUploadType.SNMP_TRAP, USER1);
+ Assert.fail();
+ } catch (Exception exception) {
+ Assert.assertEquals(exception.getMessage(), "Zip file should not contain folders");
+ }
+ }
+
+ @Test
+ public void testUploadVEsEventZipWithNonYamlFiles() {
+ InputStream zis = getFileInputStream(ZIP_DIR + invalidVesFileName);
+
+ try {
+ moitoringUploadsManager
+ .upload(zis, invalidVesFileName, VSP_ID, VERSION, COMPONENT_ID,
+ MonitoringUploadType.VES_EVENTS, USER1);
+ Assert.fail();
+ } catch (Exception exception) {
+ Assert.assertEquals(exception.getMessage(),
+ "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML " +
+ "files (using .yaml/.yml extensions)");
+ }
+ }
+
+
+ @Test
+ public void testListMonitoringFilenames() {
+ ComponentMonitoringUploadEntity artifact1 =
+ new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact1");
+ artifact1.setType(MonitoringUploadType.SNMP_TRAP);
+ artifact1.setArtifactName(trapFileName);
+
+ ComponentMonitoringUploadEntity artifact2 =
+ new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact2");
+ artifact2.setType(MonitoringUploadType.SNMP_POLL);
+ artifact2.setArtifactName(pollFileName);
+
+ ComponentMonitoringUploadEntity artifact3 =
+ new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifact3");
+ artifact3.setType(MonitoringUploadType.VES_EVENTS);
+ artifact3.setArtifactName(vesFileName);
+
+ doReturn(Arrays.asList(artifact1, artifact2, artifact3))
+ .when(componentArtifactDaoMock).list(anyObject());
+
+ MonitoringUploadStatus monitoringUploadStatus =
+ moitoringUploadsManager.listFilenames(VSP_ID, VERSION, COMPONENT_ID, USER1);
+
+ Assert.assertEquals(monitoringUploadStatus.getSnmpTrap(), trapFileName);
+ Assert.assertEquals(monitoringUploadStatus.getSnmpPoll(), pollFileName);
+ Assert.assertEquals(monitoringUploadStatus.getVesEvent(), vesFileName);
+ }
+
+ @Test (expectedExceptions = CoreException.class)
+ public void testDeleteComponentMibWhenNone() {
+ doReturn(Optional.empty()).when(componentArtifactDaoMock).getByType(any());
+ moitoringUploadsManager
+ .delete(VSP_ID, VERSION, COMPONENT_ID, MonitoringUploadType.SNMP_POLL, USER1);
+
+ verify(componentArtifactDaoMock, never()).delete(anyObject());
+ }
+
+ @Test
+ public void testDeleteComponentMonitoringUpload() {
+ doReturn(Optional
+ .of(new ComponentMonitoringUploadEntity(VSP_ID, VERSION, COMPONENT_ID, "artifactId")))
+ .when
+ (componentArtifactDaoMock).getByType(anyObject());
+
+ moitoringUploadsManager
+ .delete(VSP_ID, VERSION, COMPONENT_ID, MonitoringUploadType.SNMP_POLL, USER1);
+
+ verify(componentArtifactDaoMock).delete(anyObject());
+ }
+
+
+ private InputStream getFileInputStream(String fileName) {
+ URL url = this.getClass().getResource(fileName);
+ try {
+ return url.openStream();
+ } catch (IOException exception) {
+ exception.printStackTrace();
+ return null;
+ }
+ }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
index a143fd36e8..b2cfba7672 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
@@ -7,14 +7,17 @@ import org.mockito.Spy;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.errors.VersioningErrorCodes;
@@ -22,6 +25,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -29,6 +33,7 @@ import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class NicManagerImplTest {
private static final String NIC_NOT_EXIST_MSG =
@@ -50,6 +55,8 @@ public class NicManagerImplTest {
private CompositionEntityDataManager compositionEntityDataManagerMock;
@Mock
private NetworkManager networkManagerMock;
+ @Mock
+ private VendorSoftwareProductInfoDao vspInfoDao;
@InjectMocks
@Spy
private NicManagerImpl nicManager;
@@ -87,6 +94,112 @@ public class NicManagerImplTest {
}
}
+ @Test
+ public void testCreate() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ Nic nic = nicEntity.getNicCompositionData();
+ nic.setNetworkType(NetworkType.Internal);
+ nicEntity.setNicCompositionData(nic);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<NicEntity> nicEntities = new ArrayList<>();
+ doReturn(nicEntities).when(nicDao).list(anyObject());
+ doReturn(nicEntity).when(compositionEntityDataManagerMock).createNic(anyObject());
+
+ NicEntity created = nicManager.createNic(nicEntity,USER);
+ Assert.assertNotNull(created);
+ }
+
+ @Test
+ public void testCreateWithDupNicName() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ Nic nic = nicEntity.getNicCompositionData();
+ nic.setNetworkType(NetworkType.Internal);
+ nicEntity.setNicCompositionData(nic);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<NicEntity> nicEntities = new ArrayList<>();
+
+ NicEntity nicEntityDiffName = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ Nic newNameNic = nicEntityDiffName.getNicCompositionData();
+ newNameNic.setName(NIC1_ID + " Name");
+ nicEntityDiffName.setNicCompositionData(newNameNic);
+ nicEntities.add(nicEntityDiffName);
+ doReturn(nicEntities).when(nicDao).list(anyObject());
+ doReturn(nicEntity).when(compositionEntityDataManagerMock).createNic(anyObject());
+
+ try {
+ NicEntity created = nicManager.createNic(nicEntity,USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals("Invalid request, NIC with name "+ nic.getName() +
+ " already exist for component with ID "+ nicEntity.getComponentId() +".",
+ exception.code().message());
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.DUPLICATE_NIC_NAME_NOT_ALLOWED,
+ exception.code().id());
+ }
+ }
+
+ @Test
+ public void testCreateWithExternalNetworkType() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ Nic nic = nicEntity.getNicCompositionData();
+ nic.setNetworkType(NetworkType.External);
+ nicEntity.setNicCompositionData(nic);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<NicEntity> nicEntities = new ArrayList<>();
+ doReturn(nicEntities).when(nicDao).list(anyObject());
+ doReturn(nicEntity).when(compositionEntityDataManagerMock).createNic(anyObject());
+
+ try {
+ NicEntity created = nicManager.createNic(nicEntity,USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals("Invalid request,NetworkId not allowed for External Networks",
+ exception.code().message());
+ Assert.assertEquals(VendorSoftwareProductErrorCodes.NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK,
+ exception.code().id());
+ }
+ }
+
+ @Test
+ public void testCreateWithNetworkDesc() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ Nic nic = nicEntity.getNicCompositionData();
+ nic.setNetworkType(NetworkType.Internal);
+ nic.setNetworkDescription(NIC1_ID);
+ nicEntity.setNicCompositionData(nic);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ Collection<NicEntity> nicEntities = new ArrayList<>();
+ doReturn(nicEntities).when(nicDao).list(anyObject());
+ doReturn(nicEntity).when(compositionEntityDataManagerMock).createNic(anyObject());
+
+ try {
+ NicEntity created = nicManager.createNic(nicEntity,USER);
+ } catch (CoreException exception) {
+ Assert.assertEquals("Invalid request, Network Description not allowed for Internal Networks",
+ exception.code().message());
+ Assert.assertEquals(VendorSoftwareProductErrorCodes
+ .NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK,exception.code().id());
+ }
+ }
+
+ @Test
+ public void testDeleteNic() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+ doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+ doReturn(nicEntity).when(nicDao).get(anyObject());
+
+ nicManager.deleteNic(VSP_ID,new Version(0,1),COMPONENT_ID,NIC1_ID,USER);
+
+ }
+
+ @Test
+ public void testUpdateNicQuestionnaire() {
+ NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+
+ doReturn(nicEntity).when(nicDao).get(anyObject());
+
+ nicManager.updateNicQuestionnaire(VSP_ID,new Version(0,1),COMPONENT_ID,NIC1_ID,"Ques",USER);
+
+ }
+
// @Test(dependsOnMethods = "testListWhenNone")
// public void testCreate() {
// NIC1_ID = testCreate(VSP_ID, COMPONENT_ID, NETWORK1_ID, NETWORK1_ID.getNetworkCompositionData().getName());
@@ -122,7 +235,7 @@ public class NicManagerImplTest {
public void testCreateOnUploadVsp_negative() {
testCreate_negative(new NicEntity(VSP_ID, VERSION, COMPONENT_ID, null), USER,
- VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
+ VendorSoftwareProductErrorCodes.ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING);
}
@Test
@@ -230,7 +343,7 @@ public class NicManagerImplTest {
@Test
public void testDeleteOnUploadVsp_negative() {
testDelete_negative(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, USER,
- VendorSoftwareProductErrorCodes.VSP_COMPOSITION_EDIT_NOT_ALLOWED);
+ VendorSoftwareProductErrorCodes.DELETE_NIC_NOT_ALLOWED);
}
@Test(expectedExceptions = CoreException.class,
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 5a2f76b6fa..f79a56bebf 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
@@ -20,8 +20,6 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
@@ -29,7 +27,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory;
-import org.openecomp.core.enrichment.types.ArtifactType;
import org.openecomp.core.factory.impl.AbstractFactoryBase;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
import org.openecomp.core.model.dao.ServiceModelDao;
@@ -48,7 +45,8 @@ import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService;
-import org.openecomp.sdc.vendorsoftwareproduct.MibManager;
+import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
+import org.openecomp.sdc.vendorsoftwareproduct.MonitoringUploadsManager;
import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
@@ -105,9 +103,6 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
-/**
- * Created by TALIO on 4/23/2016
- */
public class VendorSoftwareProductManagerImplTest {
private static final String INVALID_VERSION_MSG = "Invalid requested version.";
@@ -147,6 +142,8 @@ public class VendorSoftwareProductManagerImplTest {
private PackageInfoDao packageInfoDao;
@Mock
private VendorSoftwareProductInfoDao vspInfoDaoMock;
+ @Mock
+ private ManualVspToscaManager manualVspToscaManager;
@Spy
@@ -154,7 +151,7 @@ public class VendorSoftwareProductManagerImplTest {
private VendorSoftwareProductManagerImpl vendorSoftwareProductManager;
private OrchestrationTemplateCandidateManager candidateManager;
- private MibManager mibManager;
+ private MonitoringUploadsManager monitoringUploadsManager;
@Captor
private ArgumentCaptor<ActivityLogEntity> activityLogEntityArg;
@@ -467,6 +464,7 @@ public class VendorSoftwareProductManagerImplTest {
VSP_ID, USER1, VersionableEntityAction.Read);
VspDetails vsp = new VspDetails(VSP_ID, VERSION01);
+ vsp.setOnboardingMethod("Manual");
doReturn(vsp).when(vspInfoDaoMock).get(anyObject());
VspQuestionnaireEntity vspQuestionnaire = new VspQuestionnaireEntity(VSP_ID, VERSION01);
@@ -757,20 +755,21 @@ 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);
- mibManager.upload(getFileInputStream(filePath),
+ monitoringUploadsManager.upload(getFileInputStream(filePath),
fileName, vspId,
- VERSION01, componentEntities.get(0).getId(), ArtifactType.SNMP_POLL, user);
+ 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 {
@@ -901,6 +900,7 @@ public class VendorSoftwareProductManagerImplTest {
vspDetails.setVlmVersion(new Version(1, 0));
vspDetails.setLicenseAgreement(licenseAgreement);
vspDetails.setFeatureGroups(featureGroups);
+ vspDetails.setOnboardingMethod("HEAT");
return vspDetails;
}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java
index 134dbfb5d4..3d98ab76c6 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/CandidateServiceImplTest.java
@@ -7,9 +7,9 @@
* 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.
@@ -92,6 +92,8 @@ public class CandidateServiceImplTest {
vspDetails.setName("vspTest");
vspDetails.setDescription("Test description");
vspDetails.setVersion(new Version(0, 1));
+ //vspDetails.setOnboardingMethod(VSPCommon.OnboardingMethod.HEAT.name());
+ vspDetails.setOnboardingMethod("HEAT");
FilesDataStructure structure = JsonUtil.json2Object(getExpectedJson(), FilesDataStructure.class);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java
index d6060e6114..a85153ecef 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImplTest.java
@@ -26,7 +26,7 @@ import org.mockito.MockitoAnnotations;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java
index fdbf400406..33cf18c463 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/schemagenerator/SchemaGeneratorTest.java
@@ -252,12 +252,16 @@ public class SchemaGeneratorTest {
}
@Test
- public void testGenerateNicCompositionManual() {
+ public void testGenerateNicCompositionManual() {Nic nic = new Nic();
+ nic.setName("upload nic1 name");
+ nic.setDescription("upload nic1 desc");
+ nic.setNetworkType(NetworkType.Internal);
NicCompositionSchemaInput input = new NicCompositionSchemaInput();
+
input.setManual(true);
input.setNetworkIds(
Arrays.asList("manual networkId1", "manual networkId2", "manual networkId3"));
-
+ input.setNic(nic);
String schema = SchemaGenerator
.generate(SchemaTemplateContext.composition, CompositionEntityType.nic, input);
validateSchema(schema);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java
index e1073db941..4d925c00cd 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/upload/HeatCleanup/HeatCleanupOnNewUploadTest.java
@@ -72,7 +72,8 @@ public class HeatCleanupOnNewUploadTest {/*
VspDetails vspDetails = vendorSoftwareProductManager.createVsp(VSPCommon
.createVspDetails(null, null, "VSPTestEmpty", "Test-vsp-empty", "vendorName", "vlm1Id",
- "icon", "category", "subCategory", "123", null), USER1);
+ "icon", "category", "subCategory", "123", null, VSPCommon.OnboardingMethod.HEAT.name()),
+ USER1);
vspId = vspDetails.getId();
vspActiveVersion = vspDetails.getVersion();
}
@@ -106,7 +107,7 @@ public class HeatCleanupOnNewUploadTest {/*
String componentId = components.get(0).getId();
vendorSoftwareProductManager
- .upload(mib, "vDNS.zip", vspId, componentId, ArtifactType.SNMP_TRAP, USER1);
+ .upload(mib, "vDNS.zip", vspId, componentId, MonitoringUploadType.SNMP_TRAP, USER1);
vendorSoftwareProductManager
.createProcess(new ProcessEntity(vspId, vspActiveVersion, componentId, null), USER1);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/invalidComponent.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/invalidComponent.json
index 9b10297572..be9e13adde 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/invalidComponent.json
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/invalidComponent.json
@@ -6,9 +6,6 @@
"drivers": ",Lz-m3R7iwRREmjBA3Ss6b0K8YBcH4SS66UJSG8OGTlaMs6Be"
},
"image": {
- "ephemeralDiskSizePerVM": 8,
- "format": "iso",
- "bootDiskSizePerVM": 100,
"providedBy": "Vendor"
},
"dnsConfiguration": "dolore adipisicing proident aute amet",
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/schema/componentQuestionnaire.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/schema/componentQuestionnaire.json
index e0bd377e26..7870df8ab2 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/schema/componentQuestionnaire.json
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/schema/componentQuestionnaire.json
@@ -157,11 +157,12 @@
"MemoryRAM": {
"type": "string",
"enum": [
+ "1 GB",
"2 GB",
"4 GB",
"8 GB"
],
- "default": "2 GB"
+ "default": "1 GB"
}
},
"additionalProperties": false
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/validComponent.json b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/validComponent.json
index 4e9e9aa6c0..316d8c5bed 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/validComponent.json
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/quesionnaire/validComponent.json
@@ -6,9 +6,6 @@
"drivers": ",Lz-m3R7iwRREmjBA3Ss6b0K8YBcH4SS66UJSG8OGTlaMs6Be"
},
"image": {
- "ephemeralDiskSizePerVM": 8,
- "format": "iso",
- "bootDiskSizePerVM": 100,
"providedBy": "Vendor"
},
"dnsConfiguration": "dolore adipisicing proident aute amet",
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/validation/zips/various/vesTest-yml_only.zip b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/validation/zips/various/vesTest-yml_only.zip
new file mode 100644
index 0000000000..8522252232
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/validation/zips/various/vesTest-yml_only.zip
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager/zips/invalid_ves_file.zip b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager/zips/invalid_ves_file.zip
new file mode 100644
index 0000000000..d96a5b6e16
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager/zips/invalid_ves_file.zip
Binary files differ
diff --git a/openecomp-be/backend/pom.xml b/openecomp-be/backend/pom.xml
index f37d11bdff..6875769929 100644
--- a/openecomp-be/backend/pom.xml
+++ b/openecomp-be/backend/pom.xml
@@ -22,6 +22,7 @@
<module>openecomp-sdc-action-manager</module>
<module>openecomp-sdc-application-config-manager</module>
<module>openecomp-sdc-activity-log-manager</module>
+ <module>openecomp-sdc-healthcheck-manager</module>
</modules>
diff --git a/openecomp-be/backend/pom.xml.versionsBackup b/openecomp-be/backend/pom.xml.versionsBackup
new file mode 100644
index 0000000000..15ac71b64d
--- /dev/null
+++ b/openecomp-be/backend/pom.xml.versionsBackup
@@ -0,0 +1,26 @@
+<?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>
+ <artifactId>openecomp-sdc</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>backend</artifactId>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>openecomp-sdc-vendor-license-manager</module>
+ <module>openecomp-sdc-vendor-software-product-manager</module>
+ <module>openecomp-sdc-validation-manager</module>
+ <module>openecomp-sdc-action-manager</module>
+ <module>openecomp-sdc-application-config-manager</module>
+ </modules>
+
+
+</project>
diff --git a/openecomp-be/configuration/pom.xml.versionsBackup b/openecomp-be/configuration/pom.xml.versionsBackup
new file mode 100644
index 0000000000..a627e11af3
--- /dev/null
+++ b/openecomp-be/configuration/pom.xml.versionsBackup
@@ -0,0 +1,17 @@
+<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-configuration</artifactId>
+ <name>openecomp-sdc-configuration</name>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-common-lib/pom.xml b/openecomp-be/lib/openecomp-common-lib/pom.xml
index c742056774..0ebbf0632d 100644
--- a/openecomp-be/lib/openecomp-common-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-common-lib/pom.xml
@@ -34,6 +34,21 @@
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
</dependencies>
</project>
diff --git a/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..e2333b5ae3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup
@@ -0,0 +1,44 @@
+<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.core</groupId>
+ <name>openecomp-common-lib</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>2.0-m10</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <artifactId>openecomp-common-lib</artifactId>
+
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
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 f850afbab8..9fff4bd749 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
@@ -32,6 +32,9 @@ public enum Messages {
ZIP_NOT_EXIST("Zip file doesn't exist"),
ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"),
+ VES_ZIP_SHOULD_CONTAIN_YML_ONLY(
+ "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML files" +
+ " (using .yaml/.yml extensions)"),
MANIFEST_NOT_EXIST("Manifest doesn't exist"),
FILE_TYPE_NOT_LEGAL("File type not legal as data for other file"),
MODULE_IN_MANIFEST_NO_YAML("Module '%s', has no yaml file reference"),
@@ -47,6 +50,10 @@ public enum Messages {
CANDIDATE_PROCESS_FAILED("Candidate zip file process failed"),
FOUND_UNASSIGNED_FILES("cannot process zip since it has unassigned files"),
+ /* Monitor uploads related errors*/
+ ILLEGAL_MONITORING_ARTIFACT_TYPE("Illegal monitoring artifact type for component id %s, vsp id " +
+ "%s"),
+
/* manifest errors*/
MISSING_FILE_IN_ZIP("Missing file in zip"),
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 8ffddc48d7..07322c626b 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
@@ -21,37 +21,44 @@
package org.openecomp.sdc.common.utils;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.io.FilenameUtils;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
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.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorDescription;
-import org.openecomp.sdc.common.errors.Messages;
import org.slf4j.MDC;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class CommonUtil {
- public static String getMethodName() {
- return Thread.currentThread().getStackTrace()[2].getMethodName();
+ public static FileContentHandler validateAndUploadFileContent(byte[] uploadedFileData)
+ throws IOException {
+ return getFileContentMapFromOrchestrationCandidateZipAndValidateNoFolders(uploadedFileData);
}
- public static FileContentHandler loadUploadFileContent(byte[] uploadedFileData)
- throws IOException {
- return getFileContentMapFromOrchestrationCandidateZip(uploadedFileData);
- }
-
- public static FileContentHandler getFileContentMapFromOrchestrationCandidateZip(byte[] uploadFileData)
- throws IOException {
+ /**
+ * Gets files out of the zip AND validates zip is flat (no folders)
+ *
+ * @param uploadFileData zip file
+ * @return FileContentHandler if input is valid and has no folders
+ */
+ private static FileContentHandler getFileContentMapFromOrchestrationCandidateZipAndValidateNoFolders(
+ byte[] uploadFileData)
+ throws IOException {
ZipEntry zipEntry;
List<String> folderList = new ArrayList<>();
FileContentHandler mapFileContent = new FileContentHandler();
@@ -73,22 +80,25 @@ public class CommonUtil {
} else {
mapFileContent.addFile(currentEntryName, fileByteContent);
}
-
}
} catch (RuntimeException exception) {
throw new IOException(exception);
}
+ validateNoFolders(folderList);
+
+ return mapFileContent;
+ }
+
+ private static void validateNoFolders(List<String> folderList) {
if (CollectionUtils.isNotEmpty(folderList)) {
MDC.put(LoggerConstants.ERROR_DESCRIPTION, LoggerErrorDescription.INVALID_ZIP);
throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage(Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage())
- .withId(Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage())
- .withCategory(ErrorCategory.APPLICATION).build());
+ .withMessage(Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage())
+ .withId(Messages.ZIP_SHOULD_NOT_CONTAIN_FOLDERS.getErrorMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
}
-
- return mapFileContent;
}
private static int lastIndexFileSeparatorIndex(String filePath) {
@@ -103,4 +113,19 @@ public class CommonUtil {
// if we've reached to the start of the string and didn't find file separator - return -1
return -1;
}
+
+ public static boolean validateFilesExtensions(Set<String> allowedExtensions, FileContentHandler
+ files) {
+ for (String fileName : files.getFileList()) {
+ if (!allowedExtensions.contains(FilenameUtils.getExtension(fileName))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static boolean validateAllFilesYml(FileContentHandler files) {
+ Set<String> allowedExtensions = new HashSet<>(Arrays.asList("yml", "yaml"));
+ return validateFilesExtensions(allowedExtensions, files);
+ }
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..7d6cd8f980
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup
@@ -0,0 +1,36 @@
+<?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.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency-->
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-core-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..be88b2799a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup
@@ -0,0 +1,35 @@
+<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>
+
+ <name>openecomp-facade-api</name>
+ <artifactId>openecomp-facade-api</artifactId>
+ <groupId>org.openecomp.core</groupId>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../..</relativePath>
+ </parent>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..72ce7fab94
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup
@@ -0,0 +1,41 @@
+<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-facade-core</artifactId>
+ <name>openecomp-facade-core</name>
+ <groupId>org.openecomp.core</groupId>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../..</relativePath>
+ </parent>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..c4d0d1faf0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup
@@ -0,0 +1,34 @@
+<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>
+
+ <name>openecomp-facade-lib</name>
+ <artifactId>openecomp-facade-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-core-lib</artifactId>
+ <groupId>org.openecomp.core</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-facade-api</module>
+ <module>openecomp-facade-core</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..288274d728
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup
@@ -0,0 +1,45 @@
+<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>
+
+ <name>openecomp-nosqldb-api</name>
+ <artifactId>openecomp-nosqldb-api</artifactId>
+ <groupId>org.openecomp.core</groupId>
+
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.datastax.cassandra</groupId>
+ <artifactId>cassandra-driver-core</artifactId>
+ <version>${datasatx.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.datastax.cassandra</groupId>
+ <artifactId>cassandra-driver-mapping</artifactId>
+ <version>${datasatx.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/nosqldb/api/NoSqlDb.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/nosqldb/api/NoSqlDb.java
index 6b13ee71e4..56d15a88d4 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/nosqldb/api/NoSqlDb.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/nosqldb/api/NoSqlDb.java
@@ -34,4 +34,6 @@ public interface NoSqlDb {
ResultSet execute(String statementName, Object... values);
MappingManager getMappingManager();
+
+ String getVersion();
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
index 8270e1bf79..fdbb1ec2a4 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
@@ -28,6 +28,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-nosqldb-api</artifactId>
<version>${project.version}</version>
@@ -54,7 +59,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
</dependencies>
</project>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..fa859a0db8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup
@@ -0,0 +1,46 @@
+<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>
+
+ <name>openecomp-nosqldb-core</name>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <groupId>org.openecomp.core</groupId>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java
index bcac5f8d79..4ecc26879a 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraNoSqlDbImpl.java
@@ -20,10 +20,7 @@
package org.openecomp.core.nosqldb.impl.cassandra;
-import com.datastax.driver.core.BoundStatement;
-import com.datastax.driver.core.PreparedStatement;
-import com.datastax.driver.core.ResultSet;
-import com.datastax.driver.core.Session;
+import com.datastax.driver.core.*;
import com.datastax.driver.mapping.MappingManager;
import org.openecomp.core.nosqldb.api.NoSqlDb;
import org.openecomp.core.nosqldb.util.CassandraUtils;
@@ -32,73 +29,87 @@ import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
-class CassandraNoSqlDbImpl implements NoSqlDb {
+import java.util.Set;
+import java.util.stream.Collectors;
- private final Session session;
- private final String keySpace;
- private final MappingManager mappingManager;
+class CassandraNoSqlDbImpl implements NoSqlDb {
+ private final Session session;
+ private final String keySpace;
+ private final MappingManager mappingManager;
- public CassandraNoSqlDbImpl(Session session) {
- this.session = session;
- this.keySpace = this.session.getLoggedKeyspace();
- this.mappingManager = new MappingManager(this.session);
- }
+ public CassandraNoSqlDbImpl(Session session) {
+ this.session = session;
+ this.keySpace = this.session.getLoggedKeyspace();
+ this.mappingManager = new MappingManager(this.session);
- @Override
- public void insert(String tableName, String[] colNames, Object[] values) {
- if (colNames.length != values.length) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage(
- "number of colmuns[" + colNames.length + "] is not equal to the number of values["
- + values.length + "].").withId("E0005").withCategory(ErrorCategory.APPLICATION)
- .build());
}
- StringBuilder sb = new StringBuilder();
- sb.append("insert into ")
- .append(tableName)
- .append(" (")
- .append(CommonMethods.arrayToCommaSeparatedString(colNames))
- .append(") values (")
- .append(CommonMethods.duplicateStringWithDelimiter("?", ',', values.length))
- .append(")");
- System.out.println(sb.toString());
- PreparedStatement prepared = session.prepare(sb.toString());
-
- BoundStatement bound;
- bound = prepared.bind(values);
- session.execute(bound);
-
- }
-
- @Override
- public ResultSet execute(String statement) {
- return session.execute(statement);
- }
-
- @Override
- public ResultSet execute(String statementName, Object... values) {
-
- String statement = CassandraUtils.getStatement(statementName);
- if (statement == null) {
- statement = statementName;
+ @Override
+ public void insert(String tableName, String[] colNames, Object[] values) {
+ if (colNames.length != values.length) {
+ throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage(
+ "number of colmuns[" + colNames.length + "] is not equal to the number of values["
+ + values.length + "].").withId("E0005").withCategory(ErrorCategory.APPLICATION)
+ .build());
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ")
+ .append(tableName)
+ .append(" (")
+ .append(CommonMethods.arrayToCommaSeparatedString(colNames))
+ .append(") values (")
+ .append(CommonMethods.duplicateStringWithDelimiter("?", ',', values.length))
+ .append(")");
+ System.out.println(sb.toString());
+ PreparedStatement prepared = session.prepare(sb.toString());
+
+ BoundStatement bound;
+ bound = prepared.bind(values);
+ session.execute(bound);
+
}
- if (values != null) {
- PreparedStatement prepared = session.prepare(statement);
-
- BoundStatement bound;
- bound = prepared.bind(values);
- return session.execute(bound);
- } else {
- return session.execute(statement);
+
+ @Override
+ public ResultSet execute(String statement) {
+ return session.execute(statement);
}
- }
+ @Override
+ public ResultSet execute(String statementName, Object... values) {
+
+ String statement = CassandraUtils.getStatement(statementName);
+ if (statement == null) {
+ statement = statementName;
+ }
+ if (values != null) {
+ PreparedStatement prepared = session.prepare(statement);
- @Override
- public MappingManager getMappingManager() {
- return mappingManager;
- }
+ BoundStatement bound;
+ bound = prepared.bind(values);
+ return session.execute(bound);
+ } else {
+ return session.execute(statement);
+ }
+ }
+
+ @Override
+ public MappingManager getMappingManager() {
+ return mappingManager;
+ }
+
+ @Override
+ public String getVersion() {
+ try {
+ Set<Host> allHosts = this.session.getCluster().getMetadata().getAllHosts();
+ Set<String> versions = allHosts.stream().map(host -> host.getCassandraVersion().toString())
+ .collect(Collectors.toSet());
+ return versions.stream().collect(Collectors.joining(","));
+ } catch (Exception e){
+ return "Failed to retrieve version";
+ }
+ }
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java
index 4863e3df0f..7b9b2ca84f 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/impl/cassandra/CassandraSessionFactory.java
@@ -36,6 +36,7 @@ import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
+import java.util.Objects;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;
@@ -113,8 +114,9 @@ public class CassandraSessionFactory {
} catch (Exception exception) {
exception.printStackTrace();
} finally {
- tsf.close();
-
+ if (tsf != null) {
+ tsf.close();
+ }
}
return ctx;
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/ConfigurationManager.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/ConfigurationManager.java
index 44623ff91b..c00db41ed9 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/ConfigurationManager.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/main/java/org/openecomp/core/nosqldb/util/ConfigurationManager.java
@@ -20,7 +20,7 @@
package org.openecomp.core.nosqldb.util;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/test/java/org/openecomp/core/utilities/Yaml/YamlUtilTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/test/java/org/openecomp/core/utilities/Yaml/YamlUtilTest.java
index 1e3305ef18..578f3e4c4a 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/test/java/org/openecomp/core/utilities/Yaml/YamlUtilTest.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/src/test/java/org/openecomp/core/utilities/Yaml/YamlUtilTest.java
@@ -22,7 +22,7 @@ package org.openecomp.core.utilities.Yaml;
import org.junit.Before;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import testobjects.yaml.YamlFile;
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..3a4bfd4ba0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup
@@ -0,0 +1,35 @@
+<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>
+
+ <name>openecomp-nosqldb-lib</name>
+ <artifactId>openecomp-nosqldb-lib</artifactId>
+ <groupId>org.openecomp.core</groupId>
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <modules>
+ <module>openecomp-nosqldb-api</module>
+ <module>openecomp-nosqldb-core</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
index f7f6ea65f6..76d6ff6b74 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
@@ -14,6 +14,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
@@ -42,7 +47,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..1e448f5a61
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup
@@ -0,0 +1,83 @@
+<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>
+
+ <name>openecomp-utilities-lib</name>
+ <artifactId>openecomp-utilities-lib</artifactId>
+
+
+ <parent>
+ <artifactId>openecomp-core-lib</artifactId>
+ <groupId>org.openecomp.core</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>1.17</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons.codec.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>1.9.13</version>
+ </dependency>
+ <dependency>
+ <groupId>org.everit.json</groupId>
+ <artifactId>org.everit.json.schema</artifactId>
+ <version>1.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.3.1</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java
index c828505932..8de222e688 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileContentHandler.java
@@ -62,6 +62,10 @@ public class FileContentHandler {
return files;
}
+ public void setFiles(Map<String, byte[]> files) {
+ this.files = files;
+ }
+
public void setFiles(FileContentHandler extFiles) {
extFiles.getFileList().stream()
.forEach(fileName -> this.addFile(fileName, extFiles.getFileContent(fileName)));
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 664ccb68c6..08d9bd8a41 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,14 +20,14 @@
package org.openecomp.core.utilities.file;
-import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.utilities.yaml.YamlUtil;
-import org.openecomp.sdc.logging.types.LoggerConstants;
-import org.openecomp.sdc.logging.types.LoggerErrorDescription;
-import org.slf4j.MDC;
+import org.openecomp.sdc.tosca.services.YamlUtil;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/yaml/YamlUtil.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/yaml/YamlUtil.java
deleted file mode 100644
index d38bf484e4..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/yaml/YamlUtil.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.core.utilities.yaml;
-
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.core.utilities.CommonMethods;
-import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.TypeDescription;
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.constructor.Constructor;
-import org.yaml.snakeyaml.introspector.BeanAccess;
-import org.yaml.snakeyaml.introspector.Property;
-import org.yaml.snakeyaml.introspector.PropertyUtils;
-import org.yaml.snakeyaml.nodes.MappingNode;
-import org.yaml.snakeyaml.nodes.NodeTuple;
-import org.yaml.snakeyaml.nodes.Tag;
-import org.yaml.snakeyaml.parser.ParserException;
-import org.yaml.snakeyaml.representer.Representer;
-
-import java.beans.IntrospectionException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.AbstractMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-
-/**
- * The type Yaml util.
- */
-public class YamlUtil {
-
- private static Logger logger = (Logger) LoggerFactory.getLogger(YamlUtil.class);
-
- /**
- * Yaml to object t.
- *
- * @param <T> the type parameter
- * @param yamlContent the yaml content
- * @param typClass the t class
- * @return the t
- */
- public <T> T yamlToObject(String yamlContent, Class<T> typClass) {
- Constructor constructor = getConstructor(typClass);
- constructor.setPropertyUtils(getPropertyUtils());
- TypeDescription yamlFileDescription = new TypeDescription(typClass);
- constructor.addTypeDescription(yamlFileDescription);
- Yaml yaml = new Yaml(constructor);
- T yamlObj = (T) yaml.load(yamlContent);
- yamlObj.toString();
- return yamlObj;
- }
-
- /**
- * Yaml to object t.
- *
- * @param <T> the type parameter
- * @param yamlContent the yaml content
- * @param typClass the t class
- * @return the t
- */
- public <T> T yamlToObject(InputStream yamlContent, Class<T> typClass) {
- try {
- Constructor constructor = getConstructor(typClass);
- constructor.setPropertyUtils(getPropertyUtils());
- TypeDescription yamlFileDescription = new TypeDescription(typClass);
- constructor.addTypeDescription(yamlFileDescription);
- Yaml yaml = new Yaml(constructor);
- T yamlObj = (T) yaml.load(yamlContent);
- if (yamlObj != null) {
- yamlObj.toString();
- return yamlObj;
- } else {
- throw new RuntimeException();
- }
- } catch (Exception exception) {
- logger.error("Error will trying to convert yaml to object:" + exception.getMessage());
- throw new RuntimeException(exception);
- } finally {
- try {
- if (yamlContent != null) {
- yamlContent.close();
- }
- } catch (IOException ignore) {
- //do nothing
- }
- }
- }
-
-
- /**
- * Gets constructor.
- *
- * @param <T> the type parameter
- * @param typClass the t class
- * @return the constructor
- */
- public <T> Constructor getConstructor(Class<T> typClass) {
- return new StrictMapAppenderConstructor(typClass);
- }
-
- /**
- * Gets property utils.
- *
- * @return the property utils
- */
- protected PropertyUtils getPropertyUtils() {
- return new MyPropertyUtils();
- }
-
-
- /**
- * Yaml to map map.
- *
- * @param yamlContent the yaml content
- * @return the map
- */
- public Map<String, LinkedHashMap<String, Object>> yamlToMap(InputStream yamlContent) {
- Yaml yaml = new Yaml();
- Map<String, LinkedHashMap<String, Object>> yamlData =
- (Map<String, LinkedHashMap<String, Object>>) yaml.load(yamlContent);
- return yamlData;
- }
-
- /**
- * Object to yaml string.
- *
- * @param <T> the type parameter
- * @param obj the obj
- * @return the string
- */
- public <T> String objectToYaml(Object obj) {
- DumperOptions options = new DumperOptions();
- options.setPrettyFlow(true);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Representer representer = new CustomRepresenter();
- representer.addClassTag(obj.getClass(), Tag.MAP);
- representer.setPropertyUtils(new MyPropertyUtils());
-
- Yaml yaml = new Yaml(representer, options);
- return yaml.dump(obj);
- }
-
- /**
- * Load yaml file is input stream.
- *
- * @param yamlFullFileName the yaml full file name
- * @return the input stream
- */
- public InputStream loadYamlFileIs(String yamlFullFileName) {
- return CommonMethods.class.getResourceAsStream(yamlFullFileName);
- }
-
- /**
- * Is yaml file content valid boolean.
- *
- * @param yamlFullFileName the yaml full file name
- * @return the boolean
- */
- public boolean isYamlFileContentValid(String yamlFullFileName) {
- Yaml yaml = new Yaml();
- try {
- Object loadResult = yaml.load(yamlFullFileName);
- if (loadResult == null) {
- return false;
- }
- return true;
- } catch (Exception exception) {
- return false;
- }
- }
-
-
- private class CustomRepresenter extends Representer {
- @Override
- protected MappingNode representJavaBean(Set<Property> properties, Object javaBean) {
- //remove the bean type from the output yaml (!! ...)
- if (!classTags.containsKey(javaBean.getClass())) {
- addClassTag(javaBean.getClass(), Tag.MAP);
- }
-
- return super.representJavaBean(properties, javaBean);
- }
-
- @Override
- protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
- Object propertyValue, Tag customTag) {
- if (propertyValue == null) {
- return null;
- } else {
- NodeTuple defaultNode =
- super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
-
- return property.getName().equals("_default")
- ? new NodeTuple(representData("default"), defaultNode.getValueNode())
- : defaultNode;
- }
- }
- }
-
-
- /**
- * The type My property utils.
- */
- public class MyPropertyUtils extends PropertyUtils {
- //Unsorted properties
- @Override
- protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bnAccess)
- throws IntrospectionException {
- return new LinkedHashSet<Property>(getPropertiesMap(type,
- BeanAccess.FIELD).values());
- }
-
- @Override
- public Property getProperty(Class<?> type, String name) throws IntrospectionException {
- if (name.equals("default")) {
- name = "_default";
- }
- return super.getProperty(type, name);
- }
-
- }
-
- /**
- * The type Strict map appender constructor.
- */
- protected class StrictMapAppenderConstructor extends Constructor {
-
- /**
- * Instantiates a new Strict map appender constructor.
- *
- * @param theRoot the the root
- */
- public StrictMapAppenderConstructor(Class<?> theRoot) {
- super(theRoot);
- }
-
- @Override
- protected Map<Object, Object> createDefaultMap() {
- final Map<Object, Object> delegate = super.createDefaultMap();
- return new AbstractMap<Object, Object>() {
- @Override
- public Object put(Object key, Object value) {
- if (delegate.containsKey(key)) {
- throw new IllegalStateException("duplicate key: " + key);
- }
- return delegate.put(key, value);
- }
-
- @Override
- public Set<Entry<Object, Object>> entrySet() {
- return delegate.entrySet();
- }
- };
- }
-
- @Override
- protected Map<Object, Object> constructMapping(MappingNode node) {
- try {
- return super.constructMapping(node);
- } catch (IllegalStateException exception) {
- throw new ParserException("while parsing MappingNode",
- node.getStartMark(), exception.getMessage(),
- node.getEndMark());
- }
- }
- }
-}
-
-
-
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/pom.xml
index 08a09273c6..bc05097e07 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/pom.xml
@@ -31,14 +31,14 @@
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-adaptor-inbound-api</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
<artifactId>openecomp-sdc-datatypes-lib</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java
index 1495ed27a8..f4e8688d63 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-api/src/main/java/org/openecomp/core/zusammen/api/ZusammenAdaptor.java
@@ -3,6 +3,7 @@ package org.openecomp.core.zusammen.api;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.item.ElementContext;
@@ -73,4 +74,8 @@ public interface ZusammenAdaptor {
Optional<Element> saveElement(SessionContext context, ElementContext elementContext,
ZusammenElement element, String message);
+
+ Collection<HealthInfo> checkHealth(SessionContext context);
+
+ String getVersion(SessionContext sessionContext);
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml
index c1870d8c64..4227f41374 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/pom.xml
@@ -21,17 +21,17 @@
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-commons-utils</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-adaptor-inbound-api</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-adaptor-inbound-impl</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
@@ -53,7 +53,7 @@
<dependency>
<groupId>com.amdocs.zusammen.plugin</groupId>
<artifactId>zusammen-search-index-empty-plugin</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
index f746d706e1..6381b2efd2 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
@@ -3,6 +3,7 @@ package org.openecomp.core.zusammen.db;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.item.ElementContext;
@@ -48,4 +49,8 @@ public interface ZusammenConnector {
Optional<Element> saveElement(SessionContext context, ElementContext elementContext,
ZusammenElement element, String message);
+
+ Collection<HealthInfo> checkHealth(SessionContext sessionContext);
+
+ String getVersion(SessionContext sessionContext);
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorFactoryImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorFactoryImpl.java
index f3916521dd..e6f9380c2b 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorFactoryImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorFactoryImpl.java
@@ -20,6 +20,7 @@
package org.openecomp.core.zusammen.db.impl;
+import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ElementAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemVersionAdaptorFactory;
@@ -30,7 +31,7 @@ public class ZusammenConnectorFactoryImpl extends ZusammenConnectorFactory {
private static final ZusammenConnector INSTANCE =
new ZusammenConnectorImpl(ItemAdaptorFactory.getInstance(),
ItemVersionAdaptorFactory.getInstance(),
- ElementAdaptorFactory.getInstance());
+ ElementAdaptorFactory.getInstance(), HealthAdaptorFactory.getInstance());
@Override
public ZusammenConnector createInterface() {
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
index 8aa8e129df..fa08ba49a8 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
@@ -3,9 +3,11 @@ package org.openecomp.core.zusammen.db.impl;
import com.amdocs.zusammen.adaptor.inbound.api.item.ElementAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemVersionAdaptorFactory;
+import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.Space;
@@ -33,18 +35,30 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
private ItemAdaptorFactory itemAdaptorFactory;
private ItemVersionAdaptorFactory versionAdaptorFactory;
private ElementAdaptorFactory elementAdaptorFactory;
-
+ private HealthAdaptorFactory healthAdaptorFactory;
public ZusammenConnectorImpl(
ItemAdaptorFactory itemAdaptorFactory,
ItemVersionAdaptorFactory versionAdaptorFactory,
- ElementAdaptorFactory elementAdaptorFactory) {
+ ElementAdaptorFactory elementAdaptorFactory,
+ HealthAdaptorFactory healthAdaptorFactory) {
this.itemAdaptorFactory = itemAdaptorFactory;
this.versionAdaptorFactory = versionAdaptorFactory;
this.elementAdaptorFactory = elementAdaptorFactory;
+ this.healthAdaptorFactory = healthAdaptorFactory;
CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
}
@Override
+ public Collection<HealthInfo> checkHealth(SessionContext sessionContext) {
+ return healthAdaptorFactory.createInterface(sessionContext).getHealthStatus(sessionContext);
+ }
+
+ @Override
+ public String getVersion(SessionContext sessionContext) {
+ return healthAdaptorFactory.createInterface(sessionContext).getVersion();
+ }
+
+ @Override
public Collection<Item> listItems(SessionContext context) {
Response<Collection<Item>> response =
itemAdaptorFactory.createInterface(context).list(context);
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java
index ad4839bd00..41ce0283a1 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java
@@ -3,14 +3,10 @@ package org.openecomp.core.zusammen.impl;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.item.Info;
-import com.amdocs.zusammen.datatypes.item.Item;
-import com.amdocs.zusammen.datatypes.item.ItemVersion;
-import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.item.*;
import com.amdocs.zusammen.datatypes.itemversion.Tag;
import com.amdocs.zusammen.datatypes.response.Response;
import com.amdocs.zusammen.datatypes.response.ReturnCode;
@@ -219,10 +215,20 @@ public class ZusammenAdaptorImpl implements ZusammenAdaptor {
connector.updateItem(context, itemId, info);
}
+
+ @Override
+ public Collection<HealthInfo> checkHealth(SessionContext context) {
+ return connector.checkHealth(context);
+ }
+
private static void sortItemVersionListByModificationTimeDescOrder(
List<ItemVersion> itemVersions) {
itemVersions.sort((o1, o2) -> ((Integer)o2.getId().getValue().length())
.compareTo( (o1.getId().getValue().length())));
}
+ @Override
+ public String getVersion(SessionContext sessionContext) {
+ return connector.getVersion(sessionContext);
+ }
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/pom.xml
index 57f92f1b09..b3bd790bd5 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/pom.xml
@@ -15,23 +15,23 @@
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-sdk</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-commons-db-api</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>com.amdocs.zusammen</groupId>
<artifactId>zusammen-commons-db-impl</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.amdocs.zusammen.plugin</groupId>
<artifactId>zusammen-state-store-cassandra-plugin</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
</dependencies>
</project>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
index 93ee2d058b..76b0a900c1 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
@@ -78,6 +78,10 @@ public class ElementCollaborationStore {
ZusammenPluginUtil.getElementEntity(element));
}
+ public boolean checkHealth(SessionContext sessionContext){
+ return getElementRepository(sessionContext).checkHealth(sessionContext);
+ }
+
private void deleteElementHierarchy(ElementRepository elementRepository, SessionContext context,
ElementEntityContext elementEntityContext,
ElementEntity elementEntity) {
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/ElementRepository.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/ElementRepository.java
index 468b6f0a28..967814c4d8 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/ElementRepository.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/ElementRepository.java
@@ -22,4 +22,6 @@ public interface ElementRepository {
void createNamespace(SessionContext context, ElementEntityContext elementContext,
ElementEntity element);
+
+ boolean checkHealth(SessionContext context);
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/impl/CassandraElementRepository.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/impl/CassandraElementRepository.java
index 12fd2dabba..c19e8799d1 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/impl/CassandraElementRepository.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/dao/impl/CassandraElementRepository.java
@@ -98,6 +98,12 @@ public class CassandraElementRepository implements ElementRepository {
element.getNamespace().toString());
}
+ @Override
+ public boolean checkHealth(SessionContext context) {
+ ResultSet resultSet = getVersionElementsAccessor(context).checkHealth();
+ return resultSet.getColumnDefinitions().contains("element_ids");
+ }
+
private String getVersionId(ElementEntityContext elementContext) {
return elementContext.getChangeRef() == null
? elementContext.getVersionId().toString()
@@ -350,6 +356,9 @@ CREATE TABLE IF NOT EXISTS element (
@Query("SELECT element_ids FROM version_elements WHERE space=? AND item_id=? AND version_id=?")
ResultSet get(String space, String itemId, String versionId);
+
+ @Query("SELECT element_ids FROM version_elements LIMIT 1")
+ ResultSet checkHealth();
}
private static final class VersionElementsField {
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/main/CassandraCollaborationStorePluginImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/main/CassandraCollaborationStorePluginImpl.java
index 4bf9a8d25e..90fd3366fe 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/main/CassandraCollaborationStorePluginImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/main/CassandraCollaborationStorePluginImpl.java
@@ -17,6 +17,7 @@
package org.openecomp.core.zusammen.plugin.main;
import com.amdocs.zusammen.commons.health.data.HealthInfo;
+import com.amdocs.zusammen.commons.health.data.HealthStatus;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.Namespace;
import com.amdocs.zusammen.datatypes.SessionContext;
@@ -155,6 +156,15 @@ public class CassandraCollaborationStorePluginImpl implements CollaborationStore
@Override
public Response<HealthInfo> checkHealth(SessionContext sessionContext) throws ZusammenException {
- return null;
+
+ boolean health = elementCollaborationStore.checkHealth(sessionContext);
+ HealthInfo healthInfo ;
+ if (health){
+ healthInfo = new HealthInfo("Collaboration", HealthStatus.UP,"");
+ } else {
+ healthInfo = new HealthInfo("Collaboration", HealthStatus.DOWN,"No Schema Available");
+ }
+ return new Response<HealthInfo>(healthInfo);
+
}
} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d02ce28af6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup
@@ -0,0 +1,22 @@
+<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.core</groupId>
+ <name>openecomp-core-lib</name>
+ <artifactId>openecomp-core-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>/openecomp-facade-lib</module>
+ <module>/openecomp-nosqldb-lib</module>
+ <module>/openecomp-utilities-lib</module>
+ <module>/openecomp-config-lib</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..c9d100dd50
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup
@@ -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.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-healing-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..c48c3259e1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup
@@ -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</groupId>
+ <artifactId>openecomp-sdc-healing-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-healing-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json
index fa79627575..105dbe5875 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json
@@ -3,6 +3,9 @@
"QUESTIONNAIRE_HEALER" : "org.openecomp.sdc.healing.healers.VspQuestionnaireHealer",
"COMPOSITION_DATA_HEALER" : "org.openecomp.sdc.healing.healers.CompositionDataHealer",
"SUB_ENTITIES_HEALER" : "org.openecomp.sdc.healing.healers.SubEntitiesQuestionnaireHealer",
+ "ONBOARDING_METHOD_HEALER" : "org.openecomp.sdc.healing.healers.VspOnboardingMethodHealer",
+ "NIC_DATA_HEALER" : "org.openecomp.sdc.healing.healers.NicDataHealer",
+ "COMPONENT_QUESTIONNAIRE_HEALER" : "org.openecomp.sdc.healing.healers.ComponentQuestionnaireHealer",
"HEAT_TOSCA_TRANSLATION_HEALER" : "org.openecomp.sdc.healing.healers.HeatToToscaTranslationHealer",
"VLM_VERSION_HEALER" : "org.openecomp.sdc.healing.healers.VlmVersionHealer"
} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..c5f936366b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup
@@ -0,0 +1,36 @@
+<?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-healing-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-healing-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-healing-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
new file mode 100644
index 0000000000..c759d21f01
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
@@ -0,0 +1,78 @@
+package org.openecomp.sdc.healing.healers;
+
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+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.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+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.versioning.dao.types.Version;
+
+import java.util.Collection;
+import java.util.Map;
+
+
+public class ComponentQuestionnaireHealer implements Healer {
+ /*private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory.getInstance().createInterface();*/
+
+ private static final ComponentDao componentDao =
+ ComponentDaoFactory.getInstance().createInterface();
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ public ComponentQuestionnaireHealer(){
+
+ }
+ @Override
+ public Object heal(Map<String, Object> healingParams) throws Exception {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
+ Version version = (Version) healingParams.get(SdcCommon.VERSION);
+ String user = (String) healingParams.get(SdcCommon.USER);
+ Collection<ComponentEntity> componentEntities =
+ componentDao.list(new ComponentEntity(vspId, version, null));
+ componentEntities.forEach(componentEntity -> {
+ /*String questionnaire=vendorSoftwareProductDao.getComponent(vspId, version, componentEntity
+ .getId()).getQuestionnaireData();*/
+ String questionnaire = componentDao.getQuestionnaireData(vspId, version, componentEntity
+ .getId()).getQuestionnaireData();
+ if (questionnaire != null) {
+ JsonParser jsonParser = new JsonParser();
+ JsonObject json = (JsonObject) jsonParser.parse(questionnaire);
+ if (json.getAsJsonObject("compute") != null && json.getAsJsonObject("compute")
+ .getAsJsonObject("vmSizing") != null) {
+ json.getAsJsonObject("compute").remove("vmSizing");
+ }
+
+ if (json.getAsJsonObject("compute") != null && json.getAsJsonObject("compute")
+ .getAsJsonObject("numOfVMs") != null ) {
+ if (json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").
+ get("CpuOverSubscriptionRatio") != null ) {
+ json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").remove
+ ("CpuOverSubscriptionRatio");
+ }
+ if (json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").
+ get("MemoryRAM") != null ) {
+ json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").remove("MemoryRAM");
+ }
+ }
+
+ if (json.getAsJsonObject("general") != null && json.getAsJsonObject("general")
+ .getAsJsonObject("image") != null && json.getAsJsonObject("general").getAsJsonObject
+ ("image").get("format") != null) {
+ json.getAsJsonObject("general").getAsJsonObject("image").remove("format");
+ }
+ String questionnaireData = json.toString();
+ /*vendorSoftwareProductDao.updateComponentQuestionnaire(vspId, version, componentEntity
+ .getId(),questionnaireData);*/
+ componentDao.updateQuestionnaireData(vspId, version, componentEntity.getId(),
+ questionnaireData);
+ }
+ });
+ return componentEntities;
+ }
+}
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 656f7af26f..6fdf14451f 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
@@ -7,9 +7,9 @@
* 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.
@@ -35,6 +35,12 @@ import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
@@ -42,6 +48,9 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.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;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity;
@@ -49,6 +58,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorF
import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -70,6 +80,10 @@ public class CompositionDataHealer implements Healer {
private static ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface();
private static NicDao nicDao = NicDaoFactory.getInstance().createInterface();
private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface();
+ private static ComputeDao computeDao = ComputeDaoFactory.getInstance().createInterface();
+ private static DeploymentFlavorDao deloymentFlavorDao = DeploymentFlavorDaoFactory.getInstance()
+ .createInterface();
+ private static ImageDao imageDao = ImageDaoFactory.getInstance().createInterface();
private static final ServiceModelDao<ToscaServiceModel, ServiceElement> serviceModelDao =
ServiceModelDaoFactory.getInstance().createInterface();
@@ -97,24 +111,93 @@ public class CompositionDataHealer implements Healer {
networkDao.list(new NetworkEntity(vspId, version, null));
Optional<ToscaServiceModel> serviceModelForHealing = getServiceModelForHealing(vspId, version);
-
- if (!doesVspNeedCompositionDataHealing(componentEntities, networkEntities,
+ CompositionData compositionData = null;
+ if (!doesVspNeedCompositionDataHealing(vspId, version, componentEntities, networkEntities,
nicEntities)) {
updateComponentsDisplayNames(componentEntities);
- mdcDataDebugMessage.debugExitMessage(null);
- return Optional.empty();
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ //return Optional.empty();
+ } else {
+ if (!serviceModelForHealing.isPresent()) {
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return Optional.empty();
+ }
+ compositionData = healCompositionData(vspId, version, serviceModelForHealing);
}
+ compositionData =
+ getCompositionDataForHealing(vspId, version, serviceModelForHealing.get());
+ HealNfodData(vspId, version, compositionData);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return Optional.of(compositionData);
+ }
+ private boolean doesVspNeedCompositionDataHealing(String vspId, Version version,
+ Collection<ComponentEntity> componentEntities,
+ Collection<NetworkEntity> networkEntities,
+ Collection<NicEntity> nicEntities) {
- if (!serviceModelForHealing.isPresent()) {
- mdcDataDebugMessage.debugExitMessage(null);
- return Optional.empty();
- }
+ return (CollectionUtils.isEmpty(componentEntities) && CollectionUtils.isEmpty(nicEntities) &&
+ CollectionUtils.isEmpty(networkEntities) );
+
+// mdcDataDebugMessage.debugEntryMessage(null, null);
+//
+//// ToscaServiceModel toscaServiceModel;
+//
+// ByteBuffer contentData = uploadData.getContentData();
+// FileContentHandler fileContentHandler = CommonUtil.validateAndUploadFileContent(uploadData
+// .getContentData().array());
+//
+//
+//
+// TranslatorOutput translatorOutput =
+// HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
+// ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
+//
+//// toscaServiceModel = enrichedServiceModelDao.getServiceModel(vspId, version);
+//
+// mdcDataDebugMessage.debugExitMessage(null, null);
+// return toscaServiceModel;
- CompositionData compositionData = healCompositionData(vspId, version, serviceModelForHealing);
+ }
- mdcDataDebugMessage.debugExitMessage(null);
- return Optional.of(compositionData);
+ private void HealNfodData(String vspId, Version version, CompositionData compositionData) {
+ Collection<ComponentEntity> componentEntities;
+ /*componentEntities =
+ vendorSoftwareProductDao.listComponents(vspId, version);*/
+ componentEntities = componentDao.list(new ComponentEntity(vspId, version, null));
+
+ /*Collection<ComputeEntity> computeEntities=vendorSoftwareProductDao.listComputesByVsp(vspId,
+ version);
+ Collection<ImageEntity> imageEntities =vendorSoftwareProductDao.listImagesByVsp(vspId, version);
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities =vendorSoftwareProductDao
+ .listDeploymentFlavors(vspId, version);*/
+
+ Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version);
+ Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version);
+ Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deloymentFlavorDao.list(new
+ DeploymentFlavorEntity(vspId, version, null));
+
+ if (CollectionUtils.isEmpty(computeEntities) && CollectionUtils.isEmpty(imageEntities)) {
+ for (Component component : compositionData.getComponents()) {
+ String componentId = null;
+ for (ComponentEntity componentEntity:componentEntities) {
+ if (componentEntity.getComponentCompositionData().getName().equals(component.getData()
+ .getName())) {
+ componentId = componentEntity.getId();
+ break;
+ }
+ }
+ compositionEntityDataManager.saveComputesFlavorByComponent(vspId,version,component,
+ componentId);
+ compositionEntityDataManager.saveImagesByComponent(vspId,version,component,
+ componentId);
+ }
+
+ }
+
+ if (CollectionUtils.isEmpty(deploymentFlavorEntities)) {
+ compositionEntityDataManager.saveDeploymentFlavors(vspId,version,compositionData);
+ }
}
private CompositionData healCompositionData(String vspId, Version version,
@@ -204,7 +287,7 @@ public class CompositionDataHealer implements Healer {
try {
serviceModelDao.storeServiceModel(vspId, version,
translatorOutput.getToscaServiceModel());
- }catch (Exception e){
+ } catch (Exception e) {
return Optional.empty();
}
@@ -212,14 +295,14 @@ public class CompositionDataHealer implements Healer {
return Optional.of(translatorOutput.getToscaServiceModel());
}
- private TranslatorOutput getTranslatorOutputForHealing(UploadDataEntity uploadData){
+ private TranslatorOutput getTranslatorOutputForHealing(UploadDataEntity uploadData) {
FileContentHandler fileContentHandler;
try {
fileContentHandler =
- CommonUtil.loadUploadFileContent(uploadData.getContentData().array());
+ CommonUtil.validateAndUploadFileContent(uploadData.getContentData().array());
return HeatToToscaUtil.loadAndTranslateTemplateData(fileContentHandler);
- }catch (Exception e){
+ } 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 14fe885d53..e0b7adb6d3 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
@@ -94,7 +94,7 @@ public class FileDataStructureHealer implements Healer {
byte[] byteContentData = uploadData.getContentData().array();
FileContentHandler fileContentHandler;
try{
- fileContentHandler = CommonUtil.loadUploadFileContent(byteContentData);
+ fileContentHandler = CommonUtil.validateAndUploadFileContent(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 fb9dfe7e4f..d5ccd36c95 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
@@ -16,8 +16,6 @@ import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.UploadDataEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -55,7 +53,7 @@ public class HeatToToscaTranslationHealer implements Healer {
FileContentHandler fileContentHandler;
TranslatorOutput translatorOutput;
try {
- fileContentHandler = CommonUtil.loadUploadFileContent(uploadData
+ fileContentHandler = CommonUtil.validateAndUploadFileContent(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/NicDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java
new file mode 100644
index 0000000000..123a943785
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/NicDataHealer.java
@@ -0,0 +1,48 @@
+package org.openecomp.sdc.healing.healers;
+
+
+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.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+import java.util.Map;
+
+public class NicDataHealer implements Healer {
+ /*private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+ VendorSoftwareProductDaoFactory.getInstance().createInterface();*/
+
+ private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface();
+
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ public NicDataHealer(){
+
+ }
+ @Override
+ public Object heal(Map<String, Object> healingParams) throws Exception {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
+ Version version = (Version) healingParams.get(SdcCommon.VERSION);
+ String user = (String) healingParams.get(SdcCommon.USER);
+ Collection<NicEntity> nics = nicDao.listByVsp(vspId, version);
+ for (NicEntity nicEntity : nics) {
+ Nic nic = nicEntity.getNicCompositionData();
+ if (nic != null && nic.getNetworkType()==null) {
+ nic.setNetworkType(NetworkType.Internal);
+ nicEntity.setNicCompositionData(nic);
+ //vendorSoftwareProductDao.updateNic(nicEntity);
+ nicDao.update(nicEntity);
+ }
+ }
+ return nics;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java
new file mode 100644
index 0000000000..5d6050a7f0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VspOnboardingMethodHealer.java
@@ -0,0 +1,46 @@
+package org.openecomp.sdc.healing.healers;
+
+
+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;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+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 =
+ VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ public VspOnboardingMethodHealer(){
+
+ }
+ @Override
+ public Object heal(Map<String, Object> healingParams) throws Exception {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ String onboardingMethod=null;
+ String vspId = (String) healingParams.get(SdcCommon.VSP_ID);
+ Version version = (Version) healingParams.get(SdcCommon.VERSION);
+ VspDetails vendorSoftwareProductInfo =
+ vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
+ vendorSoftwareProductInfo.getOnboardingMethod();
+
+ if(Objects.isNull(vendorSoftwareProductInfo.getOnboardingMethod())) {
+ onboardingMethod="HEAT";
+ vendorSoftwareProductInfo.setOnboardingMethod(onboardingMethod);
+ vendorSoftwareProductInfoDao.update(vendorSoftwareProductInfo);
+ //vendorSoftwareProductDao.updateVendorSoftwareProductInfo(vendorSoftwareProductInfo);
+ }
+ return onboardingMethod;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..02ba7f140b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup
@@ -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.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-healing-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>openecomp-sdc-healing-api</module>
+ <module>openecomp-sdc-healing-core</module>
+ <module>openecomp-sdc-healing-impl</module>
+ </modules>
+</project> \ 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 0cae496932..55ab0623b4 100644
--- a/openecomp-be/lib/openecomp-heat-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-heat-lib/pom.xml
@@ -15,6 +15,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
diff --git a/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..f434a8e24c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup
@@ -0,0 +1,50 @@
+<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.core</groupId>
+ <name>openecomp-heat-lib</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <artifactId>openecomp-heat-lib</artifactId>
+
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java
index 02278acf3f..def773d712 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/HeatTreeManager.java
@@ -23,7 +23,7 @@ package org.openecomp.sdc.heat.services.tree;
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.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.core.validation.types.GlobalValidationContext;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/EnvironmentTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/EnvironmentTest.java
index ee2fb6cab7..c99eda7309 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/EnvironmentTest.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/EnvironmentTest.java
@@ -21,7 +21,7 @@
package org.openecomp.sdc.heat.datatypes.model;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.io.InputStream;
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplateTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplateTest.java
index 73cc6811ff..ec5c7526e3 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplateTest.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/datatypes/model/HeatOrchestrationTemplateTest.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.heat.datatypes.model;
import org.junit.Assert;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.io.InputStream;
import java.util.ArrayList;
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..a2786b2401
--- /dev/null
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup
@@ -0,0 +1,57 @@
+<?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.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>1.8.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <name>openecomp-sdc-logging-api</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <!--dependencies>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ </dependencies-->
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggerFactory.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggerFactory.java
index 7029ded38d..68365fd857 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggerFactory.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggerFactory.java
@@ -23,185 +23,212 @@ package org.openecomp.sdc.logging.api;
/**
* <a>Factory to hide a concrete, framework-specific implementation of logger creation.</a>
- *
- * <p>The service used by this factory must implement {@link LoggerCreationService}. If no implementation has been
- * configured or could not be instantiated, a <b>no-op logger</b> will be used, and <b>no events</b> will be logged.
- * This is done to prevent recursion if attempts are being made to log exceptions that resulted from logger
- * initialization.
- * </p>
+ * <p>The service used by this factory must implement {@link LoggerCreationService}. If no
+ * implementation has been configured or could not be instantiated, a <b>no-op logger</b> will be
+ * used, and <b>no events</b> will be logged. This is done to prevent recursion if attempts are
+ * being made to log exceptions that resulted from logger initialization. </p>
*
* @author evitaliy
- * @since 13/09/2016.
- *
* @see BaseFactory
* @see LoggerCreationService
+ * @since 13/09/2016.
*/
@SuppressWarnings("ThrowableInstanceNeverThrown")
public class LoggerFactory extends BaseFactory {
- private static final LoggerCreationService SERVICE;
-
- static {
- LoggerCreationService service;
+ private static final LoggerCreationService SERVICE;
- try {
- service = locateService(LoggerCreationService.class);
- } catch (Throwable 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();
- }
+ static {
+ LoggerCreationService service;
- SERVICE = service;
+ try {
+ service = locateService(LoggerCreationService.class);
+ } catch (Exception ex) {
+ new RuntimeException("Failed to instantiate logger factory", ex).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();
}
- public static Logger getLogger(String clazzName) {
- return SERVICE.getLogger(clazzName);
- }
-
- public static Logger getLogger(Class<?> clazz) {
- return SERVICE.getLogger(clazz);
- }
-
- private static class NoOpLoggerCreationService implements LoggerCreationService {
-
- private static final Logger NO_OP_LOGGER = new Logger() {
-
- @Override
- public String getName() {
- return "No-Op Logger";
- }
-
- @Override
- public boolean isMetricsEnabled() {
- return false;
- }
-
- @Override
- public void metrics(String msg) { }
+ SERVICE = service;
+ }
- @Override
- public void metrics(String msg, Object arg) { }
+ public static Logger getLogger(String clazzName) {
+ return SERVICE.getLogger(clazzName);
+ }
- @Override
- public void metrics(String msg, Object arg1, Object arg2) { }
+ public static Logger getLogger(Class<?> clazz) {
+ return SERVICE.getLogger(clazz);
+ }
- @Override
- public void metrics(String msg, Object... arguments) { }
+ private static class NoOpLoggerCreationService implements LoggerCreationService {
- @Override
- public void metrics(String msg, Throwable t) { }
+ private static final Logger NO_OP_LOGGER = new Logger() {
- @Override
- public boolean isAuditEnabled() {
- return false;
- }
+ @Override
+ public String getName() {
+ return "No-Op Logger";
+ }
- @Override
- public void audit(String msg) { }
+ @Override
+ public boolean isMetricsEnabled() {
+ return false;
+ }
- @Override
- public void audit(String msg, Object arg) { }
+ @Override
+ public void metrics(String msg) {
+ }
- @Override
- public void audit(String msg, Object arg1, Object arg2) { }
+ @Override
+ public void metrics(String msg, Object arg) {
+ }
- @Override
- public void audit(String msg, Object... arguments) { }
+ @Override
+ public void metrics(String msg, Object arg1, Object arg2) {
+ }
- @Override
- public void audit(String msg, Throwable t) { }
+ @Override
+ public void metrics(String msg, Object... arguments) {
+ }
- @Override
- public boolean isDebugEnabled() {
- return false;
- }
+ @Override
+ public void metrics(String msg, Throwable t) {
+ }
- @Override
- public void debug(String msg) { }
+ @Override
+ public boolean isAuditEnabled() {
+ return false;
+ }
- @Override
- public void debug(String msg, Object arg) { }
+ @Override
+ public void audit(String msg) {
+ }
- @Override
- public void debug(String msg, Object arg1, Object arg2) { }
+ @Override
+ public void audit(String msg, Object arg) {
+ }
- @Override
- public void debug(String msg, Object... arguments) { }
+ @Override
+ public void audit(String msg, Object arg1, Object arg2) {
+ }
- @Override
- public void debug(String msg, Throwable t) { }
+ @Override
+ public void audit(String msg, Object... arguments) {
+ }
- @Override
- public boolean isInfoEnabled() {
- return false;
- }
+ @Override
+ public void audit(String msg, Throwable t) {
+ }
- @Override
- public void info(String msg) { }
+ @Override
+ public boolean isDebugEnabled() {
+ return false;
+ }
- @Override
- public void info(String msg, Object arg) { }
+ @Override
+ public void debug(String msg) {
+ }
- @Override
- public void info(String msg, Object arg1, Object arg2) { }
+ @Override
+ public void debug(String msg, Object arg) {
+ }
- @Override
- public void info(String msg, Object... arguments) { }
+ @Override
+ public void debug(String msg, Object arg1, Object arg2) {
+ }
- @Override
- public void info(String msg, Throwable t) { }
+ @Override
+ public void debug(String msg, Object... arguments) {
+ }
- @Override
- public boolean isWarnEnabled() {
- return false;
- }
+ @Override
+ public void debug(String msg, Throwable t) {
+ }
- @Override
- public void warn(String msg) { }
+ @Override
+ public boolean isInfoEnabled() {
+ return false;
+ }
- @Override
- public void warn(String msg, Object arg) { }
-
- @Override
- public void warn(String msg, Object... arguments) { }
-
- @Override
- public void warn(String msg, Object arg1, Object arg2) { }
-
- @Override
- public void warn(String msg, Throwable t) { }
-
- @Override
- public boolean isErrorEnabled() {
- return false;
- }
-
- @Override
- public void error(String msg) { }
-
- @Override
- public void error(String msg, Object arg) { }
-
- @Override
- public void error(String msg, Object arg1, Object arg2) { }
-
- @Override
- public void error(String msg, Object... arguments) { }
-
- @Override
- public void error(String msg, Throwable t) { }
- };
-
- @Override
- public Logger getLogger(String className) {
- return NO_OP_LOGGER;
- }
+ @Override
+ public void info(String msg) {
+ }
+
+ @Override
+ public void info(String msg, Object arg) {
+ }
+
+ @Override
+ public void info(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void info(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void info(String msg, Throwable t) {
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return false;
+ }
+
+ @Override
+ public void warn(String msg) {
+ }
+
+ @Override
+ public void warn(String msg, Object arg) {
+ }
+
+ @Override
+ public void warn(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void warn(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void warn(String msg, Throwable t) {
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return false;
+ }
+
+ @Override
+ public void error(String msg) {
+ }
+
+ @Override
+ public void error(String msg, Object arg) {
+ }
+
+ @Override
+ public void error(String msg, Object arg1, Object arg2) {
+ }
+
+ @Override
+ public void error(String msg, Object... arguments) {
+ }
+
+ @Override
+ public void error(String msg, Throwable t) {
+ }
+ };
+
+ @Override
+ public Logger getLogger(String className) {
+ return NO_OP_LOGGER;
+ }
- @Override
- public Logger getLogger(Class<?> clazz) {
- return NO_OP_LOGGER;
- }
+ @Override
+ public Logger getLogger(Class<?> clazz) {
+ return NO_OP_LOGGER;
}
+ }
}
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java
index 3ad999f272..e2b31c3202 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java
@@ -23,57 +23,53 @@ package org.openecomp.sdc.logging.api.context;
import org.openecomp.sdc.logging.api.BaseFactory;
/**
- * <p>Should be used to propagate a diagnostic context (for instance
- * <a href="http://www.slf4j.org/manual.html#mdc">MDC</a>) to other threads.</p>
- *
- * <p>Applicable when creating a child thread directly, or submitting tasks for potentially postponed execution via
- * an <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html">Executor</a> (including
- * any of the <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html">executor
- * services</a> and
- * <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html">ForkJoinPool</a>).</p>
- *
+ * <p>Should be used to propagate a diagnostic context (for instance <a
+ * href="http://www.slf4j.org/manual.html#mdc">MDC</a>) to other threads.</p>
+ * <p>Applicable when creating a child thread directly, or submitting tasks for potentially
+ * postponed execution via an <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html">Executor</a>
+ * (including any of the <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html">executor
+ * services</a> and <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html">ForkJoinPool</a>).</p>
* <p>The service used by this factory must implement {@link ContextPropagationService}.</p>
*
* @author evitaliy
- * @since 12/09/2016.
- *
* @see ContextPropagationService
+ * @since 12/09/2016.
*/
@SuppressWarnings("ThrowableInstanceNeverThrown")
public class TaskFactory extends BaseFactory {
- private static final ContextPropagationService SERVICE;
- private static final RuntimeException ERROR;
-
- static {
+ private static final ContextPropagationService SERVICE;
+ private static final RuntimeException ERROR;
- ContextPropagationService service = null;
- RuntimeException error = null;
+ static {
- try {
- service = locateService(ContextPropagationService.class);
- } catch (Throwable e) {
- error = new RuntimeException("Failed to instantiate task factory", e);
- }
+ ContextPropagationService service = null;
+ RuntimeException error = null;
- SERVICE = service;
- ERROR = error;
+ try {
+ service = locateService(ContextPropagationService.class);
+ } catch (Exception ex) {
+ error = new RuntimeException("Failed to instantiate task factory", ex);
}
- /**
- * Modify a task so that a diagnostic context is propagated to the thread when the task runs. Done in a
- * logging-framework specific way.
- *
- * @param task any Runnable that will run in a thread
- * @return modified (wrapped) original task that runs the same business logic, but also takes care of copying the
- * diagnostic context for logging
- */
- public static Runnable create(Runnable task) {
+ SERVICE = service;
+ ERROR = error;
+ }
- if (SERVICE == null) {
- throw ERROR;
- }
+ /**
+ * Modify a task so that a diagnostic context is propagated to the thread when the task runs. Done
+ * in a logging-framework specific way.
+ *
+ * @param task any Runnable that will run in a thread
+ * @return modified (wrapped) original task that runs the same business logic, but also takes care
+ * of copying the diagnostic context for logging
+ */
+ public static Runnable create(Runnable task) {
- return SERVICE.create(task);
+ if (SERVICE == null) {
+ throw ERROR;
}
+
+ return SERVICE.create(task);
+ }
}
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 028a1bcb38..f23a2c5352 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
@@ -5,24 +5,25 @@ package org.openecomp.sdc.logging.messages;
*/
public class AuditMessages {
- public static final String AUDIT_MSG = " --Audit-- ";
+ public static final String AUDIT_MSG = " --Audit-- ";
- public static final String CREATE_VLM = "Create VLM. VLM Name: ";
- public static final String CHECK_IN_VLM = "Check in VLM. VLM Id: ";
- public static final String CHECK_OUT_VLM = "Check out VLM. VLM Id: ";
- public static final String SUBMIT_VLM = "submit VLM. VLM Name: ";
+ public static final String CREATE_VLM = "Create VLM. VLM Name: ";
+ public static final String CHECK_IN_VLM = "Check in VLM. VLM Id: ";
+ public static final String CHECK_OUT_VLM = "Check out VLM. VLM Id: ";
+ public static final String SUBMIT_VLM = "submit VLM. VLM Name: ";
- public static final String CREATE_VSP = "Create VSP. VSP Name: ";
- public static final String CHECK_IN_VSP = "Check in VSP. VSP Id: ";
- public static final String CHECK_OUT_VSP = "Check out VSP. VSP Id: ";
- public static final String SUBMIT_VSP = "Submit VSP. VSP Id: ";
+ public static final String CREATE_VSP = "Create VSP. VSP Name: ";
+ public static final String CHECK_IN_VSP = "Check in VSP. VSP Id: ";
+ public static final String CHECK_OUT_VSP = "Check out VSP. VSP Id: ";
+ public static final String SUBMIT_VSP = "Submit VSP. VSP Id: ";
- public static final String UPLOAD_HEAT = "Upload HEAT. VSP Id: ";
- public static final String UPLOAD_PROCESS_ARTIFACT = "Upload Process Artifact. VSP Id: ";
- public static final String UPLOAD_ARTIFACT_MIB_POLL = "Upload Artifact SNMP POLL. VSP Id: ";
- public static final String UPLOAD_ARTIFACT_MIB_TRAP = "Upload Artifact SNMP TRAP. VSP Id: ";
+ public static final String UPLOAD_HEAT = "Upload HEAT. VSP Id: ";
+ public static final String UPLOAD_PROCESS_ARTIFACT = "Upload Process Artifact. VSP Id: ";
+ public static final String UPLOAD_MONITORING_FILE = "Upload Monitoring File of type %s " +
+ "" + ". VSP Id: %s, component id: %s";
+// public static final String UPLOAD_ARTIFACT_MIB_TRAP = "Upload Artifact SNMP TRAP. VSP Id: ";
- public static final String IMPORT_SUCCESS = "VSP import to VF success. VSP Id: ";
- public static final String IMPORT_FAIL = "VSP import to VF fail. VSP Id: ";
+ public static final String IMPORT_SUCCESS = "VSP import to VF success. VSP Id: ";
+ public static final String IMPORT_FAIL = "VSP import to VF fail. VSP Id: ";
}
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorCode.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorCode.java
index 141a1496f0..3f48991c7f 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorCode.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorCode.java
@@ -27,7 +27,7 @@ public enum LoggerErrorCode {
DATA_ERROR("300"),
SCHEMA_ERROR("400"),
BUSINESS_PROCESS_ERROR("500"),
- UNKNOWN_ERROR("900");
+ UNKNOWN_ERROR("900"), ;
private String errorCode;
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorDescription.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorDescription.java
index 16a7b430b8..7e502d55f2 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorDescription.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerErrorDescription.java
@@ -55,6 +55,8 @@ public class LoggerErrorDescription {
public static final String VALIDATE_FILE = "Can't validate file";
public static final String INVALID_FILE_TYPE = "Invalid file type";
public static final String INVALID_ZIP = "Invalid zip file";
+ public static final String INVALID_VES_FILE = "Invalid VES file";
+
public static final String RESOURCE_UNIQUE_NETWORK_ROLE =
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerServiceName.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerServiceName.java
index 3fac9547d3..c6d9ebb77f 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerServiceName.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerServiceName.java
@@ -7,9 +7,9 @@
* 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.
@@ -38,6 +38,11 @@ public enum LoggerServiceName {
Get_EP,
Delete_EP,
+ Create_LIMIT,
+ Delete_LIMIT,
+ Update_LIMIT,
+ Get_LIMIT,
+
List_FG,
Create_FG,
Update_FG,
@@ -104,9 +109,9 @@ public enum LoggerServiceName {
Get_Questionnaire_Component,
Update_Questionnaire_Component,
- Upload_MIB_File,
- Delete_MIB_File,
- List_MIB_Files,
+ Upload_Monitoring_Artifact,
+ Delete_Monitoring_Artifact,
+ List_Monitoring_Artifacts,
List_Network,
Create_Network,
@@ -126,19 +131,42 @@ public enum LoggerServiceName {
Create_Process,
Update_Process,
+ Create_Compute,
+ List_Computes,
+ Get_Compute,
+ Update_Compute,
+ Delete_Compute,
+ Get_Questionnaire_Compute,
+ Update_Questionnaire_Compute,
+
Insert_To_ApplicationConfig_Table,
Get_From_ApplicationConfig_Table,
Get_List_From_ApplicationConfig_Table_By_Namespace,
+ Create_Deployment_Flavor,
+ Get_List_Deployment_flavor,
+ Get_Deployment_flavor,
+ Delete_Deployment_flavor,
+ Update_Deployment_flavor,
+
Get_List_Activity_Log,
Validate,
Enrich, Delete_VSP, Get_Process_Artifact, Create_Entity, Checkout_Entity, Undo_Checkout_Entity,
Checkin_Entity, Submit_Entity, Get_Entity_Version, Delete_Entity, Undo_Delete_Entity,
Translate_Resource, Translate_HEAT, LoggerServiceName, Get_VSP_List, Delete_VLM, Update_Manifest,
+ Create_Image,
+ GET_Image_Schema,
+ List_Images,
+ GET_Image,
+ Delete_Image,
+ Update_Image,
CREATE_COMPONENT_DEPENDENCY_MODEL,
- GET_COMPONENT_DEPENDENCY_MODEL;
+ GET_COMPONENT_DEPENDENCY_MODEL,
+
+ Health_check
+ ;
public static String getServiceName(LoggerServiceName serviceName) {
return serviceName.name().replace("_", " ");
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerTragetServiceName.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerTragetServiceName.java
index b496d73d83..6b0570eb29 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerTragetServiceName.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/types/LoggerTragetServiceName.java
@@ -7,9 +7,9 @@
* 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.
@@ -122,7 +122,9 @@ public class LoggerTragetServiceName {
public static final String SUBMIT_VSP = "Submit VSP";
public static final String GET_VSP = "Get VSP";
+ public static final String ADD_VSP = "Add VSP";
public static final String DELETE_VSP = "Delete VSP";
+ public static final String UPDATE_VSP = "Update VSP";
public static final String ENRICH = "Enrich";
public static final String UPLOAD_FILE = "Upload file";
public static final String GET_UPLOADED_HEAT = "Get Uploaded HEAT File";
@@ -135,8 +137,8 @@ public class LoggerTragetServiceName {
public static final String GET_VLM = "Get VLM";
- public static final String VALIDATE_MIB = "Validate MIB File";
- public static final String UPLOAD_MIB = "Upload MIB file";
+ public static final String VALIDATE_MONITORING_FILE = "Validate Monitoring File";
+ public static final String UPLOAD_MONITORING_FILE = "Upload Monitoring file";
public static final String GET_VERSION_INFO = "Get version info";
@@ -145,12 +147,18 @@ public class LoggerTragetServiceName {
public static final String CREATE_COMPONENT = "Create Component";
public static final String DELETE_COMPONENT = "Delete Component";
+ public static final String UPDATE_COMPONENT = "Update Component";
public static final String GET_PROCESS_ARTIFACT = "Get Process Artifact";
public static final String UPLOAD_PROCESS_ARTIFACT = "Upload Process Artifact";
public static final String CREATE_NIC = "Create Nic";
public static final String DELETE_NIC = "Delete Nic";
+ public static final String UPDATE_NIC = "Update Nic";
+
+ public static final String CREATE_DEPLOYMENT_FLAVOR = "Create Deployment Flavor";
+ public static final String DELETE_DEPLOYMENT_FLAVOR = "Delete Deployment Flavor";
+ public static final String UPDATE_DEPLOYMENT_FLAVOR = "Update Deployment Flavor";
public static final String EXTRACT_COMPOSITION_DATA = "Extract Composition Data";
@@ -178,6 +186,18 @@ public class LoggerTragetServiceName {
"Insert Value Into Application Config";
public static final String VALIDATE_FILE_DATA_STRUCTURE = "Validate Manifest Sent From User";
+ public static final String CREATE_IMAGE = "Create Image";
+ public static final String DELETE_IMAGE = "Delete Image";
+ public static final String UPDATE_IMAGE = "Update Image";
+
+ public static final String CREATE_COMPUTE = "Create Compute";
+ public static final String UPDATE_COMPUTE = "Update Compute";
+ public static final String DELETE_COMPUTE = "Delete Compute";
+
+ public static final String COLLECT_MANUAL_VSP_TOSCA_DATA = "Collect Manual Vsp Tosca data";
+ public static final String GENERATE_MANUAL_VSP_TOSCA = "Generate Manual Vsp Tosca";
+
+ public static final String VALIDATE_DATE_RANGE = "Validate Date Range";
public static final String CREATE_COMPONENT_DEPENDENCY_MODEL = "Create Component Dependency "
+ "Model";
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..374de71273
--- /dev/null
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup
@@ -0,0 +1,58 @@
+<?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.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency-->
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>4.1.3.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>4.1.3.RELEASE</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.1.7</version>
+ </dependency>
+
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <name>openecomp-sdc-logging-core</name>
+ <version>1.0-SNAPSHOT</version>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..77657139f0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup
@@ -0,0 +1,24 @@
+<?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.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <name>openecomp-logging-lib</name>
+ <artifactId>openecomp-logging-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>/openecomp-sdc-logging-api</module>
+ <module>/openecomp-sdc-logging-core</module>
+ </modules>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..bca0cd32a3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup
@@ -0,0 +1,151 @@
+<?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>
+
+ <properties>
+
+ <groovy.version>2.4.7</groovy.version>
+ <janino.version>2.7.7</janino.version>
+
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ <version>${groovy.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ <version>${janino.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>commons-compiler</artifactId>
+ <version>3.0.6</version>
+ </dependency>
+
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <artifactId>openecomp-migration-lib</artifactId>
+ <name>openecomp-migration-lib</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>install</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <!--includeScope>runtime</includeScope-->
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>lib/</classpathPrefix>
+ <mainClass>org.openecomp.sdc.migration.ToscaNamespaceMigration</mainClass>
+ </manifest>
+ <manifestEntries>
+ <Class-Path>lib/</Class-Path>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>ant-test</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <fixcrlf srcdir="../../tools/migration/" eol="unix"
+ includes="1702_to_1707.sh"/>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>Generate assembly</id>
+ <phase>install</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <descriptors>
+ <descriptor>${basedir}/src/main/assembly/migration-lib-assembly.xml</descriptor>
+ </descriptors>
+ <finalName>openecomp-migration-lib</finalName>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..5da20949fe
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup
@@ -0,0 +1,47 @@
+<?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-action-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-core-lib</artifactId>
+ <type>pom</type>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/action/types/ActionArtifact.java b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/action/types/ActionArtifact.java
index 1c354e0f41..dd30b681e9 100644
--- a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/action/types/ActionArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/action/types/ActionArtifact.java
@@ -137,4 +137,9 @@ public class ActionArtifact {
}
return false;
}
+
+ @Override
+ public int hashCode() {
+ return artifactUuId.hashCode();
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java
new file mode 100644
index 0000000000..ee5e8830d4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java
@@ -0,0 +1,51 @@
+/*-
+ * ============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.healthcheck.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.action.dao.types.ActionEntity;
+import org.openecomp.sdc.action.errors.ActionException;
+import org.openecomp.sdc.action.types.Action;
+import org.openecomp.sdc.action.types.OpenEcompComponent;
+import org.openecomp.sdc.versioning.dao.VersionableDao;
+
+import java.util.List;
+
+public interface ActionDao extends VersionableDao, BaseDao<ActionEntity> {
+
+ public Action createAction(Action actionDto) throws ActionException;
+
+ public Action updateAction(Action actionDto) throws ActionException;
+
+ public void deleteAction(String actionInvariantUuId) throws ActionException;
+
+ public List<Action> getFilteredActions(String filterType, String filterId) throws ActionException;
+
+ public Action getActionsByActionUuId(String uniqueId) throws ActionException;
+
+ public List<OpenEcompComponent> getOpenEcompComponents() throws ActionException;
+
+ public List<Action> getActionsByActionInvariantUuId(String actionInvariantUuId)
+ throws ActionException;
+
+ public Action getLockedAction(String actionInvariantUuId, String user) throws ActionException;
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDaoFactory.java b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDaoFactory.java
new file mode 100644
index 0000000000..0ecf04d843
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDaoFactory.java
@@ -0,0 +1,31 @@
+/*-
+ * ============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.healthcheck.dao;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ActionDaoFactory extends AbstractComponentFactory<ActionDao> {
+
+ public static ActionDaoFactory getInstance() {
+ return AbstractFactory.getInstance(ActionDaoFactory.class);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..274bdb04c7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup
@@ -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>
+
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..447437fe33
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup
@@ -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>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-action-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <modules>
+ <module>openecomp-sdc-action-api</module>
+ <module>openecomp-sdc-action-core</module>
+ </modules>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..9e29da0ee6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup
@@ -0,0 +1,39 @@
+<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>
+
+ <name>openecomp-sdc-datatypes-lib</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>1.9.13</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-api</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..493e4256a3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup
@@ -0,0 +1,45 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-enrichment-api</name>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMonitoringUploadInfo.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMonitoringUploadInfo.java
new file mode 100644
index 0000000000..a3a76a561b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMonitoringUploadInfo.java
@@ -0,0 +1,60 @@
+/*-
+ * ============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.core.enrichment.types;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.openecomp.core.enrichment.types.MonitoringUploadType.SNMP_POLL;
+import static org.openecomp.core.enrichment.types.MonitoringUploadType.SNMP_TRAP;
+import static org.openecomp.core.enrichment.types.MonitoringUploadType.VES_EVENTS;
+
+public class ComponentMonitoringUploadInfo {
+
+
+ private Map<MonitoringUploadType, MonitoringArtifactInfo> infoByType = new HashMap<>();
+ //todo as part of ATTASDC-4503
+
+
+ public MonitoringArtifactInfo getSnmpTrap() {
+ return infoByType.get(SNMP_TRAP);
+ }
+
+ public void setSnmpTrap(MonitoringArtifactInfo snmpTrapInfo) {
+ infoByType.put(SNMP_TRAP, snmpTrapInfo);
+ }
+
+ public MonitoringArtifactInfo getSnmpPoll() {
+ return infoByType.get(SNMP_POLL);
+ }
+
+ public void setSnmpPoll(MonitoringArtifactInfo snmpPollInfo) {
+ infoByType.put(SNMP_POLL, snmpPollInfo);
+ }
+
+ public MonitoringArtifactInfo getVesEvent() {
+ return infoByType.get(VES_EVENTS);
+ }
+
+ public void setVesEvent(MonitoringArtifactInfo snmpPollInfo) {
+ infoByType.put(VES_EVENTS, snmpPollInfo);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MibInfo.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringArtifactInfo.java
index f5d2fcb90d..27a0d83069 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MibInfo.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringArtifactInfo.java
@@ -23,7 +23,7 @@ package org.openecomp.core.enrichment.types;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
-public class MibInfo {
+public class MonitoringArtifactInfo {
private String name;
private byte[] content;
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ArtifactType.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringUploadType.java
index 48805d7ca5..077480f95f 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ArtifactType.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/MonitoringUploadType.java
@@ -20,11 +20,10 @@
package org.openecomp.core.enrichment.types;
-public enum ArtifactType {
+public enum MonitoringUploadType {
SNMP_POLL,
- SNMP_TRAP;
-
-
+ SNMP_TRAP,
+ VES_EVENTS
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
index ab0cafb879..9fe0f49387 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
@@ -20,6 +20,11 @@
<version>${logback.version}</version>
</dependency>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d8f63f10e9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup
@@ -0,0 +1,94 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-enrichment-core</name>
+ <artifactId>openecomp-sdc-enrichment-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-impl</artifactId>
+ <version>${project.version}</version>
+ <!--scope>runtime</scope-->
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java
index dfdbaef896..293e4dec2a 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java
@@ -29,7 +29,7 @@ import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.Test;
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
index b5014fd4b1..cfc824bc5e 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
@@ -20,6 +20,12 @@
<version>${logback.version}</version>
</dependency>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..65e84d88dc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
@@ -0,0 +1,127 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-enrichment-impl</name>
+ <artifactId>openecomp-sdc-enrichment-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <scope>runtime</scope>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <scope>test</scope>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java
index 3920cc28af..a5d1ac1ba2 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricher.java
@@ -21,9 +21,9 @@
package org.openecomp.sdc.enrichment.impl.external.artifact;
import org.openecomp.core.enrichment.types.ArtifactCategory;
-import org.openecomp.core.enrichment.types.ArtifactType;
-import org.openecomp.core.enrichment.types.ComponentMibInfo;
-import org.openecomp.core.enrichment.types.MibInfo;
+import org.openecomp.core.enrichment.types.ComponentMonitoringUploadInfo;
+import org.openecomp.core.enrichment.types.MonitoringArtifactInfo;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
import org.openecomp.core.model.types.ServiceArtifact;
@@ -35,12 +35,12 @@ import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.enrichment.EnrichmentInfo;
import org.openecomp.sdc.enrichment.inter.ExternalArtifactEnricherInterface;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
+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.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
import java.io.File;
@@ -56,7 +56,7 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
private EnrichedServiceModelDao enrichedServiceModelDao;
private ComponentDao componentDao;
- private MibDao mibDao;
+ private ComponentArtifactDao componentArtifactDao;
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
/**
@@ -86,65 +86,77 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
mdcDataDebugMessage.debugEntryMessage(null, null);
Map<String, List<ErrorMessage>> errors = new HashMap<>();
- ComponentMibInfo componentMibInfo =
+ ComponentMonitoringUploadInfo componentMonitoringUploadInfo =
extractComponentMibInfo(componentEntry, vspId, version, errors);
- enrichComponentMib(componentMibInfo, vspId, version, errors);
+ enrichComponentMib(componentMonitoringUploadInfo, vspId, version, errors);
mdcDataDebugMessage.debugExitMessage(null, null);
return errors;
}
- ComponentMibInfo extractComponentMibInfo(ComponentEntity componentEntity, String vspId,
- Version version,
- Map<String, List<ErrorMessage>> errors) {
+ private ComponentMonitoringUploadInfo extractComponentMibInfo(ComponentEntity componentEntity,
+ String vspId,
+ Version version,
+ Map<String, List<ErrorMessage>> errors) {
mdcDataDebugMessage.debugEntryMessage(null, null);
String componentId = componentEntity.getId();
- MibEntity entity = new MibEntity();
+ ComponentMonitoringUploadEntity entity = new ComponentMonitoringUploadEntity();
entity.setVspId(vspId);
entity.setVersion(version);
entity.setComponentId(componentId);
String componentName = componentEntity.getComponentCompositionData().getName();
- ComponentMibInfo componentMibInfo = new ComponentMibInfo();
- updComponentMibInfoByType(componentName, ArtifactType.SNMP_POLL, entity, componentMibInfo,
- errors);
- updComponentMibInfoByType(componentName, ArtifactType.SNMP_TRAP, entity, componentMibInfo,
- errors);
+ ComponentMonitoringUploadInfo componentMonitoringUploadInfo =
+ new ComponentMonitoringUploadInfo();
+ for (MonitoringUploadType monitoringUploadType : MonitoringUploadType.values()) {
+ updComponentMibInfoByType(componentName, monitoringUploadType, entity,
+ componentMonitoringUploadInfo,
+ errors);
+ }
+// updComponentMibInfoByType(componentName, MonitoringUploadType.SNMP_POLL, entity,
+// componentMonitoringUploadInfo,
+// errors);
+// updComponentMibInfoByType(componentName, MonitoringUploadType.SNMP_TRAP, entity,
+// componentMonitoringUploadInfo,
+// errors);
mdcDataDebugMessage.debugExitMessage(null, null);
- return componentMibInfo;
+ return componentMonitoringUploadInfo;
}
- void updComponentMibInfoByType(String componentName, ArtifactType type,
- MibEntity mibEntity,
- ComponentMibInfo componentMibInfo,
- Map<String, List<ErrorMessage>> errors) {
+ private void updComponentMibInfoByType(String componentName, MonitoringUploadType type,
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity,
+ ComponentMonitoringUploadInfo componentMonitoringUploadInfo,
+ Map<String, List<ErrorMessage>> errors) {
mdcDataDebugMessage.debugEntryMessage(null, null);
String path;
- mibEntity.setType(type);
- Optional<MibEntity> artifact =
- getMibDao().getByType(mibEntity);
+ componentMonitoringUploadEntity.setType(type);
+ Optional<ComponentMonitoringUploadEntity> artifact =
+ getComponentArtifactDao().getByType(componentMonitoringUploadEntity);
if (!artifact.isPresent()) {
return;
}
path = componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName()
+ File.separator + type.name();
- MibInfo mibInfo = new MibInfo();
- mibInfo.setName(path);
- mibInfo.setContent(artifact.get().getArtifact().array());
- switch (type) {
+ MonitoringArtifactInfo monitoringArtifactInfo = new MonitoringArtifactInfo();
+ monitoringArtifactInfo.setName(path);
+ monitoringArtifactInfo.setContent(artifact.get().getArtifact().array());
+ switch (type) { //todo as part of ATTASDC-4503
case SNMP_POLL:
- componentMibInfo.setSnmpPoll(mibInfo);
+ componentMonitoringUploadInfo.setSnmpPoll(monitoringArtifactInfo);
break;
case SNMP_TRAP:
- componentMibInfo.setSnmpTrap(mibInfo);
+ componentMonitoringUploadInfo.setSnmpTrap(monitoringArtifactInfo);
+ break;
+ case VES_EVENTS:
+ componentMonitoringUploadInfo.setVesEvent(monitoringArtifactInfo);
break;
default:
break;
@@ -153,8 +165,10 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
mdcDataDebugMessage.debugExitMessage(null, null);
}
- void enrichComponentMib(ComponentMibInfo componentMibInfo, String vspId, Version version,
- Map<String, List<ErrorMessage>> errors) {
+ private void enrichComponentMib(ComponentMonitoringUploadInfo componentMonitoringUploadInfo,
+ String vspId,
+ Version version,
+ Map<String, List<ErrorMessage>> errors) {
mdcDataDebugMessage.debugEntryMessage(null, null);
@@ -162,40 +176,50 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
ServiceArtifact mibServiceArtifact = new ServiceArtifact();
mibServiceArtifact.setVspId(vspId);
mibServiceArtifact.setVersion(version);
- enrichMibFiles(mibServiceArtifact, componentMibInfo, errors);
+ enrichMibFiles(mibServiceArtifact, componentMonitoringUploadInfo, errors);
mdcDataDebugMessage.debugExitMessage(null, null);
}
- void enrichMibFiles(ServiceArtifact mibServiceArtifact, ComponentMibInfo componentMibInfo,
- Map<String, List<ErrorMessage>> errors) {
+ private void enrichMibFiles(ServiceArtifact monitoringArtifact,
+ ComponentMonitoringUploadInfo componentMonitoringUploadInfo,
+ Map<String, List<ErrorMessage>> errors) {
mdcDataDebugMessage.debugEntryMessage(null, null);
- if (componentMibInfo == null) {
+ if (componentMonitoringUploadInfo == null) {
return;
}
- enrichMibByType(componentMibInfo.getSnmpTrap(), ArtifactType.SNMP_TRAP, mibServiceArtifact,
+ //todo fix as part of ATTASDC-4503
+ enrichMibByType(componentMonitoringUploadInfo.getSnmpTrap(), MonitoringUploadType.SNMP_TRAP,
+ monitoringArtifact,
+ errors);
+ enrichMibByType(componentMonitoringUploadInfo.getSnmpPoll(), MonitoringUploadType.SNMP_POLL,
+ monitoringArtifact,
errors);
- enrichMibByType(componentMibInfo.getSnmpPoll(), ArtifactType.SNMP_POLL, mibServiceArtifact,
+ enrichMibByType(componentMonitoringUploadInfo.getVesEvent(), MonitoringUploadType.VES_EVENTS,
+ monitoringArtifact,
errors);
mdcDataDebugMessage.debugExitMessage(null, null);
}
- void enrichMibByType(MibInfo mibInfo, ArtifactType type, ServiceArtifact mibServiceArtifact,
- Map<String, List<ErrorMessage>> errors) {
+ private void enrichMibByType(MonitoringArtifactInfo monitoringArtifactInfo,
+ MonitoringUploadType type,
+ ServiceArtifact mibServiceArtifact,
+ Map<String, List<ErrorMessage>> errors) {
mdcDataDebugMessage.debugEntryMessage(null, null);
- if (mibInfo == null) {
+ if (monitoringArtifactInfo == null) {
return;
}
FileContentHandler mibs;
try {
- mibs = FileUtils.getFileContentMapFromZip(FileUtils.toByteArray(mibInfo.getContent()));
+ mibs = FileUtils
+ .getFileContentMapFromZip(FileUtils.toByteArray(monitoringArtifactInfo.getContent()));
} catch (IOException ioException) {
ErrorMessage.ErrorMessageUtil
.addMessage(mibServiceArtifact.getName() + "." + type.name(), errors)
@@ -205,7 +229,7 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
Set<String> fileList = mibs.getFileList();
for (String fileName : fileList) {
mibServiceArtifact.setContentData(FileUtils.toByteArray(mibs.getFileContent(fileName)));
- mibServiceArtifact.setName(mibInfo.getName() + File.separator + fileName);
+ mibServiceArtifact.setName(monitoringArtifactInfo.getName() + File.separator + fileName);
getEnrichedServiceModelDao().storeExternalArtifact(mibServiceArtifact);
}
@@ -226,11 +250,11 @@ public class MonitoringMibEnricher implements ExternalArtifactEnricherInterface
return componentDao;
}
- private MibDao getMibDao() {
- if (mibDao == null) {
- mibDao = MibDaoFactory.getInstance().createInterface();
+ private ComponentArtifactDao getComponentArtifactDao() {
+ if (componentArtifactDao == null) {
+ componentArtifactDao = MonitoringUploadDaoFactory.getInstance().createInterface();
}
- return mibDao;
+ return componentArtifactDao;
}
}
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 93c4e67fc9..32df165eb3 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
@@ -1,17 +1,5 @@
package org.openecomp.sdc.enrichment.impl.tosca;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VM_TYPE_TAG;
-import static org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType.NATIVE_NODE;
-import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE;
-import static org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType.NATIVE_DEPENDS_ON;
-import static org.openecomp.sdc.tosca.services.ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
-
import org.apache.commons.lang3.StringUtils;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
@@ -29,6 +17,20 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_CODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_FUNCTION;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VM_TYPE_TAG;
+import static org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType.NATIVE_NODE;
+import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE;
+import static org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType.NATIVE_DEPENDS_ON;
+import static org.openecomp.sdc.tosca.services.ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
+
public class AbstractSubstituteToscaEnricher {
private ToscaAnalyzerService toscaAnalyzerService ;
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
@@ -108,6 +110,11 @@ public class AbstractSubstituteToscaEnricher {
setProperty(nodeTemplate, VFC_NAMING_CODE, getValueFromQuestionnaireDetails
(componentProperties, componentDisplayName, VFC_NAMING_CODE));
+ setProperty(nodeTemplate, VFC_CODE, getValueFromQuestionnaireDetails
+ (componentProperties, componentDisplayName, VFC_CODE));
+
+ setProperty(nodeTemplate, VFC_FUNCTION, getValueFromQuestionnaireDetails
+ (componentProperties, componentDisplayName, VFC_FUNCTION));
if(componentProperties.get(componentDisplayName).get(MIN_INSTANCES) != null) {
nodeTemplate.getProperties().put(MIN_INSTANCES,
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
index 7457c36701..f49c53d79b 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireData.java
@@ -1,12 +1,8 @@
package org.openecomp.sdc.enrichment.impl.tosca;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
@@ -23,6 +19,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
+
+
public class ComponentQuestionnaireData {
ComponentDao componentDao = ComponentDaoFactory.getInstance().createInterface();
@@ -64,6 +68,15 @@ public class ComponentQuestionnaireData {
String vfc_code = componentData != null ? componentData.getVfcCode() : null;
questionnaireParams.put(VFC_NAMING_CODE, vfc_code);
+ String nfcCode = componentData.getNfcCode() != null ? componentData.getNfcCode() : null;
+ questionnaireParams.put(EnrichmentConstants.VFC_CODE, nfcCode);
+
+ String vfcDescription =
+ componentData.getNfcFunction() != null ? componentData.getNfcFunction() :
+ null;
+ questionnaireParams.put(EnrichmentConstants.VFC_FUNCTION, vfcDescription);
+
+
if (componentQuestionnaire.getHighAvailabilityAndLoadBalancing() != null ) {
String mandatory = componentQuestionnaire.getHighAvailabilityAndLoadBalancing()
.getIsComponentMandatory();
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java
index e803d14b35..036d64014a 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/util/EnrichmentConstants.java
@@ -8,5 +8,7 @@ public class EnrichmentConstants {
public static final String MIN_INSTANCES = "min_instances";
public static final String MAX_INSTANCES = "max_instances";
public static final String VM_TYPE_TAG = "vm_type_tag";
+ public static final String VFC_CODE = "nfc_code";
+ public static final String VFC_FUNCTION = "nfc_function";
}
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 7a16b6945d..38f7a1c56e 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
@@ -26,16 +26,16 @@ import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.openecomp.core.enrichment.types.ArtifactCategory;
-import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
import org.openecomp.core.model.types.ServiceArtifact;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.sdc.enrichment.EnrichmentInfo;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
@@ -60,7 +60,7 @@ import static org.mockito.Mockito.times;
public class MonitoringMibEnricherTest {
@Mock
- private MibDao mibDaoMock;
+ private ComponentArtifactDao componentArtifactDaoMock;
@Mock
private EnrichedServiceModelDao enrichedServiceModelDaoMock;
@Mock
@@ -99,7 +99,7 @@ public class MonitoringMibEnricherTest {
.assertEquals(expectedServiceArtifact.getValue().getName().startsWith(componentName), true);
Assert.assertEquals(expectedServiceArtifact.getValue().getName(),
componentName + File.separator + ArtifactCategory.DEPLOYMENT.getDisplayName() +
- File.separator + ArtifactType.SNMP_POLL + File.separator + "mib1.yml");
+ File.separator + MonitoringUploadType.VES_EVENTS + File.separator + "mib1.yml");
}
@@ -125,20 +125,20 @@ public class MonitoringMibEnricherTest {
setMockToEnrichComponent(vspId, componentId1, version);
monitoringMibEnricher.enrich(enrichmentInfo);
- Mockito.verify(enrichedServiceModelDaoMock, times(8)).storeExternalArtifact(anyObject());
+ Mockito.verify(enrichedServiceModelDaoMock, times(12)).storeExternalArtifact(anyObject());
}
private void setMockToEnrichComponent(String vspId, String componentId, Version version) {
- MibEntity returnedArtifact = new MibEntity();
+ ComponentMonitoringUploadEntity returnedArtifact = new ComponentMonitoringUploadEntity();
returnedArtifact.setVspId(vspId);
returnedArtifact.setVersion(version);
returnedArtifact.setComponentId(componentId);
- returnedArtifact.setType(ArtifactType.SNMP_POLL);
+ returnedArtifact.setType(MonitoringUploadType.SNMP_POLL);
returnedArtifact.setArtifactName("mib.zip");
returnedArtifact.setArtifact(getMibByteBuffer("/mock/enrichMib/MIB.zip"));
- Mockito.when(mibDaoMock.getByType(anyObject()))
+ Mockito.when(componentArtifactDaoMock.getByType(anyObject()))
.thenReturn(Optional.of(returnedArtifact));
Mockito.doNothing().when(enrichedServiceModelDaoMock).storeExternalArtifact(anyObject());
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
index ae1b613f75..ca116a9ae3 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
@@ -1,13 +1,6 @@
package org.openecomp.sdc.enrichment.impl.tosca;
-import static org.mockito.Mockito.when;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
-
import org.apache.commons.collections.map.HashedMap;
import org.mockito.InjectMocks;
import org.mockito.Mock;
@@ -24,6 +17,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_CODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_FUNCTION;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest {
@Mock
@@ -51,11 +53,13 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
loadToscaServiceModel("/mock/enrichHA/in/", "/mock/toscaGlobalServiceTemplates/",
"MainServiceTemplate.yaml");
- Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
- Map<String, Object> innerProps = new HashedMap();
+ Map<String, Map<String, Object>> componentTypetoParams = new HashMap<>();
+ Map<String, Object> innerProps = new HashMap<>();
innerProps.put(MANDATORY, "YES");
innerProps.put(HIGH_AVAIL_MODE, "geo-activestandby");
innerProps.put(VFC_NAMING_CODE, "Code1");
+ innerProps.put(VFC_CODE, "pd_server_code");
+ innerProps.put(VFC_FUNCTION, "pd_server_description");
innerProps.put(MIN_INSTANCES, 1);
innerProps.put(MAX_INSTANCES, 2);
@@ -96,6 +100,8 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
innerProps.put(MANDATORY, "NO");
innerProps.put(HIGH_AVAIL_MODE, "");
innerProps.put(VFC_NAMING_CODE, "pd_server_code1");
+ innerProps.put(VFC_CODE, "pd_server_code");
+ innerProps.put(VFC_FUNCTION, "pd_server_description");
innerProps.put(MIN_INSTANCES, null);
innerProps.put(MAX_INSTANCES, null);
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java
index 366bd82eab..4196168b2c 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/BaseToscaEnrichmentTest.java
@@ -26,7 +26,7 @@ import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import java.io.*;
import java.net.URL;
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java
index d281604227..d825504d81 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/ComponentQuestionnaireDataTest.java
@@ -1,12 +1,5 @@
package org.openecomp.sdc.enrichment.impl.tosca;
-import static org.mockito.Mockito.doReturn;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
-import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
-
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -14,7 +7,6 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
-import org.openecomp.sdc.versioning.VersioningManager;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
@@ -25,6 +17,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static org.mockito.Mockito.doReturn;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.HIGH_AVAIL_MODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MANDATORY;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MAX_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.MIN_INSTANCES;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_CODE;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_FUNCTION;
+import static org.openecomp.sdc.enrichment.impl.util.EnrichmentConstants.VFC_NAMING_CODE;
+
public class ComponentQuestionnaireDataTest {
private static String VSP_ID = "vspId";
public static final Version VERSION01 = new Version(0, 1);
@@ -47,8 +48,13 @@ public class ComponentQuestionnaireDataTest {
@Test
public void testGetData() {
ComponentEntity componentEntity = new ComponentEntity(VSP_ID, VERSION01,"ID1" );
- componentEntity.setCompositionData("{\"name\": \"org.openecomp.resource.vfc.nodes.heat.be\"," +
- "\"displayName\": \"be\", \"vfcCode\": \"be_1\"}");
+ componentEntity.setCompositionData("{\n" +
+ " \"name\": \"org.openecomp.resource.vfc.nodes.heat.be\",\n" +
+ " \"displayName\": \"be\",\n" +
+ " \"vfcCode\": \"be_1\",\n" +
+ " \"nfcCode\": \"code\",\n" +
+ " \"nfcFunction\": \"desc\"\n" +
+ "}");
componentEntity.setQuestionnaireData
("{\"highAvailabilityAndLoadBalancing\":{\"isComponentMandatory\" : \"NO\"," +
"\"highAvailabilityMode\":\"geo-activeactive\"},\"compute\":{\"numOfVMs\" " +
@@ -64,6 +70,8 @@ public class ComponentQuestionnaireDataTest {
final Map<String, Object> be = propertiesfromCompQuestionnaire.get("be");
Assert.assertEquals(be.get(VFC_NAMING_CODE) , "be_1");
+ Assert.assertEquals(be.get(VFC_CODE), "code");
+ Assert.assertEquals(be.get(VFC_FUNCTION), "desc");
Assert.assertEquals(be.get(MANDATORY) ,"NO");
Assert.assertEquals(be.get(HIGH_AVAIL_MODE) ,"geo-activeactive");
Assert.assertEquals(be.get(MIN_INSTANCES) ,null);
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/logback.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/logback.xml
new file mode 100644
index 0000000000..31672ca4d9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/logback.xml
@@ -0,0 +1,13 @@
+<!-- only one line, shut up logback ! -->
+<configuration>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <Pattern>
+ %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
+ </Pattern>
+ </encoder>
+ </appender>
+ <root level="off">
+ <appender-ref ref="STDOUT"/>
+ </root>
+</configuration> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml
index 0570cebdc2..18fb820678 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHA/out/MainServiceTemplate.yaml
@@ -471,6 +471,8 @@ topology_template:
vm_type_tag: pd_server
high_availablity: geo-activestandby
nfc_naming_code: Code1
+ nfc_code: pd_server_code
+ nfc_function: pd_server_description
min_instances: 1
max_instances: 2
groups:
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml
index 3d8cacd11e..9c23c1036c 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANoServiceTemplateFilter/out/MainServiceTemplate.yaml
@@ -468,6 +468,8 @@ topology_template:
service_template_filter:
mandatory: false
nfc_naming_code: pd_server_code1
+ nfc_code: pd_server_code
+ nfc_function: pd_server_description
groups:
hot-mog-0108-bs1271_group:
type: org.openecomp.groups.heat.HeatStack
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..b6e0173b77
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup
@@ -0,0 +1,44 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-enrichment-lib</name>
+ <artifactId>openecomp-sdc-enrichment-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-enrichment-api</module>
+ <module>openecomp-sdc-enrichment-core</module>
+ <module>openecomp-sdc-enrichment-impl</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency-->
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..eba0f207e4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup
@@ -0,0 +1,51 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-model-api</name>
+ <artifactId>openecomp-sdc-model-api</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml
index c63a0d0606..3bc4f9b64b 100644
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml
@@ -21,6 +21,12 @@
<version>${logback.version}</version>
</dependency>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d62437122a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup
@@ -0,0 +1,56 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-model-core</name>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+
+
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/src/main/java/org/openecomp/sdc/model/impl/AbstractServiceModelDao.java b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/src/main/java/org/openecomp/sdc/model/impl/AbstractServiceModelDao.java
index 6863e04991..e774eb6b1d 100644
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/src/main/java/org/openecomp/sdc/model/impl/AbstractServiceModelDao.java
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/src/main/java/org/openecomp/sdc/model/impl/AbstractServiceModelDao.java
@@ -30,7 +30,7 @@ import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.Import;
import org.openecomp.sdc.tosca.datatypes.model.Old1610ServiceTemplate;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.versioning.dao.VersionableDao;
import org.openecomp.sdc.versioning.dao.types.Version;
import sun.misc.IOUtils;
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 a3b1e0db9f..30c4bde443 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
@@ -16,6 +16,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
@@ -46,5 +51,10 @@
<scope>test</scope>
<version>${mockito.all.version}</version>
</dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
</dependencies>
</project>
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..b8db689bd5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup
@@ -0,0 +1,49 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-model-impl</name>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+
+
+ </dependencies>
+</project> \ No newline at end of file
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 530ad44574..575ba856a7 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
@@ -9,6 +9,7 @@ import com.amdocs.zusammen.datatypes.item.Action;
import com.amdocs.zusammen.datatypes.item.ElementContext;
import com.amdocs.zusammen.datatypes.item.Info;
import com.amdocs.zusammen.datatypes.item.ItemVersion;
+import org.apache.commons.io.IOUtils;
import org.openecomp.core.model.dao.ServiceModelDao;
import org.openecomp.core.model.types.ServiceElement;
import org.openecomp.core.utilities.file.FileContentHandler;
@@ -18,13 +19,15 @@ import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionStatus;
import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.util.Collection;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -89,7 +92,6 @@ public class ServiceModelDaoZusammenImpl
return elements.stream().collect(Collectors.toMap(
element -> element.getInfo().getName(),
this::elementToServiceTemplate));
-
/*elements.stream().forEach(element ->serviceTemplateMap.put(element.getInfo().getName(),
elementToServiceTemplate(element)));
return serviceTemplateMap;*/
@@ -127,8 +129,10 @@ public class ServiceModelDaoZusammenImpl
ZusammenElement artifactsElement =
buildStructuralElement(StructureElement.Artifacts.name(), Action.UPDATE);
- serviceModel.getArtifactFiles().getFiles().entrySet().forEach(entry -> artifactsElement
- .addSubElement(buildArtifactElement(entry.getKey(), entry.getValue(), Action.CREATE)));
+ if (Objects.nonNull(serviceModel.getArtifactFiles())) {
+ serviceModel.getArtifactFiles().getFiles().entrySet().forEach(entry -> artifactsElement
+ .addSubElement(buildArtifactElement(entry.getKey(), entry.getValue(), Action.CREATE)));
+ }
ZusammenElement serviceModelElement = buildStructuralElement(name, Action.UPDATE);
serviceModelElement.getInfo()
@@ -175,8 +179,15 @@ public class ServiceModelDaoZusammenImpl
return artifactElement;
}
- private ServiceTemplate elementToServiceTemplate(Element element) {
- return new ToscaExtensionYamlUtil().yamlToObject(element.getData(), ServiceTemplate.class);
+ private ServiceTemplate elementToServiceTemplate(Element element){
+
+ try {
+ String yamlContent = IOUtils.toString(element.getData());
+ return new ToscaExtensionYamlUtil().
+ yamlToObject(yamlContent, ServiceTemplate.class);
+ }catch (Exception e){
+ return null;
+ }
}
private Element buildServiceTemplateElement(String name, ServiceTemplate serviceTemplate,
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d49cbd7069
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup
@@ -0,0 +1,44 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-model-lib</name>
+ <artifactId>openecomp-sdc-model-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-model-api</module>
+ <module>openecomp-sdc-model-core</module>
+ <module>openecomp-sdc-model-impl</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency-->
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml
new file mode 100644
index 0000000000..047fe7f843
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml
@@ -0,0 +1,68 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-tosca-generator-api</name>
+ <artifactId>openecomp-sdc-tosca-generator-api</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <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-configuration-management-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/ComputeFlavor.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/ComputeFlavor.java
new file mode 100644
index 0000000000..d888bd311b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/ComputeFlavor.java
@@ -0,0 +1,69 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+@SuppressWarnings("CheckStyle")
+public class ComputeFlavor {
+
+ private int num_cpus;
+ private String disk_size;
+ private String mem_size;
+
+ public int getNum_cpus() {
+ return num_cpus;
+ }
+
+ public void setNum_cpus(int num_cpus) {
+ this.num_cpus = num_cpus;
+ }
+
+ public String getDisk_size() {
+ return disk_size;
+ }
+
+ public void setDisk_size(String disk_size) {
+ this.disk_size = disk_size;
+ }
+
+ public String getMem_size() {
+ return mem_size;
+ }
+
+ public void setMem_size(String mem_size) {
+ this.mem_size = mem_size;
+ }
+
+ @Override
+ public String toString() {
+ return "ComputeFlavor{ num_cpus=" + num_cpus + ", disk_size= " + disk_size
+ + ", mem_size=" + mem_size + "}";
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (getClass() != obj.getClass())
+ return false;
+ ComputeFlavor other = (ComputeFlavor) obj;
+ if (num_cpus != other.num_cpus)
+ return false;
+ if (this.disk_size == null) {
+ if (other.disk_size != null)
+ return false;
+ } else if (!disk_size.equals(other.disk_size))
+ return false;
+ if (this.mem_size == null) {
+ if (other.mem_size != null)
+ return false;
+ } else if (!mem_size.equals(other.mem_size))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = num_cpus;
+ result = 31 * result + (disk_size != null ? disk_size.hashCode() : 0);
+ result = 31 * result + (mem_size != null ? mem_size.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/DeploymentFlavorModel.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/DeploymentFlavorModel.java
new file mode 100644
index 0000000000..a0d5f40b8c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/DeploymentFlavorModel.java
@@ -0,0 +1,90 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+@SuppressWarnings("CheckStyle")
+public class DeploymentFlavorModel {
+
+ private String sp_part_number;
+ private VendorInfo vendor_info;
+ private ComputeFlavor compute_flavor;
+ private LicenseFlavor license_flavor;
+
+ public String getSp_part_number() {
+ return sp_part_number;
+ }
+
+ public void setSp_part_number(String sp_part_number) {
+ this.sp_part_number = sp_part_number;
+ }
+
+ public VendorInfo getVendor_info() {
+ return vendor_info;
+ }
+
+ public void setVendor_info(VendorInfo vendor_info) {
+ this.vendor_info = vendor_info;
+ }
+
+ public ComputeFlavor getCompute_flavor() {
+ return compute_flavor;
+ }
+
+ public void setCompute_flavor(ComputeFlavor compute_flavor) {
+ this.compute_flavor = compute_flavor;
+ }
+
+ public LicenseFlavor getLicense_flavor() {
+ return license_flavor;
+ }
+
+ public void setLicense_flavor(LicenseFlavor license_flavor) {
+ this.license_flavor = license_flavor;
+ }
+
+ @Override
+ public String toString() {
+ return "DeploymentFlavorModel{" + "sp_part_number='" + sp_part_number + '\''
+ + ", vendor_info=" + vendor_info
+ + ", compute_flavor=" + compute_flavor
+ + ", license_flavor=" + license_flavor
+ + '}';
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (getClass() != obj.getClass())
+ return false;
+ DeploymentFlavorModel other = (DeploymentFlavorModel) obj;
+ if (this.sp_part_number == null) {
+ if (other.sp_part_number != null)
+ return false;
+ } else if (!sp_part_number.equals(other.sp_part_number))
+ return false;
+ if (this.vendor_info == null) {
+ if (other.vendor_info != null)
+ return false;
+ } else if (!vendor_info.equals(other.vendor_info))
+ return false;
+ if (this.compute_flavor == null) {
+ if (other.compute_flavor != null)
+ return false;
+ } else if (!compute_flavor.equals(other.compute_flavor))
+ return false;
+ if (this.license_flavor == null) {
+ if (other.license_flavor != null)
+ return false;
+ } else if (!license_flavor.equals(other.license_flavor))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = sp_part_number != null ? sp_part_number.hashCode() : 0;
+ result = 31 * result + (vendor_info != null ? vendor_info.hashCode() : 0);
+ result = 31 * result + (compute_flavor != null ? compute_flavor.hashCode() : 0);
+ result = 31 * result + (license_flavor != null ? license_flavor.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/LicenseFlavor.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/LicenseFlavor.java
new file mode 100644
index 0000000000..f459d9e993
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/LicenseFlavor.java
@@ -0,0 +1,42 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+@SuppressWarnings("CheckStyle")
+public class LicenseFlavor {
+
+ String feature_group_uuid;
+
+ public String getFeature_group_uuid() {
+ return feature_group_uuid;
+ }
+
+ public void setFeature_group_uuid(String feature_group_uuid) {
+ this.feature_group_uuid = feature_group_uuid;
+ }
+
+ @Override
+ public String toString() {
+ return "LicenseFlavor{"
+ + "feature_group_uuid='" + feature_group_uuid + '\''
+ + '}';
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (getClass() != obj.getClass())
+ return false;
+ LicenseFlavor other = (LicenseFlavor) obj;
+ if (this.feature_group_uuid == null) {
+ if (other.feature_group_uuid != null)
+ return false;
+ } else if (!feature_group_uuid.equals(other.feature_group_uuid))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return feature_group_uuid != null ? feature_group_uuid.hashCode() : 0;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/MultiFlavorVfcImage.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/MultiFlavorVfcImage.java
new file mode 100644
index 0000000000..6cd713e2d1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/MultiFlavorVfcImage.java
@@ -0,0 +1,91 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+@SuppressWarnings("CheckStyle")
+public class MultiFlavorVfcImage {
+
+ private String file_name;
+ private String file_hash;
+ private String file_hash_type;
+ private String software_version;
+
+ public String getFile_name() {
+ return file_name;
+ }
+
+ public void setFile_name(String file_name) {
+ this.file_name = file_name;
+ }
+
+ public String getFile_hash() {
+ return file_hash;
+ }
+
+ public void setFile_hash(String file_hash) {
+ this.file_hash = file_hash;
+ }
+
+ public String getFile_hash_type() {
+ return file_hash_type;
+ }
+
+ public void setFile_hash_type(String file_hash_type) {
+ this.file_hash_type = file_hash_type;
+ }
+
+ public String getSoftware_version() {
+ return software_version;
+ }
+
+ public void setSoftware_version(String software_version) {
+ this.software_version = software_version;
+ }
+
+ @Override
+ public String toString() {
+ return "MultiFlavorVfcImage{"
+ + "file_name='" + file_name + '\''
+ + ", file_hash='" + file_hash + '\''
+ + ", file_hash_type='" + file_hash_type + '\''
+ + ", software_version='" + software_version + '\''
+ + '}';
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (getClass() != obj.getClass())
+ return false;
+ MultiFlavorVfcImage other = (MultiFlavorVfcImage) obj;
+ if (this.file_name == null) {
+ if (other.file_name != null)
+ return false;
+ } else if (!file_name.equals(other.file_name))
+ return false;
+ if (this.file_hash == null) {
+ if (other.file_hash != null)
+ return false;
+ } else if (!file_hash.equals(other.file_hash))
+ return false;
+ if (this.file_hash_type == null) {
+ if (other.file_hash_type != null)
+ return false;
+ } else if (!file_hash_type.equals(other.file_hash_type))
+ return false;
+ if (this.software_version == null) {
+ if (other.software_version != null)
+ return false;
+ } else if (!software_version.equals(other.software_version))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = file_name != null ? file_name.hashCode() : 0;
+ result = 31 * result + (file_hash != null ? file_hash.hashCode() : 0);
+ result = 31 * result + (file_hash_type != null ? file_hash_type.hashCode() : 0);
+ result = 31 * result + (software_version != null ? software_version.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VendorInfo.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VendorInfo.java
new file mode 100644
index 0000000000..22348f3083
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VendorInfo.java
@@ -0,0 +1,58 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+@SuppressWarnings("CheckStyle")
+public class VendorInfo {
+
+ private String manufacturer_reference_number;
+ private String vendor_model;
+
+ public String getManufacturer_reference_number() {
+ return manufacturer_reference_number;
+ }
+
+ public void setManufacturer_reference_number(String manufacturer_reference_number) {
+ this.manufacturer_reference_number = manufacturer_reference_number;
+ }
+
+ public String getVendor_model() {
+ return vendor_model;
+ }
+
+ public void setVendor_model(String vendor_model) {
+ this.vendor_model = vendor_model;
+ }
+
+ @Override
+ public String toString() {
+ return "VendorInfo{manufacturer_reference_number='" + manufacturer_reference_number + '\''
+ + ", vendor_model='" + vendor_model + '\'' + '}';
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (getClass() != obj.getClass())
+ return false;
+ VendorInfo other = (VendorInfo) obj;
+ if (this.manufacturer_reference_number == null) {
+ if (other.manufacturer_reference_number != null)
+ return false;
+ } else if (!manufacturer_reference_number.equals(other.manufacturer_reference_number))
+ return false;
+ if (this.vendor_model == null) {
+ if (other.vendor_model != null)
+ return false;
+ } else if (!vendor_model.equals(other.vendor_model))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result =
+ manufacturer_reference_number != null ? manufacturer_reference_number.hashCode() : 0;
+ result = 31 * result + (vendor_model != null ? vendor_model.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java
new file mode 100644
index 0000000000..1fb1030dd3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java
@@ -0,0 +1,58 @@
+package org.openecomp.sdc.generator.datatypes.tosca;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+
+import java.util.List;
+import java.util.Map;
+
+public class VspModelInfo {
+ private String releaseVendor;
+ //Map of component id and name
+ private Map<String, String> components;
+ //Map of part number and deployment flavor model
+ private Map<String, DeploymentFlavorModel> allowedFlavors;
+ //Map of component id and images
+ private Map<String, List<MultiFlavorVfcImage>> multiFlavorVfcImages;
+ //Map of component and ports (NICs)
+ private Map<String, List<Nic>> nics;
+
+ public String getReleaseVendor() {
+ return releaseVendor;
+ }
+
+ public void setReleaseVendor(String releaseVendor) {
+ this.releaseVendor = releaseVendor;
+ }
+
+ public Map<String, String> getComponents() {
+ return components;
+ }
+
+ public void setComponents(Map<String, String> components) {
+ this.components = components;
+ }
+
+ public Map<String, DeploymentFlavorModel> getAllowedFlavors() {
+ return allowedFlavors;
+ }
+
+ public void setAllowedFlavors(Map<String, DeploymentFlavorModel> allowedFlavors) {
+ this.allowedFlavors = allowedFlavors;
+ }
+
+ public Map<String, List<MultiFlavorVfcImage>> getMultiFlavorVfcImages() {
+ return multiFlavorVfcImages;
+ }
+
+ public void setMultiFlavorVfcImages(Map<String, List<MultiFlavorVfcImage>> multiFlavorVfcImages) {
+ this.multiFlavorVfcImages = multiFlavorVfcImages;
+ }
+
+ public Map<String, List<Nic>> getNics() {
+ return nics;
+ }
+
+ public void setNics(Map<String, List<Nic>> nics) {
+ this.nics = nics;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java
new file mode 100644
index 0000000000..b24a85d61c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.generator.util;
+
+public class GeneratorConstants {
+ public static final String ALLOWED_FLAVORS_PROPERTY = "allowed_flavors";
+ public static final String IMAGES_PROPERTY = "images";
+ public static final String RELEASE_VENDOR = "releaseVendor";
+ public static final String VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX = "_VNF_Configuration";
+ public static final String VFC_NODE_TEMPLATE_ID_SUFFIX = "_VFC";
+ public static final String VNF_NODE_TEMPLATE_ID_SUFFIX = "_VNF";
+ public static final String PORT_NODE_TEMPLATE_ID_SUFFIX = "_wan_port";
+
+ public static final String TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX = "ServiceTemplate.yaml";
+
+ //Manual VSP propeties
+ public static final String NUM_CPUS = "num_cpus";
+ public static final String DISK_SIZE = "disk_size";
+ public static final String MEM_SIZE = "mem_size";
+
+ public static final String NUM_CPUS_PROP_DESC_PREFIX = "Number of cpu for ";
+ public static final String DISK_SIZE_PROP_DESC_PREFIX = "Disk size for ";
+ public static final String MEM_SIZE_PROP_DESC_PREFIX = "Memory size for ";
+
+
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/pom.xml b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/pom.xml
new file mode 100644
index 0000000000..12e39d9112
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/pom.xml
@@ -0,0 +1,68 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-tosca-generator-core</name>
+ <artifactId>openecomp-sdc-tosca-generator-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-tosca-generator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java
new file mode 100644
index 0000000000..6d488c0221
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java
@@ -0,0 +1,433 @@
+package org.openecomp.sdc.generator.core.services;
+
+import static org.openecomp.sdc.generator.util.GeneratorConstants.ALLOWED_FLAVORS_PROPERTY;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.DISK_SIZE;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.DISK_SIZE_PROP_DESC_PREFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.IMAGES_PROPERTY;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.MEM_SIZE;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.MEM_SIZE_PROP_DESC_PREFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.NUM_CPUS;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.NUM_CPUS_PROP_DESC_PREFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.RELEASE_VENDOR;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.sdc.generator.core.utils.GeneratorUtils;
+import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
+import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.Import;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.translator.services.heattotosca.Constants;
+import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * The type Manual vsp tosca generator.
+ */
+public class ManualVspToscaGenerationService {
+
+ //Map of the abstract node template id and substitution node type
+ private Map<String, String> abstractSubstitutionIdTypes = new HashMap<>();
+ //Map of service template name and service template for the generated service templates
+ private Map<String, ServiceTemplate> generatedServiceTemplates = new HashMap<>();
+
+
+ /**
+ * Create manual vsp tosca service model tosca service model.
+ *
+ * @param vspModelInfo the vsp model info
+ * @return the tosca service model
+ */
+ public ToscaServiceModel createManualVspToscaServiceModel(VspModelInfo vspModelInfo) {
+ ToscaServiceModel toscaServiceModel = new ToscaServiceModel();
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>(GlobalTypesGenerator
+ .getGlobalTypesServiceTemplate());
+ toscaServiceModel.setServiceTemplates(serviceTemplates);
+ toscaServiceModel.setEntryDefinitionServiceTemplate(Constants.MAIN_TEMPLATE_NAME
+ + TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX);
+ createToscaFromVspData(vspModelInfo, toscaServiceModel);
+ for (Map.Entry<String, ServiceTemplate> serviceTemplateEntry :
+ generatedServiceTemplates.entrySet()) {
+ ToscaUtil.addServiceTemplateToMapWithKeyFileName(serviceTemplates, serviceTemplateEntry
+ .getValue());
+ }
+ return toscaServiceModel;
+ }
+
+ private void createToscaFromVspData(VspModelInfo vspModelInfo,
+ ToscaServiceModel toscaServiceModel) {
+ List<ServiceTemplate> serviceTemplates = new ArrayList<>();
+ //Only one component supported
+ Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
+ if (componentName.isPresent()) {
+ //Create main service template
+ ServiceTemplate mainServiceTemplate = createMainServiceTemplate(vspModelInfo);
+ generatedServiceTemplates.put(Constants.MAIN_TEMPLATE_NAME, mainServiceTemplate);
+ //Create substitution service template
+ for (Map.Entry<String, String> entry : abstractSubstitutionIdTypes.entrySet()) {
+ ServiceTemplate substitutionServiceTemplate =
+ createSubstitutionServiceTemplate(componentName.get(), entry.getValue(), vspModelInfo,
+ toscaServiceModel);
+ generatedServiceTemplates.put(componentName.get(), substitutionServiceTemplate);
+ }
+ }
+
+ }
+
+ private Optional<String> getComponentNameFromVspModel(VspModelInfo vspModelInfo) {
+ String componentName = null;
+ if (MapUtils.isNotEmpty(vspModelInfo.getComponents())) {
+ //supported for single component only
+ componentName = vspModelInfo.getComponents().entrySet().iterator().next().getValue();
+ }
+ return Optional.ofNullable(componentName);
+ }
+
+ private ServiceTemplate createMainServiceTemplate(VspModelInfo vspModelInfo) {
+ ServiceTemplate mainServiceTemplate = createInitMainServiceTemplate(vspModelInfo
+ .getReleaseVendor());
+ Map<String, String> components = vspModelInfo.getComponents();
+ if (MapUtils.isNotEmpty(components)) {
+ //Currently since only one component is supported we can fetch the component in this manner.
+ // May be need to revisited for supporting multiple components
+ String componentId = components.entrySet().iterator().next().getKey();
+ createVnfConfigurationNodeTemplate(mainServiceTemplate, vspModelInfo);
+ createComponentNodeTemplate(mainServiceTemplate, vspModelInfo, componentId);
+ createVnfNodeTemplate(mainServiceTemplate, vspModelInfo);
+ }
+ return mainServiceTemplate;
+ }
+
+ private void createVnfConfigurationNodeTemplate(ServiceTemplate mainServiceTemplate,
+ VspModelInfo vspModelInfo) {
+ Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
+ if (componentName.isPresent()) {
+ NodeTemplate vnfConfigurationNodeTemplate = new NodeTemplate();
+ vnfConfigurationNodeTemplate.setType(ToscaNodeType.VNF_CONFIG_NODE_TYPE);
+ if (Objects.nonNull(vspModelInfo.getAllowedFlavors())) {
+ Map<String, Object> properties = new LinkedHashMap<>();
+ properties.put(ALLOWED_FLAVORS_PROPERTY, vspModelInfo.getAllowedFlavors());
+ vnfConfigurationNodeTemplate.setProperties(properties);
+ }
+ String nodeTemplateId = componentName.get() + VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX;
+ DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId,
+ vnfConfigurationNodeTemplate);
+ }
+ }
+
+ private void createComponentNodeTemplate(ServiceTemplate mainServiceTemplate,
+ VspModelInfo vspModelInfo,
+ String componentId) {
+ Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
+ if (componentName.isPresent()) {
+ NodeTemplate vfcNodeTemplate = new NodeTemplate();
+ vfcNodeTemplate.setType(ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE);
+ Map<String, Object> properties = new LinkedHashMap<>();
+ if (MapUtils.isNotEmpty(vspModelInfo.getMultiFlavorVfcImages())) {
+ List<MultiFlavorVfcImage> componentImages =
+ vspModelInfo.getMultiFlavorVfcImages().get(componentId);
+ Map<String, MultiFlavorVfcImage> vfcImages = new HashMap<>();
+ for (MultiFlavorVfcImage image : componentImages) {
+ vfcImages.put(image.getSoftware_version(), image);
+ }
+ properties.put(IMAGES_PROPERTY, vfcImages);
+ vfcNodeTemplate.setProperties(properties);
+ }
+ String nodeTemplateId = componentName.get() + VFC_NODE_TEMPLATE_ID_SUFFIX;
+ DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId,
+ vfcNodeTemplate);
+ }
+ }
+
+ private void createVnfNodeTemplate(ServiceTemplate mainServiceTemplate,
+ VspModelInfo vspModelInfo) {
+ Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
+ if (componentName.isPresent()) {
+ NodeTemplate vnfNodeTemplate = new NodeTemplate();
+ String vnfNodeTemplateType =
+ ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName.get();
+ vnfNodeTemplate.setType(vnfNodeTemplateType);
+ List<String> directiveList = new ArrayList<>();
+ directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
+ vnfNodeTemplate.setDirectives(directiveList);
+ vnfNodeTemplate.setProperties(new LinkedHashMap<>());
+ DataModelUtil
+ .addSubstitutionFilteringProperty(getSubstitutionServiceTemplateFileName(componentName
+ .get()), vnfNodeTemplate, 1);
+ //Enable below if we need "abstract_" as prefix like we have in Unified model
+ //String nodeTemplateId =
+ // Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + componentName + "VNF_NODE_TEMPLATE_ID_SUFFIX";
+ String nodeTemplateId = componentName.get() + VNF_NODE_TEMPLATE_ID_SUFFIX;
+ DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId,
+ vnfNodeTemplate);
+ abstractSubstitutionIdTypes.put(componentName.get(), vnfNodeTemplateType);
+ }
+ }
+
+ private String getSubstitutionServiceTemplateFileName(String componentName) {
+ return componentName + TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
+ }
+
+ private String getNodeTemplateId(String componentName, String idPrefix, String idSuffix) {
+ StringBuilder builder = new StringBuilder();
+ //builder.append(idPrefix);
+ builder.append(componentName);
+ builder.append(idSuffix);
+ return builder.toString();
+ }
+
+ private ServiceTemplate createInitMainServiceTemplate(String releaseVendor) {
+ ServiceTemplate mainServiceTemplate = new ServiceTemplate();
+ Map<String, String> templateMetadata = new HashMap<>();
+ templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, Constants.MAIN_TEMPLATE_NAME);
+ if (Objects.nonNull(releaseVendor)) {
+ templateMetadata.put(RELEASE_VENDOR, releaseVendor);
+ }
+ mainServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION);
+ mainServiceTemplate.setMetadata(templateMetadata);
+ mainServiceTemplate.setTopology_template(new TopologyTemplate());
+ mainServiceTemplate.setImports(getImports());
+ return mainServiceTemplate;
+ }
+
+ private List<Map<String, Import>> getImports() {
+ Map<String, Import> globalSubstitutionTypeImportMap = new HashMap<>();
+ Import globalSubstitutionTypeImport = new Import();
+ globalSubstitutionTypeImport.setFile(ToscaUtil.getServiceTemplateFileName(Constants
+ .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
+ globalSubstitutionTypeImportMap.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ globalSubstitutionTypeImport);
+ Map<String, Import> globalImports = new HashMap<>();
+ List<Map<String, Import>> manualVspGlobalTypesImportList = GlobalTypesGenerator
+ .getManualVspGlobalTypesImportList();
+ manualVspGlobalTypesImportList.add(globalSubstitutionTypeImportMap);
+ return manualVspGlobalTypesImportList;
+ }
+
+ private ServiceTemplate createSubstitutionServiceTemplate(String serviceTemplateName,
+ String substitutionNodeTypeId,
+ VspModelInfo vspModelInfo,
+ ToscaServiceModel toscaServiceModel) {
+ ServiceTemplate substitutionServiceTemplate =
+ createInitSubstitutionServiceTemplate(serviceTemplateName);
+ createSubstitutionServiceTemplateComponents(substitutionServiceTemplate, vspModelInfo,
+ toscaServiceModel);
+ createSubstitutionServiceTemplateNics(substitutionServiceTemplate, vspModelInfo,
+ toscaServiceModel);
+ handleSubstitutionMapping(substitutionServiceTemplate, toscaServiceModel,
+ substitutionNodeTypeId, serviceTemplateName);
+ return substitutionServiceTemplate;
+ }
+
+ private void createSubstitutionServiceTemplateComponents(ServiceTemplate
+ substitutionServiceTemplate,
+ VspModelInfo vspModelInfo,
+ ToscaServiceModel toscaServiceModel) {
+ Map<String, String> components = vspModelInfo.getComponents();
+ if (MapUtils.isNotEmpty(components)) {
+ for (String componentId : components.keySet()) {
+ String componentName = components.get(componentId);
+ String localNodeTypeId =
+ createComponentDefinitionNodeTemplate(substitutionServiceTemplate, componentName);
+ createLocalNodeType(substitutionServiceTemplate, localNodeTypeId);
+ }
+ }
+ }
+
+ private void createSubstitutionServiceTemplateNics(ServiceTemplate substitutionServiceTemplate,
+ VspModelInfo vspModelInfo,
+ ToscaServiceModel toscaServiceModel) {
+ Map<String, List<Nic>> nics = vspModelInfo.getNics();
+ if (MapUtils.isNotEmpty(nics)) {
+ for (Map.Entry<String, List<Nic>> entry : nics.entrySet()) {
+ String componentId = entry.getKey();
+ String componentNodeTemplateId = getSubstitutionComponentNodeTemplateId(
+ vspModelInfo.getComponents().get(componentId));
+ List<Nic> nicList = entry.getValue();
+ if (CollectionUtils.isNotEmpty(nicList)) {
+ for (Nic nic : nicList) {
+ NodeTemplate nicNodeTemplate = new NodeTemplate();
+ nicNodeTemplate.setType(ToscaNodeType.NETWORK_PORT);
+ DataModelUtil.addBindingReqFromPortToCompute(componentNodeTemplateId, nicNodeTemplate);
+ DataModelUtil.addNodeTemplate(substitutionServiceTemplate,
+ getNicNodeTemplateId(nic.getName()), nicNodeTemplate);
+ }
+ }
+ }
+ }
+ }
+
+ private String getSubstitutionComponentNodeTemplateId(String componentName) {
+ //TODO: Confirm if anything else is needed here
+ return componentName;
+ }
+
+ private String getNicNodeTemplateId(String nicName) {
+ StringBuilder builder = new StringBuilder();
+ builder.append(nicName);
+ builder.append(PORT_NODE_TEMPLATE_ID_SUFFIX);
+ return builder.toString();
+ }
+
+ private String createComponentDefinitionNodeTemplate(ServiceTemplate substitutionServiceTemplate,
+ String componentName) {
+ NodeTemplate nodeTemplate = new NodeTemplate();
+ String localNodeTypeId = getLocalNodeTypeId(componentName);
+ nodeTemplate.setType(localNodeTypeId);
+ DataModelUtil.addNodeTemplate(substitutionServiceTemplate, componentName, nodeTemplate);
+ return localNodeTypeId;
+ }
+
+ private void createLocalNodeType(ServiceTemplate substitutionServiceTemplate,
+ String localNodeTypeId) {
+ NodeType localNodeType = new NodeType();
+ localNodeType.setDerived_from(ToscaNodeType.COMPUTE);
+ DataModelUtil.addNodeType(substitutionServiceTemplate, localNodeTypeId, localNodeType );
+ }
+
+ private String getLocalNodeTypeId(String componentName) {
+ return ToscaNodeType.VFC_NODE_TYPE_PREFIX + componentName;
+ }
+
+ private ServiceTemplate createInitSubstitutionServiceTemplate(String serviceTemplateName) {
+ ServiceTemplate substitutionServiceTemplate = new ServiceTemplate();
+ Map<String, String> templateMetadata = new HashMap<>();
+ substitutionServiceTemplate.setTosca_definitions_version(ToscaConstants
+ .TOSCA_DEFINITIONS_VERSION);
+ templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, serviceTemplateName);
+ substitutionServiceTemplate.setMetadata(templateMetadata);
+ substitutionServiceTemplate.setTopology_template(new TopologyTemplate());
+ substitutionServiceTemplate.setImports(getImports());
+ return substitutionServiceTemplate;
+ }
+
+ private void handleSubstitutionMapping(ServiceTemplate substitutionServiceTemplate,
+ ToscaServiceModel toscaServiceModel,
+ String substitutionNodeTypeId,
+ String componentName) {
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ ServiceTemplate globalSubstitutionServiceTemplate = fetchGlobalSubstitutionServiceTemplate();
+ NodeType substitutionNodeType =
+ createGlobalSubstitutionNodeType(substitutionServiceTemplate, componentName);
+ DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId,
+ substitutionNodeType);
+
+ Map<String, Map<String, List<String>>> substitutionMapping =
+ GeneratorUtils.getSubstitutionNodeTypeExposedConnectionPoints(substitutionNodeType,
+ substitutionServiceTemplate, toscaServiceModel);
+ if (Objects.nonNull(substitutionMapping)) {
+ //add substitution mapping after capability and requirement expose calculation
+ substitutionServiceTemplate.getTopology_template().setSubstitution_mappings(
+ DataModelUtil.createSubstitutionTemplateSubMapping(substitutionNodeTypeId,
+ substitutionNodeType, substitutionMapping));
+ }
+ }
+
+ //*************** CREATE GLOBAL SUBSTITUTION SERVICE TEMPLATE **********************
+
+ private ServiceTemplate createGlobalSubstitutionServiceTemplate(ServiceTemplate
+ substitutionServiceTemplate,
+ String componentName) {
+ ServiceTemplate globalSubstitutionServiceTemplate = fetchGlobalSubstitutionServiceTemplate();
+ NodeType substitutionNodeType =
+ createGlobalSubstitutionNodeType(substitutionServiceTemplate, componentName);
+ String substitutionNodeTypeId = getSubstitutionNodeTypeId(componentName);
+ DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId,
+ substitutionNodeType);
+ return globalSubstitutionServiceTemplate;
+ }
+
+ private ServiceTemplate createInitGlobalSubstitutionServiceTemplate() {
+ ServiceTemplate globalSubstitutionServiceTemplate = new ServiceTemplate();
+ Map<String, String> templateMetadata = new HashMap<>();
+ globalSubstitutionServiceTemplate.setTosca_definitions_version(ToscaConstants
+ .TOSCA_DEFINITIONS_VERSION);
+ templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME,
+ Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ globalSubstitutionServiceTemplate.setMetadata(templateMetadata);
+ globalSubstitutionServiceTemplate.setImports(getImports());
+ return globalSubstitutionServiceTemplate;
+ }
+
+ private NodeType createGlobalSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate,
+ String componentName) {
+ NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
+ .createInitSubstitutionNodeType(substitutionServiceTemplate,
+ ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
+ substitutionNodeType.setProperties(
+ getManualVspSubstitutionNodeTypeProperties(substitutionNodeType, componentName));
+ return substitutionNodeType;
+ }
+
+ private Map<String, PropertyDefinition> getManualVspSubstitutionNodeTypeProperties(
+ NodeType substitutionNodeType, String componentName) {
+ //Create num_cpus property
+ PropertyDefinition numCpus = new PropertyDefinition();
+ numCpus.setType(PropertyType.INTEGER.getDisplayName());
+ numCpus.setDescription(NUM_CPUS_PROP_DESC_PREFIX + componentName);
+ numCpus.setRequired(true);
+ //Create disk_size property
+ PropertyDefinition diskSize = new PropertyDefinition();
+ diskSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName());
+ diskSize.setDescription(DISK_SIZE_PROP_DESC_PREFIX + componentName);
+ diskSize.setRequired(true);
+ //Create mem_size property
+ PropertyDefinition memSize = new PropertyDefinition();
+ memSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName());
+ memSize.setDescription(MEM_SIZE_PROP_DESC_PREFIX + componentName);
+ memSize.setRequired(true);
+
+ Map<String, PropertyDefinition> manualVspProperties = new LinkedHashMap<>();
+ manualVspProperties.put(NUM_CPUS, numCpus);
+ manualVspProperties.put(DISK_SIZE, diskSize);
+ manualVspProperties.put(MEM_SIZE, memSize);
+
+ return manualVspProperties;
+ }
+
+ private String getSubstitutionNodeTypeId(String componentName) {
+ return ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName;
+ }
+
+ /**
+ * Fetch global substitution service template service template.
+ *
+ * @return the global substitution service template
+ */
+ private ServiceTemplate fetchGlobalSubstitutionServiceTemplate() {
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ generatedServiceTemplates.get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ if (Objects.isNull(globalSubstitutionServiceTemplate)) {
+ globalSubstitutionServiceTemplate = createInitGlobalSubstitutionServiceTemplate();
+ generatedServiceTemplates.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ globalSubstitutionServiceTemplate);
+ }
+ return globalSubstitutionServiceTemplate;
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
new file mode 100644
index 0000000000..c13997b47c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
@@ -0,0 +1,244 @@
+package org.openecomp.sdc.generator.core.utils;
+
+import static org.openecomp.sdc.tosca.services.DataModelUtil.addSubstitutionNodeTypeRequirements;
+
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+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.LoggerTragetServiceName;
+import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+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.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The type Generator utils.
+ */
+public class GeneratorUtils {
+
+ public static List<String> supportedCapabilities = new ArrayList<>();
+ public static List<String> supportedRequirements = new ArrayList<>();
+ protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ static {
+ //TODO : Read from configuration
+ supportedCapabilities.addAll(Arrays.asList("host", "os", "endpoint", "scalable"));
+ supportedRequirements.addAll(Arrays.asList("link"));
+ }
+
+
+ /**
+ * Add service template to tosca service model.
+ *
+ * @param toscaServiceModel the tosca service model
+ * @param serviceTemplate the service template
+ */
+ public static void addServiceTemplateToToscaServiceModel(ToscaServiceModel toscaServiceModel,
+ ServiceTemplate serviceTemplate) {
+
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
+ if (!serviceTemplates.containsKey(serviceTemplateFileName)) {
+ ToscaUtil.addServiceTemplateToMapWithKeyFileName(serviceTemplates, serviceTemplate);
+ }
+ toscaServiceModel.setServiceTemplates(serviceTemplates);
+ }
+
+ /**
+ * Gets substitution node type exposed connection points.
+ *
+ * @param substitutionNodeType the substitution node type
+ * @param substitutionServiceTemplate the substitution service template
+ * @param toscaServiceModel the tosca service model
+ * @return the substitution node type exposed connection points
+ */
+ public static Map<String, Map<String, List<String>>>
+ getSubstitutionNodeTypeExposedConnectionPoints(NodeType substitutionNodeType,
+ ServiceTemplate substitutionServiceTemplate,
+ ToscaServiceModel toscaServiceModel) {
+
+ Map<String, NodeTemplate> nodeTemplates =
+ substitutionServiceTemplate.getTopology_template().getNode_templates();
+ String nodeTemplateId;
+ NodeTemplate nodeTemplate;
+ String nodeType;
+ Map<String, Map<String, List<String>>> substitutionMapping = new HashMap<>();
+ if (nodeTemplates == null) {
+ return substitutionMapping;
+ }
+
+ try {
+ Map<String, List<String>> capabilitySubstitutionMapping = new HashMap<>();
+ Map<String, List<String>> requirementSubstitutionMapping = new HashMap<>();
+ substitutionMapping.put("capability", capabilitySubstitutionMapping);
+ substitutionMapping.put("requirement", requirementSubstitutionMapping);
+ List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinition;
+ Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment;
+ List<Map<String, RequirementDefinition>> exposedRequirementsDefinition;
+ Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinition =
+ new HashMap<>();
+ Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition = new HashMap<>();
+ Map<String, CapabilityDefinition> exposedCapabilitiesDefinition;
+
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
+ nodeTemplateId = entry.getKey();
+ nodeTemplate = entry.getValue();
+ nodeType = nodeTemplate.getType();
+ NodeType flatNodeType = (NodeType) toscaAnalyzerService
+ .getFlatEntity(ToscaElementTypes.NODE_TYPE, nodeType, substitutionServiceTemplate,
+ toscaServiceModel);
+ // get requirements
+ nodeTypeRequirementsDefinition =
+ getNodeTypeRequirements(flatNodeType, nodeTemplateId, substitutionServiceTemplate,
+ requirementSubstitutionMapping);
+ nodeTemplateRequirementsAssignment =
+ DataModelUtil.getNodeTemplateRequirements(nodeTemplate);
+ fullFilledRequirementsDefinition.put(nodeTemplateId, nodeTemplateRequirementsAssignment);
+ //set substitution node type requirements
+ exposedRequirementsDefinition =
+ toscaAnalyzerService.calculateExposedRequirements(nodeTypeRequirementsDefinition,
+ nodeTemplateRequirementsAssignment);
+
+
+ //Filter unsupported requirements
+ Iterator<Map<String, RequirementDefinition>> iterator =
+ exposedRequirementsDefinition.iterator();
+ while (iterator.hasNext()) {
+ Map<String, RequirementDefinition> requirementDefinitionMap = iterator.next();
+ for (Map.Entry<String, RequirementDefinition> requirementDefinitionEntry :
+ requirementDefinitionMap.entrySet()) {
+ String requirementKey = requirementDefinitionEntry.getKey();
+ if (!supportedRequirements.contains(requirementKey)) {
+ iterator.remove();
+ }
+ }
+ }
+ addSubstitutionNodeTypeRequirements(substitutionNodeType, exposedRequirementsDefinition,
+ nodeTemplateId);
+ //get capabilities
+ addNodeTypeCapabilitiesToSubMapping(nodeTypeCapabilitiesDefinition,
+ capabilitySubstitutionMapping, nodeType,
+ nodeTemplateId, substitutionServiceTemplate, toscaServiceModel);
+ }
+
+ exposedCapabilitiesDefinition =
+ toscaAnalyzerService.calculateExposedCapabilities(nodeTypeCapabilitiesDefinition,
+ fullFilledRequirementsDefinition);
+
+ //Filter unsupported capabilities
+ Iterator<Map.Entry<String, CapabilityDefinition>> iterator = exposedCapabilitiesDefinition
+ .entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, CapabilityDefinition> capabilityDefinitionEntry = iterator.next();
+ //Expected Capability is of the format <capabilityId>_<componentName>
+ String capabilityKey = capabilityDefinitionEntry.getKey().split("_")[0];
+ if (!supportedCapabilities.contains(capabilityKey)) {
+ iterator.remove();
+ }
+ }
+
+ DataModelUtil.addNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
+ } catch (Exception ex) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+ LoggerTragetServiceName.GENERATE_MANUAL_VSP_TOSCA, ErrorLevel.INFO.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Error occured in get node type exposed "
+ + "points");
+ return null;
+ }
+ return substitutionMapping;
+ }
+
+ /**
+ * Gets node type requirements.
+ *
+ * @param flatNodeType the flat node type
+ * @param templateName the template name
+ * @param serviceTemplate the service template
+ * @param requirementSubstitutionMapping the requirement substitution mapping
+ * @return the node type requirements
+ */
+ public static List<Map<String, RequirementDefinition>> getNodeTypeRequirements(
+ NodeType flatNodeType,
+ String templateName,
+ ServiceTemplate serviceTemplate,
+ Map<String, List<String>> requirementSubstitutionMapping) {
+ List<Map<String, RequirementDefinition>> requirementList = new ArrayList<>();
+ List<String> requirementMapping;
+ if (flatNodeType.getRequirements() != null) {
+ for (Map<String, RequirementDefinition> requirementMap : flatNodeType.getRequirements()) {
+ for (Map.Entry<String, RequirementDefinition> requirementNodeEntry : requirementMap
+ .entrySet()) {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ RequirementDefinition requirementNodeEntryValue = toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(requirementNodeEntry.getValue()),
+ RequirementDefinition.class);
+ if (requirementNodeEntryValue.getOccurrences() == null) {
+ requirementNodeEntryValue.setOccurrences(new Object[]{1, 1});
+ }
+ Map<String, RequirementDefinition> requirementDef = new HashMap<>();
+ requirementDef.put(requirementNodeEntry.getKey(), requirementNodeEntryValue);
+ DataModelUtil.addRequirementToList(requirementList, requirementDef);
+ requirementMapping = new ArrayList<>();
+ requirementMapping.add(templateName);
+ requirementMapping.add(requirementNodeEntry.getKey());
+ requirementSubstitutionMapping
+ .put(requirementNodeEntry.getKey() + "_" + templateName, requirementMapping);
+ if (requirementNodeEntryValue.getNode() == null) {
+ requirementNodeEntryValue.setOccurrences(new Object[]{1, 1});
+ }
+ }
+ }
+ }
+ return requirementList;
+ }
+
+ private static void addNodeTypeCapabilitiesToSubMapping(
+ Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
+ Map<String, List<String>> capabilitySubstitutionMapping, String type, String templateName,
+ ServiceTemplate substitutionServiceTemplate, ToscaServiceModel toscaServiceModel) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ NodeType flatNodeType = (NodeType) toscaAnalyzerService
+ .getFlatEntity(ToscaElementTypes.NODE_TYPE, type, substitutionServiceTemplate,
+ toscaServiceModel);
+ String capabilityKey;
+ List<String> capabilityMapping;
+ if (flatNodeType.getCapabilities() != null) {
+ for (Map.Entry<String, CapabilityDefinition> capabilityNodeEntry : flatNodeType
+ .getCapabilities()
+ .entrySet()) {
+ capabilityKey = capabilityNodeEntry.getKey() + "_" + templateName;
+ nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityNodeEntry.getValue().clone());
+ capabilityMapping = new ArrayList<>();
+ capabilityMapping.add(templateName);
+ capabilityMapping.add(capabilityNodeEntry.getKey());
+ capabilitySubstitutionMapping.put(capabilityKey, capabilityMapping);
+ }
+ }
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/resources/config-manualVspToscaGenerator.json b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/resources/config-manualVspToscaGenerator.json
new file mode 100644
index 0000000000..b7d49cf9be
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/resources/config-manualVspToscaGenerator.json
@@ -0,0 +1,5 @@
+{
+ "_config": {
+ "namespace": "manualVspToscaGenerator"
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/pom.xml b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/pom.xml
new file mode 100644
index 0000000000..4cf38c64da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/pom.xml
@@ -0,0 +1,22 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+ <name>openecomp-sdc-tosca-generator-lib</name>
+ <artifactId>openecomp-sdc-tosca-generator-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-tosca-generator-api</module>
+ <module>openecomp-sdc-tosca-generator-core</module>
+ </modules>
+
+ <dependencies>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml
index 7e467d01d8..1de854233a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml
@@ -41,6 +41,11 @@
<artifactId>openecomp-tosca-lib</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
<!-- need to be changed to sdk -->
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..e44d37ff8f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup
@@ -0,0 +1,70 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>att-sdc-translator-impl</name>
+ <artifactId>att-sdc-translator-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <!-- need to be changed to sdk -->
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency-->
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</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 56f0fc2bd6..cac3c4ce08 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
@@ -48,7 +48,7 @@ import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+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;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d46dd3f442
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup
@@ -0,0 +1,68 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-translator-api</name>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>1707.0.0-SNAPSHOT</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-configuration-management-api</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/src/main/java/org/openecomp/core/translator/datatypes/TranslatorOutput.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/src/main/java/org/openecomp/core/translator/datatypes/TranslatorOutput.java
index c146f31136..832f959d7e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/src/main/java/org/openecomp/core/translator/datatypes/TranslatorOutput.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/src/main/java/org/openecomp/core/translator/datatypes/TranslatorOutput.java
@@ -30,6 +30,7 @@ import java.util.Map;
public class TranslatorOutput {
private Map<String, List<ErrorMessage>> errorMessages;
private ToscaServiceModel toscaServiceModel;
+ private ToscaServiceModel nonUnifiedToscaServiceModel;
public Map<String, List<ErrorMessage>> getErrorMessages() {
return errorMessages;
@@ -46,4 +47,13 @@ public class TranslatorOutput {
public void setToscaServiceModel(ToscaServiceModel toscaServiceModel) {
this.toscaServiceModel = toscaServiceModel;
}
+
+ public ToscaServiceModel getNonUnifiedToscaServiceModel() {
+ return nonUnifiedToscaServiceModel;
+ }
+
+ public void setNonUnifiedToscaServiceModel(
+ ToscaServiceModel nonUnifiedToscaServiceModel) {
+ this.nonUnifiedToscaServiceModel = nonUnifiedToscaServiceModel;
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml
index 9a80aa9c24..60fa28724c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml
@@ -16,6 +16,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..aea451e1ca
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup
@@ -0,0 +1,75 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-translator-core</name>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>att-sdc-validation-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
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 7401ac5f2c..0e6610d5cd 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
@@ -42,6 +42,8 @@ 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;
@@ -68,8 +70,8 @@ public class TranslationContext {
config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
try {
globalServiceTemplates = GlobalTypesGenerator.getGlobalTypesServiceTemplate();
- } catch (Exception e) {
- throw new RuntimeException("Failed to load GlobalTypes", e);
+ } 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);
@@ -85,7 +87,6 @@ public class TranslationContext {
}
- private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
private ManifestFile manifest;
public static List getEnrichPortResourceProperties() {
@@ -114,6 +115,8 @@ public class TranslationContext {
private Map<String, Map<String, String>> usedHeatPseudoParams = new HashMap<>();
//Consolidation data gathered for Unified TOSCA model
private ConsolidationData consolidationData = new ConsolidationData();
+ private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
+ private Set<String> unifiedHandledServiceTemplates = new HashSet<>();
public static Map<String, ImplementationConfiguration>
getSupportedConsolidationComputeResources() {
@@ -184,20 +187,23 @@ public class TranslationContext {
public Optional<String> getUnifiedNestedNodeTemplateId(String serviceTemplateName,
String nestedNodeTemplateId) {
return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
- :this.unifiedSubstitutionData.get(serviceTemplateName).getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
+ : this.unifiedSubstitutionData.get(serviceTemplateName)
+ .getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
}
public void addUnifiedNestedNodeTypeId(String serviceTemplateName,
- String nestedNodeTypeId,
- String unifiedNestedNodeTypeId){
+ String nestedNodeTypeId,
+ String unifiedNestedNodeTypeId) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName).addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
+ this.unifiedSubstitutionData.get(serviceTemplateName)
+ .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
}
public Optional<String> getUnifiedNestedNodeTypeId(String serviceTemplateName,
String nestedNodeTemplateId) {
return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
- : this.unifiedSubstitutionData.get(serviceTemplateName).getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
+ : this.unifiedSubstitutionData.get(serviceTemplateName)
+ .getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
}
public ConsolidationData getConsolidationData() {
@@ -323,7 +329,7 @@ public class TranslationContext {
}
private void addHeatSharedResourcesByParam(String parameterName,
- TranslatedHeatResource translatedHeatResource) {
+ TranslatedHeatResource translatedHeatResource) {
this.heatSharedResourcesByParam.put(parameterName, translatedHeatResource);
}
@@ -385,9 +391,10 @@ public class TranslationContext {
* @param substitutionServiceTemplateNodeTemplateId the node template id in the substitution
* service template
*/
- public void addSubstitutionServiceTemplateUnifiedSubstitutionData(String serviceTemplateFileName,
- String originalNodeTemplateId,
- String substitutionServiceTemplateNodeTemplateId) {
+ public void addSubstitutionServiceTemplateUnifiedSubstitutionData(
+ String serviceTemplateFileName,
+ String originalNodeTemplateId,
+ String substitutionServiceTemplateNodeTemplateId) {
Map<String, String> nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = this
.getUnifiedSubstitutionData()
@@ -433,22 +440,49 @@ public class TranslationContext {
}
public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
- String computeType){
+ String computeType) {
return this.unifiedSubstitutionData.get(serviceTemplateName)
.getHandledNestedComputeNodeTemplateIndex(computeType);
}
public void updateHandledComputeType(String serviceTemplateName,
- String nestedServiceTemplateFileName,
- String handledComputeType){
+ String handledComputeType,
+ String nestedServiceTemplateFileName) {
+ String globalSTName =
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ this.unifiedSubstitutionData.putIfAbsent(
+ globalSTName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(globalSTName)
+ .addHandledComputeType(handledComputeType);
+ this.unifiedSubstitutionData.get(globalSTName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
+
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .addHandledComputeType(nestedServiceTemplateFileName, handledComputeType);
+ this.unifiedSubstitutionData.get(serviceTemplateName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
+ }
+
+ public void addHandledComputeTypeInServiceTemplate(String serviceTemplateName,
+ String handledComputeType){
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addHandledComputeType(handledComputeType);
+ }
+
+ public boolean isComputeTypeHandledInServiceTemplate(String serviceTemplateName,
+ String computeType) {
+ return !Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))
+ && this.unifiedSubstitutionData.get(serviceTemplateName)
+ .isComputeTypeHandledInServiceTemplate(computeType);
+ }
+
+ public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
+ String nestedServiceTemplateName,
+ String computeType){
+ return this.unifiedSubstitutionData.get(serviceTemplateName)
+ .getHandledNestedComputeNodeTemplateIndex(computeType);
}
public boolean isNestedServiceTemplateWasHandled(String serviceTemplateName,
- String nestedServiceTemplateFileName){
- if(Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))){
+ String nestedServiceTemplateFileName) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
return false;
}
return this.unifiedSubstitutionData.get(serviceTemplateName)
@@ -465,18 +499,48 @@ public class TranslationContext {
return this.unifiedSubstitutionData.get(globalName).getAllRelatedNestedNodeTypeIds();
}
- public void addNestedFileToUsedNestedComputeType(String serviceTemplateName,
- String nestedServiceTemplateFileName,
- String computeType){
+ public boolean isUnifiedHandledServiceTemplate(ServiceTemplate serviceTemplate) {
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ if (unifiedHandledServiceTemplates.contains(serviceTemplateFileName)) {
+ return true;
+ }
+ return false;
+ }
+
+
+
+ public void addUnifiedHandledServiceTeamplte(ServiceTemplate serviceTemplate) {
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ this.unifiedHandledServiceTemplates.add(serviceTemplateFileName);
+ }
+
+ public boolean isNestedNodeWasHandled(String serviceTemplateName,
+ String nestedNodeTemplateId) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return false;
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName)
+ .isNestedNodeWasHandled(nestedNodeTemplateId);
+ }
+
+ public void addNestedNodeAsHandled(String serviceTemplateName,
+ String nestedNodeTemplateId) {
this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName)
+ .addHandledNestedNodes(nestedNodeTemplateId);
+ }
- this.unifiedSubstitutionData.get(serviceTemplateName).addNestedFileToUsedNestedComputeType
- (computeType, nestedServiceTemplateFileName);
+ public void updateUsedTimesForNestedComputeNodeType(String serviceTemplateName,
+ String computeType) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+
+ this.unifiedSubstitutionData.get(serviceTemplateName)
+ .updateUsedTimesForNestedComputeNodeType(computeType);
}
public int getGlobalNodeTypeIndex(String serviceTemplateName,
- String computeType){
- if(Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))){
+ String computeType) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
return 0;
}
return this.unifiedSubstitutionData.get(serviceTemplateName).getGlobalNodeTypeIndex
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedSubstitutionData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedSubstitutionData.java
index c7fb7bb75a..7b461d2903 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedSubstitutionData.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedSubstitutionData.java
@@ -7,6 +7,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
@@ -25,11 +26,13 @@ public class UnifiedSubstitutionData {
private Map<String, Integer> handledComputeTypesInNestedSubstitutionTemplate =
new HashMap<>();
//Key - nested compute type, Value - list of nested files that the compute type is present
- private Map<String, Set<String>> handledNestedComputeTypesNestedFiles = new HashMap<>();
+ private Map<String, Integer> handledNestedComputeTypesNestedFiles = new HashMap<>();
//Key - new property id, Value - orig property value
private Map<String, Object> newParameterIdsToPropertiesFromOrigNodeTemplate = new HashMap<>();
//handled nested files
private Set<String> handledNestedFiles = new HashSet<>();
+ //handled nested nodes
+ private Set<String> handledNestedNodes = new HashSet<>();
public Map<String, String> getNodesRelatedAbstractNode() {
return nodesRelatedAbstractNode;
@@ -40,6 +43,10 @@ public class UnifiedSubstitutionData {
this.nodesRelatedAbstractNode = nodesRelatedAbstractNode;
}
+ public void addHandledNestedNodes(String handledNestedNodeId) {
+ this.handledNestedNodes.add(handledNestedNodeId);
+ }
+
public Map<String, String> getNodesRelatedSubstitutionServiceTemplateNode() {
return nodesRelatedSubstitutionServiceTemplateNode;
}
@@ -114,8 +121,7 @@ public class UnifiedSubstitutionData {
return new HashSet<>(this.nestedNodeTypeRelatedUnifiedTranslatedId.values());
}
- public void addHandledComputeType(String nestedServiceTemplateFileName,
- String handledComputeType) {
+ public void addHandledComputeType(String handledComputeType) {
if (this.handledComputeTypesInNestedSubstitutionTemplate.containsKey(handledComputeType)) {
Integer timesHandled =
@@ -123,7 +129,7 @@ public class UnifiedSubstitutionData {
this.handledComputeTypesInNestedSubstitutionTemplate
.put(handledComputeType, timesHandled + 1);
} else {
- this.handledNestedFiles.add(nestedServiceTemplateFileName);
+ //this.handledNestedFiles.add(nestedServiceTemplateFileName);
handledComputeTypesInNestedSubstitutionTemplate.put(handledComputeType, 0);
}
}
@@ -134,23 +140,38 @@ public class UnifiedSubstitutionData {
public int getHandledNestedComputeNodeTemplateIndex(String computeType) {
return this.handledComputeTypesInNestedSubstitutionTemplate.containsKey(computeType) ?
- this.handledComputeTypesInNestedSubstitutionTemplate.get(computeType):
- 0;
+ this.handledComputeTypesInNestedSubstitutionTemplate.get(computeType) : 0;
+ }
+
+ public void addHandlesNestedServiceTemplate(String nestedServiceTemplateFileName){
+ this.handledNestedFiles.add(nestedServiceTemplateFileName);
}
public boolean isNestedServiceTemplateWasHandled(String nestedServiceTemplateFileName) {
return this.handledNestedFiles.contains(nestedServiceTemplateFileName);
}
- public void addNestedFileToUsedNestedComputeType(String computeType,
- String nestedServiceTemplateFileName){
- this.handledNestedComputeTypesNestedFiles.putIfAbsent(computeType, new HashSet<>());
- this.handledNestedComputeTypesNestedFiles.get(computeType).add(nestedServiceTemplateFileName);
+ public void updateUsedTimesForNestedComputeNodeType(String computeType) {
+ this.handledNestedComputeTypesNestedFiles.putIfAbsent(computeType, 0);
+
+ Integer usedNumber = this.handledNestedComputeTypesNestedFiles.get(computeType);
+ this.handledNestedComputeTypesNestedFiles.put(computeType, usedNumber + 1);
+
+ }
+
+ public int getGlobalNodeTypeIndex(String computeType) {
+ return Objects.isNull(this.handledNestedComputeTypesNestedFiles.get(computeType))
+ || this.handledNestedComputeTypesNestedFiles.get(computeType)== 0 ? 0
+ : this.handledNestedComputeTypesNestedFiles.get(computeType);
}
- public int getGlobalNodeTypeIndex(String computeType){
- return this.handledNestedComputeTypesNestedFiles.get(computeType).size() == 1 ? 0:
- this.handledNestedComputeTypesNestedFiles.get(computeType).size() - 1;
+ public boolean isNestedNodeWasHandled(String nestedNodeId) {
+ return this.handledNestedNodes.contains(nestedNodeId);
+ }
+
+
+ public Map<String, Object> getAllNewPropertyInputParamIds(){
+ return this.newParameterIdsToPropertiesFromOrigNodeTemplate;
}
public void addNewPropertyIdToNodeTemplate(String newPropertyId,
@@ -168,7 +189,4 @@ public class UnifiedSubstitutionData {
return Optional.of(newParameterIdsToPropertiesFromOrigNodeTemplate.get(newPropertyId));
}
- public Map<String, Object> getAllNewPropertyInputParamIds(){
- return this.newParameterIdsToPropertiesFromOrigNodeTemplate;
- }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java
index 496da78f76..20cc3be3cd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ConsolidationData.java
@@ -1,9 +1,5 @@
package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
/**
* The type Consolidation data.
*/
@@ -15,11 +11,6 @@ public class ConsolidationData {
//Port Consolidation data
private PortConsolidationData portConsolidationData;
- //Key - Service Template file name
- //value - List of the abstract/substitute node template id
- private Map<String, List<String>> substituteNodeTemplates; // todo - remove this one and use
- // nestedConsolidationData instead
-
//Nested Consolidation data
private NestedConsolidationData nestedConsolidationData;
@@ -31,7 +22,6 @@ public class ConsolidationData {
computeConsolidationData = new ComputeConsolidationData();
portConsolidationData = new PortConsolidationData();
nestedConsolidationData = new NestedConsolidationData();
- substituteNodeTemplates = new HashMap<>();
}
/**
@@ -72,24 +62,6 @@ public class ConsolidationData {
}
/**
- * Gets substitute node templates.
- *
- * @return the substitute node templates
- */
- public Map<String, List<String>> getSubstituteNodeTemplates() {
- return substituteNodeTemplates;
- }
-
- /**
- * Sets substitute node templates.
- *
- * @param substituteNodeTemplates the substitute node templates
- */
- public void setSubstituteNodeTemplates(Map<String, List<String>> substituteNodeTemplates) {
- this.substituteNodeTemplates = substituteNodeTemplates;
- }
-
- /**
* Gets nested consolidation data.
*
* @return the nested consolidation data
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 148e754cfd..4e92372b7e 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
@@ -271,10 +271,7 @@ public class ConsolidationDataUtil {
targetResource, translateTo.getContext());
// Add resource dependency information in nodesConnectedIn if the target node
// is a consolidation entity
- if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())
- && HeatToToscaUtil
- .isValidDependsOnCandidate(heatOrchestrationTemplate, sourceResource,
- targetResource, consolidationEntityType, translationContext)) {
+ if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())) {
ConsolidationDataUtil.updateNodesConnectedIn(translateTo,
nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
requirementId, requirementAssignment);
@@ -282,10 +279,7 @@ public class ConsolidationDataUtil {
//Add resource dependency information in nodesConnectedOut if the source node
//is a consolidation entity
- if (isConsolidationEntity(consolidationEntityType.getSourceEntityType())
- && HeatToToscaUtil
- .isValidDependsOnCandidate(heatOrchestrationTemplate, sourceResource,
- targetResource, consolidationEntityType, translationContext)) {
+ if (isConsolidationEntity(consolidationEntityType.getSourceEntityType())) {
ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
requirementId, requirementAssignment);
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java
index c2de58fd5a..8e6e9024fb 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java
@@ -1,19 +1,12 @@
package org.openecomp.sdc.translator.services.heattotosca;
-import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isComputeResource;
-import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isPortResource;
-import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isVolumeResource;
-
-import org.apache.commons.lang3.ObjectUtils;
-import org.openecomp.core.utilities.yaml.YamlUtil;
-import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
import org.openecomp.sdc.heat.datatypes.model.Resource;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
-import java.util.Collection;
-import java.util.Objects;
-import java.util.Optional;
+import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isComputeResource;
+import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isPortResource;
+import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isVolumeResource;
/**
* The enum Entity type.
@@ -23,6 +16,8 @@ public enum ConsolidationEntityType {
PORT,
VOLUME,
NESTED,
+ //Simple nested VFC (nested file with one compute) or a complex VFC (nested ST with more than
+ //one compute)
VFC_NESTED,
SUB_PORT,
OTHER;
@@ -64,21 +59,11 @@ public enum ConsolidationEntityType {
} else if (isVolumeResource(resource)) {
return ConsolidationEntityType.VOLUME;
} else if (HeatToToscaUtil.isNestedResource(resource)) {
- Optional<String> nestedHeatFileName = HeatToToscaUtil.getNestedHeatFileName(resource);
- if (nestedHeatFileName.isPresent()) {
- HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
- .yamlToObject(context.getFileContent(nestedHeatFileName.get()),
- HeatOrchestrationTemplate.class);
- if (Objects.nonNull(nestedHeatOrchestrationTemplate.getResources())) {
- for (String innerResourceId : nestedHeatOrchestrationTemplate.getResources().keySet()) {
- if (ConsolidationDataUtil
- .isComputeResource(nestedHeatOrchestrationTemplate, innerResourceId)) {
- return ConsolidationEntityType.VFC_NESTED;
- }
- }
- }
+ if (HeatToToscaUtil.isNestedVfcResource(resource, context)) {
+ return ConsolidationEntityType.VFC_NESTED;
+ } else {
+ return ConsolidationEntityType.NESTED;
}
- return ConsolidationEntityType.NESTED;
} else {
return ConsolidationEntityType.OTHER;
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
index 9566e222ff..16a6301968 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
@@ -48,8 +48,8 @@ public class ConsolidationService {
}
- void mainServiceTemplateConsolidation(ServiceTemplate serviceTemplate,
- TranslationContext translationContext) {
+ void serviceTemplateConsolidation(ServiceTemplate serviceTemplate,
+ TranslationContext translationContext) {
ConsolidationData consolidationData = translationContext.getConsolidationData();
@@ -90,7 +90,7 @@ public class ConsolidationService {
}
- private Map<String, String> getConsolidationEntityIdToType(ServiceTemplate serviceTemplate,
+ public static Map<String, String> getConsolidationEntityIdToType(ServiceTemplate serviceTemplate,
ConsolidationData consolidationData) {
Map<String, String> consolidationEntityIdToType = new HashMap<>();
@@ -101,21 +101,24 @@ public class ConsolidationService {
FilePortConsolidationData filePortConsolidationData =
consolidationData.getPortConsolidationData()
.getFilePortConsolidationData(serviceTemplateFileName);
-
- for (String computeType : fileComputeConsolidationData.getAllComputeTypes()) {
- TypeComputeConsolidationData typeComputeConsolidationData =
- fileComputeConsolidationData.getTypeComputeConsolidationData(computeType);
- Set<String> computeNodeTemplateIds =
- typeComputeConsolidationData.getAllComputeNodeTemplateIds();
- for (String computeNodeTemplateId : computeNodeTemplateIds) {
- consolidationEntityIdToType.put(computeNodeTemplateId, computeType);
+ if(Objects.nonNull(fileComputeConsolidationData)) {
+ for (String computeType : fileComputeConsolidationData.getAllComputeTypes()) {
+ TypeComputeConsolidationData typeComputeConsolidationData =
+ fileComputeConsolidationData.getTypeComputeConsolidationData(computeType);
+ Set<String> computeNodeTemplateIds =
+ typeComputeConsolidationData.getAllComputeNodeTemplateIds();
+ for (String computeNodeTemplateId : computeNodeTemplateIds) {
+ consolidationEntityIdToType.put(computeNodeTemplateId, computeType);
+ }
}
}
- Set<String> portNodeTemplateIds = filePortConsolidationData.getAllPortNodeTemplateIds();
- for (String portNodeTemplateId : portNodeTemplateIds) {
- consolidationEntityIdToType
- .put(portNodeTemplateId, ConsolidationDataUtil.getPortType(portNodeTemplateId));
+ if(Objects.nonNull(filePortConsolidationData)) {
+ Set<String> portNodeTemplateIds = filePortConsolidationData.getAllPortNodeTemplateIds();
+ for (String portNodeTemplateId : portNodeTemplateIds) {
+ consolidationEntityIdToType
+ .put(portNodeTemplateId, ConsolidationDataUtil.getPortType(portNodeTemplateId));
+ }
}
return consolidationEntityIdToType;
@@ -287,8 +290,9 @@ public class ConsolidationService {
return new ArrayList<>(firstMap.values()).equals(new ArrayList<>(secondMap.values()));
}
- private Set<GetAttrFuncData> getEntityGetAttrFuncAsSet(String portType,
- EntityConsolidationData entityConsolidationData) {
+ private Set<GetAttrFuncData> getEntityGetAttrFuncAsSet(
+ String portType,
+ EntityConsolidationData entityConsolidationData) {
Set<GetAttrFuncData> getAttrFuncDataFromPortsWithSameType = new HashSet<>();
Map<String, List<GetAttrFuncData>> nodesGetAttrOut =
@@ -506,8 +510,8 @@ public class ConsolidationService {
private boolean checkGroupIdsRelations(EntityConsolidationData startingEntity,
EntityConsolidationData currentEntity) {
- if (CollectionUtils.isEmpty(startingEntity.getGroupIds()) &&
- CollectionUtils.isEmpty(currentEntity.getGroupIds())) {
+ if (CollectionUtils.isEmpty(startingEntity.getGroupIds())
+ && CollectionUtils.isEmpty(currentEntity.getGroupIds())) {
return true;
}
@@ -710,7 +714,7 @@ public class ConsolidationService {
}
public void substitutionServiceTemplateConsolidation(String substituteNodeTemplateId,
- ServiceTemplate mainServiceTemplate,
+ ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
TranslationContext translationContext) {
@@ -720,24 +724,28 @@ public class ConsolidationService {
translationContext.getConsolidationData().getComputeConsolidationData()
.getFileComputeConsolidationData(
ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate));
- boolean consolidationRuleResult =
+ boolean substitutionConsolidationRuleResult =
substitutionServiceTemplateConsolidationRule(substitutionServiceTemplate,
fileComputeConsolidationData, translationContext);
- if (consolidationRuleResult) {
+ if (substitutionConsolidationRuleResult) {
List<UnifiedCompositionData> unifiedCompositionDataList =
createSubstitutionUnifiedCompositionDataList(substituteNodeTemplateId,
- mainServiceTemplate, consolidationData);
+ serviceTemplate, consolidationData);
unifiedCompositionService
- .createUnifiedComposition(mainServiceTemplate, substitutionServiceTemplate,
+ .createUnifiedComposition(serviceTemplate, substitutionServiceTemplate,
unifiedCompositionDataList, UnifiedCompositionMode.NestedSingleCompute,
translationContext);
} else {
- //The node template does not qualify for unified composition
+ //The node template does not represent unified VFC but complexVFC
//Adding the id in the context for fixing connectivity from/to nested non-unified nodes
translationContext.addUnifiedNestedNodeTemplateId(ToscaUtil
- .getServiceTemplateFileName(mainServiceTemplate),
+ .getServiceTemplateFileName(serviceTemplate),
substituteNodeTemplateId, substituteNodeTemplateId);
+
+ if (!translationContext.isUnifiedHandledServiceTemplate(substitutionServiceTemplate)) {
+ serviceTemplateConsolidation(substitutionServiceTemplate, translationContext);
+ }
}
}
@@ -829,24 +837,21 @@ public class ConsolidationService {
.getFileNestedConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
if (Objects.nonNull(fileNestedConsolidationData)) {
- Collection<NestedTemplateConsolidationData> nestedConsolidationDatas =
- fileNestedConsolidationData.getAllNestedConsolidationData();
-
- for (NestedTemplateConsolidationData nested : nestedConsolidationDatas) {
- if (nested.getNodeTemplateId().equals(substituteNodeTemplateId)) {
- UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
- unifiedCompositionData.setNestedTemplateConsolidationData(nested);
- unifiedCompositionDataList.add(unifiedCompositionData);
- }
- }
+ NestedTemplateConsolidationData nestedTemplateConsolidationData =
+ fileNestedConsolidationData.getNestedTemplateConsolidationData(substituteNodeTemplateId);
+ UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+ unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
+ unifiedCompositionDataList.add(unifiedCompositionData);
+ return unifiedCompositionDataList;
}
return unifiedCompositionDataList;
}
- private boolean consolidationPreCondition(ServiceTemplate serviceTemplate,
- ConsolidationData consolidationData,
- TypeComputeConsolidationData typeComputeConsolidationData) {
+ private boolean consolidationPreCondition(
+ ServiceTemplate serviceTemplate,
+ ConsolidationData consolidationData,
+ TypeComputeConsolidationData typeComputeConsolidationData) {
return (isThereMoreThanOneComputeTypeInstance(typeComputeConsolidationData)
&& isNumberOfPortsEqualsBetweenComputeNodes(typeComputeConsolidationData)
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java
index 7c67a5af2c..81ef3e01ce 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java
@@ -25,10 +25,9 @@ import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.translator.api.HeatToToscaTranslator;
import org.openecomp.core.translator.datatypes.TranslatorOutput;
import org.openecomp.core.translator.factory.HeatToToscaTranslatorFactory;
-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.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.core.validation.util.MessageContainerUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.utils.SdcCommon;
@@ -68,7 +67,6 @@ import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
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.Template;
import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
@@ -76,7 +74,7 @@ import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedPropertyVal;
import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
import org.openecomp.sdc.translator.datatypes.heattotosca.ReferenceType;
@@ -337,10 +335,11 @@ public class HeatToToscaUtil {
* @param propertyValue the property value
* @return the optional
*/
- public static Optional<AttachedResourceId> extractAttachedResourceId(String heatFileName,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- TranslationContext context,
- Object propertyValue) {
+ public static Optional<AttachedResourceId> extractAttachedResourceId(
+ String heatFileName,
+ HeatOrchestrationTemplate heatOrchestrationTemplate,
+ TranslationContext context,
+ Object propertyValue) {
Object entity;
Object translatedId;
@@ -539,6 +538,32 @@ public class HeatToToscaUtil {
}
/**
+ * Checks if the nested resource represents a VFC or a complex VFC (Heat file should contain at
+ * least one or more compute nodes).
+ *
+ * @param resource the resource
+ * @param context the context
+ * @return true if the resource represents a VFC and false otherwise.
+ */
+ public static boolean isNestedVfcResource(Resource resource, TranslationContext context) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ Optional<String> nestedHeatFileName = HeatToToscaUtil.getNestedHeatFileName(resource);
+ HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
+ .yamlToObject(context.getFileContent(nestedHeatFileName.get()),
+ HeatOrchestrationTemplate.class);
+ if (Objects.nonNull(nestedHeatOrchestrationTemplate.getResources())) {
+ for (String innerResourceId : nestedHeatOrchestrationTemplate.getResources().keySet()) {
+ if (ConsolidationDataUtil
+ .isComputeResource(nestedHeatOrchestrationTemplate, innerResourceId)) {
+ return true;
+ }
+ }
+ }
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return false;
+ }
+
+ /**
* Get nested heat file name in case of nested resource.
*
* @param resource the resource
@@ -734,8 +759,9 @@ public class HeatToToscaUtil {
* @param entryDefinitionMetadata template name of the entry definition servie template
* @return the tosca service model
*/
- public static ToscaServiceModel getToscaServiceModel(TranslationContext context,
- Map<String, String> entryDefinitionMetadata) {
+ public static ToscaServiceModel getToscaServiceModel(
+ TranslationContext context,
+ Map<String, String> entryDefinitionMetadata) {
mdcDataDebugMessage.debugEntryMessage(null, null);
Map<String, ServiceTemplate> serviceTemplates =
@@ -776,28 +802,6 @@ public class HeatToToscaUtil {
}
/**
- * Adding binding requerment from port node template to compute node template.
- *
- * @param computeNodeTemplateId compute node template id
- * @param portNodeTemplate port node template
- */
- public static void addBindingReqFromPortToCompute(String computeNodeTemplateId,
- NodeTemplate portNodeTemplate) {
-
-
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- RequirementAssignment requirementAssignment = new RequirementAssignment();
- requirementAssignment.setCapability(ToscaCapabilityType.NATIVE_NETWORK_BINDABLE);
- requirementAssignment.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_BINDS_TO);
- requirementAssignment.setNode(computeNodeTemplateId);
- DataModelUtil.addRequirementAssignment(portNodeTemplate, ToscaConstants.BINDING_REQUIREMENT_ID,
- requirementAssignment);
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- }
-
- /**
* Adding link requerment from port node template to network node template.
*
* @param portNodeTemplate port node template
@@ -1062,7 +1066,7 @@ public class HeatToToscaUtil {
nestedSubstitutionServiceTemplate, context);
//add substitution mapping after capability and requirement expose calculation
nestedSubstitutionServiceTemplate.getTopology_template().setSubstitution_mappings(
- createSubstitutionTemplateSubMapping(substitutionNodeTypeKey,
+ DataModelUtil.createSubstitutionTemplateSubMapping(substitutionNodeTypeKey,
substitutionNodeType, substitutionMapping));
}
@@ -1233,69 +1237,6 @@ public class HeatToToscaUtil {
return substitutionProperties;
}
- private static SubstitutionMapping createSubstitutionTemplateSubMapping(
- String nodeTypeKey,
- NodeType substitutionNodeType,
- Map<String, Map<String, List<String>>> mapping) {
- mdcDataDebugMessage.debugEntryMessage(null, null);
- SubstitutionMapping substitutionMapping = new SubstitutionMapping();
- substitutionMapping.setNode_type(nodeTypeKey);
- substitutionMapping.setCapabilities(
- manageCapabilityMapping(substitutionNodeType.getCapabilities(), mapping.get("capability")));
- substitutionMapping.setRequirements(
- manageRequirementMapping(substitutionNodeType.getRequirements(),
- mapping.get("requirement")));
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- return substitutionMapping;
- }
-
- private static Map<String, List<String>> manageRequirementMapping(
- List<Map<String, RequirementDefinition>> requirementList,
- Map<String, List<String>> requirementSubstitutionMapping) {
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- if (requirementList == null) {
- return null;
- }
- Map<String, List<String>> requirementMapping = new HashMap<>();
- String requirementKey;
- List<String> requirementMap;
- for (Map<String, RequirementDefinition> requirementDefMap : requirementList) {
- for (Map.Entry<String, RequirementDefinition> entry : requirementDefMap.entrySet()) {
- requirementKey = entry.getKey();
- requirementMap = requirementSubstitutionMapping.get(requirementKey);
- requirementMapping.put(requirementKey, requirementMap);
- }
- }
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- return requirementMapping;
- }
-
- private static Map<String, List<String>> manageCapabilityMapping(
- Map<String, CapabilityDefinition> capabilities,
- Map<String, List<String>> capabilitySubstitutionMapping) {
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- if (capabilities == null) {
- mdcDataDebugMessage.debugExitMessage(null, null);
- return null;
- }
-
- Map<String, List<String>> capabilityMapping = new HashMap<>();
- String capabilityKey;
- List<String> capabilityMap;
- for (Map.Entry<String, CapabilityDefinition> entry : capabilities.entrySet()) {
- capabilityKey = entry.getKey();
- capabilityMap = capabilitySubstitutionMapping.get(capabilityKey);
- capabilityMapping.put(capabilityKey, capabilityMap);
- }
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- return capabilityMapping;
- }
-
private static Map<String, Map<String, List<String>>>
getSubstitutionNodeTypeExposedConnectionPoints(NodeType substitutionNodeType,
ServiceTemplate substitutionServiceTemplate,
@@ -1323,6 +1264,7 @@ public class HeatToToscaUtil {
new HashMap<>();
Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition = new HashMap<>();
Map<String, CapabilityDefinition> exposedCapabilitiesDefinition;
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
nodeTemplateId = entry.getKey();
@@ -1336,9 +1278,11 @@ public class HeatToToscaUtil {
nodeTemplateRequirementsAssignment = DataModelUtil.getNodeTemplateRequirements(nodeTemplate);
fullFilledRequirementsDefinition.put(nodeTemplateId, nodeTemplateRequirementsAssignment);
//set substitution node type requirements
- exposedRequirementsDefinition = calculateExposedRequirements(nodeTypeRequirementsDefinition,
+ exposedRequirementsDefinition =
+ toscaAnalyzerService.calculateExposedRequirements(nodeTypeRequirementsDefinition,
nodeTemplateRequirementsAssignment);
- addSubstitutionNodeTypeRequirements(substitutionNodeType, exposedRequirementsDefinition,
+ DataModelUtil
+ .addSubstitutionNodeTypeRequirements(substitutionNodeType, exposedRequirementsDefinition,
nodeTemplateId);
//get capabilities
@@ -1347,7 +1291,8 @@ public class HeatToToscaUtil {
nodeTemplateId, substitutionServiceTemplate, context);
}
- exposedCapabilitiesDefinition = calculateExposedCapabilities(nodeTypeCapabilitiesDefinition,
+ exposedCapabilitiesDefinition =
+ toscaAnalyzerService.calculateExposedCapabilities(nodeTypeCapabilitiesDefinition,
fullFilledRequirementsDefinition);
DataModelUtil.addNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition);
@@ -1355,48 +1300,6 @@ public class HeatToToscaUtil {
return substitutionMapping;
}
- private static Map<String, CapabilityDefinition> calculateExposedCapabilities(
- Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
- Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap) {
-
-
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- String capabilityKey;
- String capability;
- String node;
- for (Map.Entry<String, Map<String, RequirementAssignment>> entry :
- fullFilledRequirementsDefinitionMap.entrySet()) {
- for (Map.Entry<String, RequirementAssignment> fullFilledEntry : entry.getValue().entrySet()) {
-
- capability = fullFilledEntry.getValue().getCapability();
- fullFilledEntry.getValue().getOccurrences();
- node = fullFilledEntry.getValue().getNode();
- capabilityKey = capability + "_" + node;
- CapabilityDefinition capabilityDefinition = nodeTypeCapabilitiesDefinition.get(
- capabilityKey);
- if (capabilityDefinition != null) {
- CapabilityDefinition clonedCapabilityDefinition = capabilityDefinition.clone();
- nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityDefinition.clone());
- if (evaluateCapabilityFulfillment(clonedCapabilityDefinition)) {
- nodeTypeCapabilitiesDefinition.remove(capabilityKey);
- } else {
- nodeTypeCapabilitiesDefinition.put(capabilityKey, clonedCapabilityDefinition);
- }
- }
- }
- }
-
- Map<String, CapabilityDefinition> exposedCapabilitiesDefinition = new HashMap<>();
- for (Map.Entry<String, CapabilityDefinition> entry : nodeTypeCapabilitiesDefinition
- .entrySet()) {
- exposedCapabilitiesDefinition.put(entry.getKey(), entry.getValue());
- }
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- return exposedCapabilitiesDefinition;
- }
-
private static void addNodeTypeCapabilitiesToSubMapping(
Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
Map<String, List<String>> capabilitySubstitutionMapping, String type, String templateName,
@@ -1422,31 +1325,6 @@ public class HeatToToscaUtil {
mdcDataDebugMessage.debugExitMessage(null, null);
}
- private static void addSubstitutionNodeTypeRequirements(NodeType substitutionNodeType,
- List<Map<String, RequirementDefinition>>
- requirementsList,
- String templateName) {
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- if (requirementsList == null || requirementsList.size() == 0) {
- return;
- }
-
- if (substitutionNodeType.getRequirements() == null) {
- substitutionNodeType.setRequirements(new ArrayList<>());
- }
-
- for (Map<String, RequirementDefinition> requirementDef : requirementsList) {
- for (Map.Entry<String, RequirementDefinition> entry : requirementDef.entrySet()) {
- Map<String, RequirementDefinition> requirementMap = new HashMap<>();
- requirementMap.put(entry.getKey() + "_" + templateName, entry.getValue().clone());
- substitutionNodeType.getRequirements().add(requirementMap);
- }
- }
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- }
-
private static List<Map<String, RequirementDefinition>> getNodeTypeReqs(
String type,
String templateName,
@@ -1489,85 +1367,6 @@ public class HeatToToscaUtil {
return requirementList;
}
- private static List<Map<String, RequirementDefinition>> calculateExposedRequirements(
- List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
- Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment) {
- mdcDataDebugMessage.debugEntryMessage(null, null);
-
- if (nodeTypeRequirementsDefinitionList == null) {
- return null;
- }
- for (Map.Entry<String, RequirementAssignment> entry : nodeTemplateRequirementsAssignment
- .entrySet()) {
- if (entry.getValue().getNode() != null) {
- Optional<RequirementDefinition> requirementDefinition =
- DataModelUtil.getRequirementDefinition(nodeTypeRequirementsDefinitionList, entry
- .getKey());
- RequirementDefinition cloneRequirementDefinition;
- if (requirementDefinition.isPresent()) {
- cloneRequirementDefinition = requirementDefinition.get().clone();
- if (!evaluateRequirementFulfillment(cloneRequirementDefinition)) {
- CommonMethods.mergeEntryInList(entry.getKey(), cloneRequirementDefinition,
- nodeTypeRequirementsDefinitionList);
- } else {
- DataModelUtil.removeRequirementsDefinition(nodeTypeRequirementsDefinitionList, entry
- .getKey());
- }
- }
- } else {
- for (Map<String, RequirementDefinition> nodeTypeRequirementsMap :
- nodeTypeRequirementsDefinitionList) {
- Object max = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
- && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
- ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[1] : 1;
- Object min = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
- && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
- ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[0] : 1;
- nodeTypeRequirementsMap.get(entry.getKey()).setOccurrences(new Object[]{min, max});
- }
- }
- }
-
- mdcDataDebugMessage.debugExitMessage(null, null);
- return nodeTypeRequirementsDefinitionList;
- }
-
- private static boolean evaluateRequirementFulfillment(RequirementDefinition
- requirementDefinition) {
- Object[] occurrences = requirementDefinition.getOccurrences();
- if (occurrences == null) {
- requirementDefinition.setOccurrences(new Object[]{1, 1});
- return false;
- }
- if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
- return false;
- }
-
- if (occurrences[1].equals(1)) {
- return true;
- }
- occurrences[1] = (Integer) occurrences[1] - 1;
- return false;
- }
-
- private static boolean evaluateCapabilityFulfillment(CapabilityDefinition capabilityDefinition) {
-
- Object[] occurrences = capabilityDefinition.getOccurrences();
- if (occurrences == null) {
- capabilityDefinition.setOccurrences(new Object[]{1, ToscaConstants.UNBOUNDED});
- return false;
- }
- if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
- return false;
- }
-
- if (occurrences[1].equals(1)) {
- return true;
- }
- occurrences[1] = (Integer) occurrences[1] - 1;
- return false;
- }
-
/**
* Fetch global substitution service template service template.
*
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/TranslationService.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/TranslationService.java
index ab41d43cc9..43079f9025 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/TranslationService.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/TranslationService.java
@@ -22,9 +22,7 @@ package org.openecomp.sdc.translator.services.heattotosca;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.translator.datatypes.TranslatorOutput;
-import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
@@ -32,9 +30,6 @@ import org.openecomp.sdc.heat.datatypes.model.Environment;
import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
import org.openecomp.sdc.heat.datatypes.model.Output;
import org.openecomp.sdc.heat.datatypes.model.Resource;
-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.context.impl.MdcDataDebugMessage;
@@ -46,7 +41,6 @@ import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.datatypes.ToscaGroupType;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
-import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
import org.openecomp.sdc.tosca.datatypes.model.ParameterDefinition;
import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
@@ -54,13 +48,11 @@ import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
-import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.FileDataCollection;
-import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
-import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
import org.openecomp.sdc.translator.services.heattotosca.errors.ResourceNotFoundInHeatFileErrorBuilder;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
import org.openecomp.sdc.translator.services.heattotosca.mapping.TranslatorHeatToToscaParameterConverter;
@@ -68,7 +60,6 @@ import org.openecomp.sdc.translator.services.heattotosca.mapping.TranslatorHeatT
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -121,6 +112,10 @@ public class TranslationService {
HeatToToscaUtil.createToscaServiceModel(mainServiceTemplate, translationContext);
TranslatorOutput translatorOutput = new TranslatorOutput();
+ //Keeping a copy of tosca service model after first stage of translation for extraction of
+ // composition data
+ translatorOutput.setNonUnifiedToscaServiceModel(
+ ToscaServiceModel.getClonedServiceModel(toscaServiceModel));
translatorOutput.setToscaServiceModel(toscaServiceModel);
mdcDataDebugMessage.debugExitMessage(null, null);
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java
index 2e67983194..a7ba9b549e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionManager.java
@@ -4,15 +4,16 @@ import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileNestedConsolidationData;
-import java.util.HashSet;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
-import java.util.Set;
public class UnifiedCompositionManager {
@@ -43,38 +44,80 @@ public class UnifiedCompositionManager {
Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
ServiceTemplate mainServiceTemplate =
serviceTemplates.get(toscaServiceModel.getEntryDefinitionServiceTemplate());
- consolidationService.mainServiceTemplateConsolidation(mainServiceTemplate, translationContext);
- ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ createUnifiedComposition(toscaServiceModel, mainServiceTemplate, translationContext);
+ ToscaServiceModel unifiedToscaServiceModel =
+ HeatToToscaUtil.createToscaServiceModel(mainServiceTemplate, translationContext);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return unifiedToscaServiceModel;
+ }
+
+ private void createUnifiedComposition(ToscaServiceModel toscaServiceModel,
+ ServiceTemplate serviceTemplate,
+ TranslationContext translationContext) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ handleNestedServiceTemplates(toscaServiceModel, serviceTemplate, translationContext);
+ consolidationService.serviceTemplateConsolidation(serviceTemplate, translationContext);
+ unifiedCompositionService
+ .updateUnifiedAbstractNodesConnectivity(serviceTemplate, translationContext);
+ translationContext.addUnifiedHandledServiceTeamplte(serviceTemplate);
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+ private void handleNestedServiceTemplates(ToscaServiceModel toscaServiceModel,
+ ServiceTemplate serviceTemplate,
+ TranslationContext translationContext) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
- FileNestedConsolidationData mainFileNestedConsolidationData =
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ FileNestedConsolidationData fileNestedConsolidationData =
translationContext.getConsolidationData().getNestedConsolidationData()
- .getFileNestedConsolidationData(toscaServiceModel.getEntryDefinitionServiceTemplate());
- Set<String> substituteNodeTemplatesId =
- mainFileNestedConsolidationData == null
- || mainFileNestedConsolidationData.getAllNestedNodeTemplateIds() == null
- ? new HashSet<>() : mainFileNestedConsolidationData.getAllNestedNodeTemplateIds();
-
- for (String substituteNodeTemplateId : substituteNodeTemplatesId) {
- NodeTemplate subNodeTemplate = mainServiceTemplate.getTopology_template().getNode_templates()
- .get(substituteNodeTemplateId);
- Optional<String> substituteServiceTemplateName = toscaAnalyzerService
- .getSubstituteServiceTemplateName(substituteNodeTemplateId, subNodeTemplate);
- if (substituteServiceTemplateName.isPresent()) {
- ServiceTemplate substituteServiceTemplate =
- serviceTemplates.get(substituteServiceTemplateName.get());
-
- consolidationService.substitutionServiceTemplateConsolidation(substituteNodeTemplateId,
- mainServiceTemplate, substituteServiceTemplate, translationContext);
+ .getFileNestedConsolidationData(serviceTemplateFileName);
+
+ if (Objects.nonNull(fileNestedConsolidationData)) {
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ for (String substitutedNodeTemplateId : fileNestedConsolidationData
+ .getAllNestedNodeTemplateIds()) {
+ if (translationContext
+ .isNestedNodeWasHandled(serviceTemplateFileName, substitutedNodeTemplateId)) {
+ continue;
+ }
+ NodeTemplate nestedNodeTemplate =
+ DataModelUtil.getNodeTemplate(serviceTemplate, substitutedNodeTemplateId);
+ Optional<String> substituteServiceTemplateName =
+ toscaAnalyzerService.getSubstituteServiceTemplateName(substitutedNodeTemplateId,
+ nestedNodeTemplate);
+ if (substituteServiceTemplateName.isPresent()) {
+ ServiceTemplate substitutionServiceTemplate =
+ toscaServiceModel.getServiceTemplates().get(substituteServiceTemplateName.get());
+ createUnifiedCompositionForNestedServiceTemplate(toscaServiceModel, serviceTemplate,
+ substitutionServiceTemplate, substitutedNodeTemplateId, translationContext);
+ }
+ translationContext.addNestedNodeAsHandled(serviceTemplateFileName,
+ substitutedNodeTemplateId);
}
}
- unifiedCompositionService
- .updateUnifiedAbstractNodesConnectivity(mainServiceTemplate, translationContext);
- ToscaServiceModel unifiedToscaServiceModel =
- HeatToToscaUtil.createToscaServiceModel(mainServiceTemplate, translationContext);
mdcDataDebugMessage.debugExitMessage(null, null);
- return unifiedToscaServiceModel;
+ }
+
+ private void createUnifiedCompositionForNestedServiceTemplate(
+ ToscaServiceModel toscaServiceModel,
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ String substitutedNodeTemplateId,
+ TranslationContext translationContext) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ handleNestedServiceTemplates(toscaServiceModel, substitutionServiceTemplate,
+ translationContext);
+ consolidationService.substitutionServiceTemplateConsolidation(substitutedNodeTemplateId,
+ serviceTemplate, substitutionServiceTemplate, translationContext);
+ unifiedCompositionService
+ .updateUnifiedAbstractNodesConnectivity(substitutionServiceTemplate, translationContext);
+ translationContext.addUnifiedHandledServiceTeamplte(substitutionServiceTemplate);
+ mdcDataDebugMessage.debugExitMessage(null, null);
}
}
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 185316dad7..3704960466 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
@@ -20,6 +20,12 @@
package org.openecomp.sdc.translator.services.heattotosca;
+import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.PORT_IDENTICAL_VALUE_PROPERTY_PREFIX;
+
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
@@ -29,7 +35,6 @@ 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.yaml.YamlUtil;
import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.services.HeatConstants;
import org.openecomp.sdc.logging.api.Logger;
@@ -39,6 +44,7 @@ import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
import org.openecomp.sdc.tosca.datatypes.ToscaGroupType;
import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
+import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
import org.openecomp.sdc.tosca.datatypes.model.Constraint;
import org.openecomp.sdc.tosca.datatypes.model.EntrySchema;
@@ -74,12 +80,6 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.NotSerializableException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -92,11 +92,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.regex.Pattern;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.PORT_IDENTICAL_VALUE_PROPERTY_PREFIX;
-
public class UnifiedCompositionService {
protected static Logger logger =
@@ -169,14 +164,17 @@ public class UnifiedCompositionService {
* @return the substitution service template
*/
public Optional<ServiceTemplate> createUnifiedSubstitutionServiceTemplate(
- ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedCompositionDataList,
- TranslationContext context, 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, index);
+ getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
ServiceTemplate substitutionServiceTemplate =
HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
@@ -188,13 +186,13 @@ public class UnifiedCompositionService {
handlePorts(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
computeNodeType, context);
createOutputParameters(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
- computeNodeType);
+ computeNodeType, context);
NodeType substitutionGlobalNodeType =
handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
- context, unifiedCompositionData, index);
+ context, unifiedCompositionData, substitutionNodeTypeId, index);
HeatToToscaUtil.handleSubstitutionMapping(context,
- getSubstitutionNodeTypeId(serviceTemplate, unifiedCompositionData, index),
+ substitutionNodeTypeId,
substitutionServiceTemplate, substitutionGlobalNodeType);
context.getTranslatedServiceTemplates().put(templateName, substitutionServiceTemplate);
@@ -218,6 +216,7 @@ public class UnifiedCompositionService {
ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
+ String substituteNodeTypeId,
TranslationContext context,
Integer index) {
@@ -225,9 +224,7 @@ public class UnifiedCompositionService {
List<String> directiveList = new ArrayList<>();
directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
substitutionNodeTemplate.setDirectives(directiveList);
- String substituteNodeTemplateType =
- getSubstitutionNodeTypeId(serviceTemplate, unifiedCompositionDataList.get(0), index);
- substitutionNodeTemplate.setType(substituteNodeTemplateType);
+ substitutionNodeTemplate.setType(substituteNodeTypeId);
Optional<Map<String, Object>> abstractSubstitutionProperties =
createAbstractSubstitutionProperties(serviceTemplate,
substitutionServiceTemplate, unifiedCompositionDataList, context);
@@ -237,12 +234,13 @@ public class UnifiedCompositionService {
String substitutionServiceTemplateName = ToscaUtil.getServiceTemplateFileName(
substitutionServiceTemplate);
int count = unifiedCompositionDataList.size();
- addSubstitutionFilteringProperty(substitutionServiceTemplateName, substitutionNodeTemplate,
- count);
+ DataModelUtil.addSubstitutionFilteringProperty(substitutionServiceTemplateName,
+ substitutionNodeTemplate, count);
//Add index_value property
addIndexValueProperty(substitutionNodeTemplate);
String substituteNodeTemplateId =
- getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0), 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);
@@ -304,6 +302,13 @@ public class UnifiedCompositionService {
}
+ /**
+ * Clean node types.
+ *
+ * @param serviceTemplate the service template
+ * @param unifiedCompositionDataList the unified composition data list
+ * @param context the context
+ */
public void cleanNodeTypes(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
@@ -312,7 +317,6 @@ public class UnifiedCompositionService {
unifiedData.getComputeTemplateConsolidationData().getNodeTemplateId(), serviceTemplate,
context);
}
-
if (MapUtils.isEmpty(serviceTemplate.getNode_types())) {
serviceTemplate.setNode_types(null);
}
@@ -344,13 +348,21 @@ public class UnifiedCompositionService {
}
}
+ /**
+ * Handle unified nested definition.
+ *
+ * @param mainServiceTemplate the main service template
+ * @param nestedServiceTemplate the nested service template
+ * @param unifiedCompositionData the unified composition data
+ * @param context the context
+ */
public void handleUnifiedNestedDefinition(ServiceTemplate mainServiceTemplate,
ServiceTemplate nestedServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
+ UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
handleUnifiedNestedNodeType(mainServiceTemplate, nestedServiceTemplate, context);
updateUnifiedNestedTemplates(mainServiceTemplate, nestedServiceTemplate,
- unifiedCompositionDataList, context);
+ unifiedCompositionData, context);
}
private void handleGetAttrInConnectivity(ServiceTemplate serviceTemplate,
@@ -378,17 +390,19 @@ public class UnifiedCompositionService {
Optional<String> newNestedNodeTypeId =
getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
- if (isNestedServiceTemplateWasHandled(mainServiceTemplate, nestedServiceTemplate, context,
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ context.getGlobalSubstitutionServiceTemplate();
+
+ if (isNestedServiceTemplateWasHandled(globalSubstitutionServiceTemplate, nestedServiceTemplate,
+ context,
newNestedNodeTypeId)) {
- context.updateHandledComputeType(
- ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
- newNestedNodeTypeId.get());
+ context
+ .updateHandledComputeType(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+ newNestedNodeTypeId.get(),
+ ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
return;
}
- ServiceTemplate globalSubstitutionServiceTemplate =
- context.getGlobalSubstitutionServiceTemplate();
newNestedNodeTypeId.ifPresent(
newNestedNodeTypeIdVal -> handleNestedNodeType(nodeTypeId, newNestedNodeTypeIdVal,
@@ -481,16 +495,12 @@ public class UnifiedCompositionService {
ServiceTemplate mainServiceTemplate,
ServiceTemplate globalSubstitutionServiceTemplate,
TranslationContext context) {
- context.addNestedFileToUsedNestedComputeType(
- ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
- ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
- newNestedNodeTypeId);
String indexedNewNestedNodeTypeId =
handleNestedNodeTypeInGlobalSubstitutionTemplate(nodeTypeId, newNestedNodeTypeId,
- mainServiceTemplate, globalSubstitutionServiceTemplate, context);
+ globalSubstitutionServiceTemplate, context);
handleSubstitutionMappingInNestedServiceTemplate(indexedNewNestedNodeTypeId,
- nestedServiceTemplate);
+ nestedServiceTemplate, context);
context
.updateHandledComputeType(
@@ -502,82 +512,101 @@ public class UnifiedCompositionService {
private String handleNestedNodeTypeInGlobalSubstitutionTemplate(String nodeTypeId,
String newNestedNodeTypeId,
- ServiceTemplate mainServiceTemplate,
ServiceTemplate globalSubstitutionServiceTemplate,
TranslationContext context) {
String indexedNodeType =
- getIndexedGlobalNodeTypeId(newNestedNodeTypeId, mainServiceTemplate, context);
+ getIndexedGlobalNodeTypeId(newNestedNodeTypeId, context);
+ context.updateUsedTimesForNestedComputeNodeType(
+ ToscaUtil.getServiceTemplateFileName(globalSubstitutionServiceTemplate),
+ newNestedNodeTypeId);
handleNestedNodeTypesInGlobalSubstituteServiceTemplate(nodeTypeId, indexedNodeType,
globalSubstitutionServiceTemplate, context);
return indexedNodeType;
}
private String getIndexedGlobalNodeTypeId(String newNestedNodeTypeId,
- ServiceTemplate mainServiceTemplate,
TranslationContext context) {
int globalNodeTypeIndex =
- context.getGlobalNodeTypeIndex(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+ context.getGlobalNodeTypeIndex(
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
newNestedNodeTypeId);
- return globalNodeTypeIndex > 0 ?
- newNestedNodeTypeId + "_" + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
+ return globalNodeTypeIndex > 0 ? newNestedNodeTypeId + "_"
+ + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
}
private void updateUnifiedNestedTemplates(ServiceTemplate mainServiceTemplate,
ServiceTemplate nestedServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
+ UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
- for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
- NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
- if (Objects.isNull(nestedTemplateConsolidationData)) {
- continue;
- }
- handleNestedNodeTemplateInMainServiceTemplate(
- nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
- nestedServiceTemplate, context);
+ NestedTemplateConsolidationData nestedTemplateConsolidationData =
+ unifiedCompositionData.getNestedTemplateConsolidationData();
+ if (Objects.isNull(nestedTemplateConsolidationData)) {
+ return;
}
+ handleNestedNodeTemplateInMainServiceTemplate(
+ nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
+ nestedServiceTemplate, context);
+
}
/**
* Update connectivity for unified nested patterns.
*
- * @param serviceTemplate the service template
- * @param nestedServiceTemplate the nested service template
- * @param unifiedCompositionDataList the unified composition data list
- * @param context the context
+ * @param serviceTemplate the service template
+ * @param nestedServiceTemplate the nested service template
+ * @param unifiedCompositionData the unified composition data
+ * @param context the context
*/
public void updateUnifiedNestedConnectivity(ServiceTemplate serviceTemplate,
ServiceTemplate nestedServiceTemplate,
- List<UnifiedCompositionData>
- unifiedCompositionDataList,
+ UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
- updNestedCompositionNodesConnectedInConnectivity(serviceTemplate, unifiedCompositionDataList,
+ updNestedCompositionNodesConnectedInConnectivity(serviceTemplate, unifiedCompositionData,
context);
- updNestedCompositionNodesGetAttrInConnectivity(serviceTemplate, unifiedCompositionDataList,
+ updNestedCompositionNodesGetAttrInConnectivity(serviceTemplate, unifiedCompositionData,
context);
updNestedCompositionOutputParamGetAttrInConnectivity(serviceTemplate,
- unifiedCompositionDataList, context);
+ unifiedCompositionData, context);
}
/**
* Clean unified nested entities. Update the heat stack group with the new node template ids.
*
- * @param serviceTemplate the service template
- * @param unifiedCompositionDataList the unified composition data list
- * @param context the context
+ * @param serviceTemplate the service template
+ * @param unifiedCompositionData the unified composition data
+ * @param context the context
*/
public void cleanUnifiedNestedEntities(ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
+ UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
- EntityConsolidationData entityConsolidationData = unifiedCompositionDataList.get(0)
- .getNestedTemplateConsolidationData();
+ EntityConsolidationData entityConsolidationData =
+ unifiedCompositionData.getNestedTemplateConsolidationData();
updateHeatStackGroupNestedComposition(serviceTemplate, entityConsolidationData, context);
}
+ public void handleComplexVfcType(ServiceTemplate serviceTemplate, TranslationContext context) {
+ SubstitutionMapping substitution_mappings =
+ serviceTemplate.getTopology_template().getSubstitution_mappings();
+
+ if (Objects.isNull(substitution_mappings)) {
+ return;
+ }
+
+ ServiceTemplate globalSubstitutionServiceTemplate =
+ context.getGlobalSubstitutionServiceTemplate();
+
+ String substitutionNT = substitution_mappings.getNode_type();
+ if (globalSubstitutionServiceTemplate.getNode_types().containsKey(substitutionNT)) {
+ //todo - remove comment after integration with AT&T
+// globalSubstitutionServiceTemplate.getNode_types().get(substitutionNT).setDerived_from
+// (ToscaNodeType.COMPLEX_VFC_NODE_TYPE);
+ }
+ }
+
protected void updNodesConnectedOutConnectivity(ServiceTemplate serviceTemplate,
List<UnifiedCompositionData>
unifiedCompositionDataList,
@@ -677,22 +706,21 @@ public class UnifiedCompositionService {
}
}
- protected void updNestedCompositionNodesConnectedInConnectivity(ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData>
- unifiedCompositionDataList,
- TranslationContext context) {
- for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
- NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
- .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());
- newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData,
- newNestedNodeTemplateIdVal, context, true));
- }
+ protected void updNestedCompositionNodesConnectedInConnectivity(
+ ServiceTemplate serviceTemplate,
+ UnifiedCompositionData unifiedCompositionData,
+ TranslationContext context) {
+ NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
+ .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());
+ newNestedNodeTemplateId.ifPresent(
+ newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData,
+ newNestedNodeTemplateIdVal, context, true));
+
}
protected void updVolumeConnectivity(ServiceTemplate serviceTemplate,
@@ -835,44 +863,40 @@ public class UnifiedCompositionService {
}
protected void updNestedCompositionOutputParamGetAttrInConnectivity(
- ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
+ ServiceTemplate serviceTemplate, UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
- for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
- NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
- if (Objects.isNull(nestedTemplateConsolidationData)) {
- continue;
- }
- String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
- Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
- serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
-
- newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
- newNestedNodeTemplateIdVal, context, true));
+ NestedTemplateConsolidationData nestedTemplateConsolidationData =
+ unifiedCompositionData.getNestedTemplateConsolidationData();
+ if (Objects.isNull(nestedTemplateConsolidationData)) {
+ return;
}
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
+ serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+
+ newNestedNodeTemplateId.ifPresent(
+ newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+ newNestedNodeTemplateIdVal, context, true));
}
protected void updNestedCompositionNodesGetAttrInConnectivity(
ServiceTemplate serviceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList,
+ UnifiedCompositionData unifiedCompositionData,
TranslationContext context) {
- for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
- NestedTemplateConsolidationData nestedTemplateConsolidationData =
- unifiedCompositionData.getNestedTemplateConsolidationData();
- if (Objects.isNull(nestedTemplateConsolidationData)) {
- continue;
- }
- String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
- Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
- serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
-
- newNestedNodeTemplateId.ifPresent(
- newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
- nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
- newNestedNodeTemplateIdVal, context, null, true));
+ NestedTemplateConsolidationData nestedTemplateConsolidationData =
+ unifiedCompositionData.getNestedTemplateConsolidationData();
+ if (Objects.isNull(nestedTemplateConsolidationData)) {
+ return;
}
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
+ serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+
+ newNestedNodeTemplateId.ifPresent(
+ newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
+ nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+ newNestedNodeTemplateIdVal, context, null, true));
}
private void updateRequirementForNodesConnectedIn(
@@ -1100,11 +1124,11 @@ public class UnifiedCompositionService {
private String getTemplateName(ServiceTemplate serviceTemplate,
UnifiedCompositionData unifiedCompositionData,
+ String nodeTypeId,
Integer index) {
ComputeTemplateConsolidationData computeTemplateConsolidationData =
unifiedCompositionData.getComputeTemplateConsolidationData();
- String computeType =
- getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData.getNodeTemplateId());
+ String computeType = getComputeTypeSuffix(nodeTypeId);
String templateName = "Nested_" + computeType;
if (Objects.nonNull(index)) {
templateName = templateName + "_" + index.toString();
@@ -1205,19 +1229,20 @@ public class UnifiedCompositionService {
private void createOutputParameters(ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
- String computeNodeType) {
+ String computeNodeType, TranslationContext context) {
createOutputParametersForCompute(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList);
+ unifiedCompositionDataList, context);
createOutputParameterForPorts(serviceTemplate, substitutionServiceTemplate,
- unifiedCompositionDataList, computeNodeType);
+ unifiedCompositionDataList, computeNodeType, context);
}
private void createOutputParameterForPorts(
ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
- String connectedComputeNodeType) {
+ String connectedComputeNodeType,
+ TranslationContext context) {
for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
getPortTemplateConsolidationDataList(unifiedCompositionData);
@@ -1232,7 +1257,7 @@ public class UnifiedCompositionService {
connectedComputeNodeType,
unifiedCompositionData.getComputeTemplateConsolidationData());
addOutputParameters(portTemplateConsolidationData, newPortNodeTemplateId,
- substitutionServiceTemplate, unifiedCompositionDataList);
+ serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
}
}
}
@@ -1260,7 +1285,8 @@ public class UnifiedCompositionService {
ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
List<UnifiedCompositionData>
- unifiedCompositionDataList) {
+ unifiedCompositionDataList,
+ TranslationContext context) {
List<EntityConsolidationData> computeConsolidationDataList =
getComputeConsolidationDataList(unifiedCompositionDataList);
@@ -1269,38 +1295,44 @@ public class UnifiedCompositionService {
getNewComputeNodeTemplateId(serviceTemplate,
computeTemplateConsolidationData.getNodeTemplateId());
addOutputParameters(computeTemplateConsolidationData, newComputeNodeTemplateId,
- substitutionServiceTemplate, unifiedCompositionDataList);
+ serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
}
}
private void addOutputParameters(EntityConsolidationData entityConsolidationData,
String newNodeTemplateId,
+ ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList) {
- handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, substitutionServiceTemplate,
- unifiedCompositionDataList);
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
+ handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
+ substitutionServiceTemplate, unifiedCompositionDataList, context);
- handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId,
- substitutionServiceTemplate);
+ handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
+ substitutionServiceTemplate, context);
}
private void handleOutputParamGetAttrIn(EntityConsolidationData entityConsolidationData,
String newNodeTemplateId,
- ServiceTemplate substitutionServiceTemplate) {
+ ServiceTemplate serviceTemplate,
+ ServiceTemplate substitutionServiceTemplate,
+ TranslationContext context) {
List<GetAttrFuncData> outputParametersGetAttrIn =
entityConsolidationData.getOutputParametersGetAttrIn();
if (!CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
- substitutionServiceTemplate, getAttrFuncData);
+ substitutionServiceTemplate, getAttrFuncData, context);
}
}
}
private void handleNodesGetAttrIn(EntityConsolidationData entityConsolidationData,
String newNodeTemplateId,
+ ServiceTemplate serviceTemplate,
ServiceTemplate substitutionServiceTemplate,
- List<UnifiedCompositionData> unifiedCompositionDataList) {
+ List<UnifiedCompositionData> unifiedCompositionDataList,
+ TranslationContext context) {
Map<String, List<GetAttrFuncData>> getAttrIn = entityConsolidationData.getNodesGetAttrIn();
if (!MapUtils.isEmpty(getAttrIn)) {
@@ -1311,7 +1343,7 @@ public class UnifiedCompositionService {
List<GetAttrFuncData> getAttrFuncDataList = getAttrIn.get(sourceNodeTemplateId);
for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
- substitutionServiceTemplate, getAttrFuncData);
+ substitutionServiceTemplate, getAttrFuncData, context);
}
}
}
@@ -1321,7 +1353,8 @@ public class UnifiedCompositionService {
private void createAndAddOutputParameter(EntityConsolidationData entityConsolidationData,
String newNodeTemplateId,
ServiceTemplate substitutionServiceTemplate,
- GetAttrFuncData getAttrFuncData) {
+ GetAttrFuncData getAttrFuncData,
+ TranslationContext context) {
Map<String, List<Object>> parameterValue = new HashMap<>();
List<Object> valueList = new ArrayList<>();
valueList.add(newNodeTemplateId);
@@ -1329,16 +1362,93 @@ public class UnifiedCompositionService {
parameterValue.put(ToscaFunctions.GET_ATTRIBUTE.getDisplayName(), valueList);
ParameterDefinition outputParameter = new ParameterDefinition();
outputParameter.setValue(parameterValue);
- //todo - the type need to be change based on the attribute type in the accordingly node type
- // of this node template - XXX, instead of list of string, list of XXXX,
- outputParameter.setType(PropertyType.LIST.getDisplayName());
- outputParameter.setEntry_schema(
- DataModelUtil.createEntrySchema(PropertyType.STRING.getDisplayName(), null, null));
+ setOutputParameterType(substitutionServiceTemplate, newNodeTemplateId, getAttrFuncData
+ .getAttributeName(), outputParameter, context);
DataModelUtil.addOutputParameterToTopologyTemplate(substitutionServiceTemplate,
getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData.getAttributeName()),
outputParameter);
}
+ private void setOutputParameterType(ServiceTemplate substitutionServiceTemplate,
+ String newNodeTemplateId,
+ String outputParameterName,
+ ParameterDefinition outputParameter,
+ TranslationContext context) {
+ NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(substitutionServiceTemplate,
+ 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);
+ //Check if the parameter is present in the attributes
+ AttributeDefinition outputParameterDefinitionFromAttributes =
+ getOutputParameterDefinitionFromAttributes(nodeTypeWithFlatHierarchy, outputParameterName);
+ if (Objects.nonNull(outputParameterDefinitionFromAttributes)) {
+ outputParameterType = outputParameterDefinitionFromAttributes.getType();
+ outputParameterEntrySchema = outputParameterDefinitionFromAttributes.getEntry_schema();
+ } else {
+ //If the below fails due to null pointer then we need to check if the heatToToscaMapping
+ // 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);
+ outputParameterType = outputParameterDefinitionFromProperties.getType();
+ outputParameterEntrySchema = outputParameterDefinitionFromProperties.getEntry_schema();
+ }
+ //Set the type and entry schema for the output param obtained from the node type hierarchy
+ outputParameter.setType(outputParameterType);
+ outputParameter.setEntry_schema(outputParameterEntrySchema);
+ }
+
+ private String getNewInputParameterType(NodeTemplate nodeTemplate,
+ ServiceTemplate serviceTemplate,
+ String inputParameterName,
+ TranslationContext context) {
+ NodeType nodeTypeWithFlatHierarchy =
+ HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
+ serviceTemplate, context);
+ String parameterType = nodeTypeWithFlatHierarchy.getProperties()
+ .get(inputParameterName).getType();
+ return getUnifiedInputParameterType(parameterType);
+ }
+
+ private AttributeDefinition getOutputParameterDefinitionFromAttributes(NodeType
+ nodeTypeWithFlatHierarchy,
+ String outputParameterName) {
+ AttributeDefinition outputParameterDefinition = null;
+ if ((Objects.nonNull(nodeTypeWithFlatHierarchy.getAttributes()))
+ && (nodeTypeWithFlatHierarchy.getAttributes().containsKey(outputParameterName))) {
+ outputParameterDefinition =
+ nodeTypeWithFlatHierarchy.getAttributes().get(outputParameterName);
+ }
+ return outputParameterDefinition;
+ }
+
+ private String getUnifiedInputParameterType(String parameterType) {
+ 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())) {
+ unifiedInputParameterType = parameterType.toLowerCase();
+ } else if (parameterType.equalsIgnoreCase(PropertyType.MAP.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
+ || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
+ unifiedInputParameterType = PropertyTypeExt.JSON.getDisplayName();
+ } else {
+ unifiedInputParameterType = parameterType;
+ }
+ }
+ return unifiedInputParameterType;
+ }
+
private String getNewSubstitutionOutputParameterId(String newNodeTemplateId,
String attributeName) {
return newNodeTemplateId + "_" + attributeName;
@@ -1370,18 +1480,6 @@ public class UnifiedCompositionService {
}
}
- private void addSubstitutionFilteringProperty(String templateName, NodeTemplate nodeTemplate,
- int count) {
- Map<String, Object> serviceTemplateFilterPropertyValue = new HashMap<>();
- Map<String, Object> properties = nodeTemplate.getProperties();
- serviceTemplateFilterPropertyValue.put(ToscaConstants
- .SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME, templateName);
- serviceTemplateFilterPropertyValue.put(ToscaConstants.COUNT_PROPERTY_NAME, count);
- properties.put(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME,
- serviceTemplateFilterPropertyValue);
- nodeTemplate.setProperties(properties);
- }
-
private void addIndexValueProperty(NodeTemplate nodeTemplate) {
List<String> indexValueGetPropertyValue = new ArrayList<>();
indexValueGetPropertyValue.add(ToscaConstants.MODELABLE_ENTITY_NAME_SELF);
@@ -1399,28 +1497,45 @@ public class UnifiedCompositionService {
private String getSubstituteNodeTemplateId(ServiceTemplate serviceTemplate,
UnifiedCompositionData unifiedCompositionData,
+ String nodeTypeId,
Integer index) {
String computeNodeTemplateId =
unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
NodeTemplate computeNodeTemplate =
DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
String nodeTemplateId = ABSTRACT_NODE_TEMPLATE_ID_PREFIX + DataModelUtil
- .getNamespaceSuffix(computeNodeTemplate.getType());
+ .getNamespaceSuffix(nodeTypeId);
if (Objects.nonNull(index)) {
nodeTemplateId = nodeTemplateId + "_" + index.toString();
}
return nodeTemplateId;
}
- private String getSubstitutionNodeTypeId(ServiceTemplate serviceTemplate,
- UnifiedCompositionData unifiedCompositionData,
- Integer index) {
+ /**
+ * Gets substitution node type id.
+ *
+ * @param serviceTemplate the service template
+ * @param unifiedCompositionData the unified composition data
+ * @param index the index
+ * @return the substitution node type id
+ */
+ public String getSubstitutionNodeTypeId(ServiceTemplate serviceTemplate,
+ UnifiedCompositionData unifiedCompositionData,
+ Integer index,
+ TranslationContext context) {
String computeNodeTemplateId =
unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
NodeTemplate computeNodeTemplate =
DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+ String computeType = computeNodeTemplate.getType();
+ String globalSTName = ToscaUtil.getServiceTemplateFileName(Constants
+ .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+
String nodeTypeId = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX
- + DataModelUtil.getNamespaceSuffix(computeNodeTemplate.getType());
+ + DataModelUtil.getNamespaceSuffix(getIndexedGlobalNodeTypeId(computeType, context));
+
+ context.updateUsedTimesForNestedComputeNodeType(globalSTName, computeType);
+
if (Objects.nonNull(index)) {
nodeTypeId = nodeTypeId + "_" + index.toString();
}
@@ -1437,9 +1552,10 @@ public class UnifiedCompositionService {
ServiceTemplate substitutionServiceTemplate,
TranslationContext context,
UnifiedCompositionData unifiedCompositionData,
+ String substitutionNodeTypeId,
Integer index) {
- String substitutionNodeTypeId =
- getSubstitutionNodeTypeId(serviceTemplate, unifiedCompositionData, index);
+// String substitutionNodeTypeId =
+// getSubstitutionNodeTypeId(serviceTemplate, unifiedCompositionData, index, context);
NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
.createInitSubstitutionNodeType(substitutionServiceTemplate,
ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
@@ -1539,16 +1655,20 @@ public class UnifiedCompositionService {
computeTemplateConsolidationData);
//Update requirements for relationships between the consolidation entities
handleConsolidationEntitiesRequirementConnectivity(newPortNodeTemplateId, newPortNodeTemplate,
- substitutionServiceTemplate, context);
+ serviceTemplate, context);
DataModelUtil.addNodeTemplate(substitutionServiceTemplate, newPortNodeTemplateId,
newPortNodeTemplate);
//Add the node template mapping in the context for handling requirement updation
- context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
- .getServiceTemplateFileName(substitutionServiceTemplate),
- portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId);
- }
+ for (EntityConsolidationData data : portTemplateConsolidationDataList) {
+ String newPortTemplateId = getNewPortNodeTemplateId(data.getNodeTemplateId(),
+ connectedComputeNodeType, computeTemplateConsolidationData);
+ context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
+ .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+ newPortTemplateId);
+ }
+ }
private NodeTemplate getNodeTemplate(String nodeTemplateId, ServiceTemplate serviceTemplate,
TranslationContext context) {
@@ -1616,15 +1736,18 @@ public class UnifiedCompositionService {
//Update requirements for relationships between the consolidation entities
handleConsolidationEntitiesRequirementConnectivity(newComputeNodeTemplateId,
newComputeNodeTemplate,
- substitutionServiceTemplate, context);
+ serviceTemplate, context);
DataModelUtil
.addNodeTemplate(substitutionServiceTemplate,
newComputeNodeTemplateId, newComputeNodeTemplate);
//Add the node template mapping in the context for handling requirement updation
- context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
- .getServiceTemplateFileName(substitutionServiceTemplate),
- computeTemplateConsolidationData.getNodeTemplateId(), newComputeNodeTemplateId);
-
+ for (EntityConsolidationData data : computeConsoliadtionDataList) {
+ String newComputeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
+ computeTemplateConsolidationData.getNodeTemplateId());
+ context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
+ .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+ newComputeTemplateId);
+ }
}
private List<EntityConsolidationData> getComputeConsolidationDataList(
@@ -1646,7 +1769,8 @@ public class UnifiedCompositionService {
ComputeTemplateConsolidationData computeTemplateConsolidationData,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
-
+ List<String> propertiesWithIdenticalVal =
+ consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
nodeTemplate.setProperties(new HashedMap());
handleNodeTemplateProperties(serviceTemplate, nodeTemplate, substitutionServiceTemplate,
unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
@@ -1739,10 +1863,10 @@ public class UnifiedCompositionService {
Map<String, PropertyDefinition> enrichNodeTypeProperties = enrichNodeType.get().getProperties();
if (Objects.nonNull(enrichNodeTypeProperties)) {
for (String enrichPropertyName : enrichProperties) {
- handleEntityConsolidationDataNodeTypeProperties(
- enrichPropertyName, substitutionServiceTemplate,
- enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
- entityConsolidationDataList, nodeTemplateProperties, context);
+ handleEntityConsolidationDataNodeTypeProperties(
+ enrichPropertyName, substitutionServiceTemplate,
+ enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
+ entityConsolidationDataList, nodeTemplateProperties, context);
}
}
}
@@ -1768,7 +1892,8 @@ public class UnifiedCompositionService {
Map<String, String> propertyValMap = new HashMap<>();
context
- .addNewPropertyIdToNodeTemplate(ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
+ .addNewPropertyIdToNodeTemplate(
+ ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
inputParamId, nodeTemplateProperties.get(enrichPropertyName));
if (nodeTemplateProperties.containsKey(enrichPropertyName)) {
@@ -1816,14 +1941,13 @@ public class UnifiedCompositionService {
EntrySchema entrySchema, Optional<String> parameterId,
UnifiedCompositionEntity unifiedCompositionEntity,
TranslationContext context) {
- if(parameterId.isPresent() &&
- isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)){
+ if (parameterId.isPresent() &&
+ isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)) {
addInputParameter(parameterId.get(),
propertyType,
- propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null ,
+ propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
substitutionServiceTemplate);
- }
- else if (isPropertySimpleType(propertyType)) {
+ } else if (isPropertySimpleType(propertyType)) {
parameterId
.ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
PropertyType.LIST.getDisplayName(),
@@ -1831,7 +1955,7 @@ public class UnifiedCompositionService {
.createEntrySchema(propertyType.toLowerCase(), null, null),
substitutionServiceTemplate));
- } else if(propertyType.equals(PropertyTypeExt.JSON.getDisplayName()) ||
+ } else if (propertyType.equals(PropertyTypeExt.JSON.getDisplayName()) ||
(Objects.nonNull(entrySchema) && isPropertySimpleType(entrySchema.getType()))) {
parameterId
.ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
@@ -1851,11 +1975,11 @@ public class UnifiedCompositionService {
}
private boolean isParameterBelongsToEnrichedPortProperties(String parameterId,
- TranslationContext context){
+ TranslationContext context) {
List enrichPortResourceProperties = context.getEnrichPortResourceProperties();
- for(int i = 0; i < enrichPortResourceProperties.size(); i++){
- if(parameterId.contains((CharSequence) enrichPortResourceProperties.get(i))){
+ for (int i = 0; i < enrichPortResourceProperties.size(); i++) {
+ if (parameterId.contains((CharSequence) enrichPortResourceProperties.get(i))) {
return true;
}
}
@@ -1866,9 +1990,9 @@ 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.INTEGER.getDisplayName())
+ || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+ || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
}
private String analyzeParameterType(String propertyType) {
@@ -1883,8 +2007,7 @@ public class UnifiedCompositionService {
private void handleConsolidationEntitiesRequirementConnectivity(String nodeTemplateId,
NodeTemplate nodeTemplate,
- ServiceTemplate
- substitutionServiceTemplate,
+ ServiceTemplate serviceTemplate,
TranslationContext context) {
Map<String, RequirementAssignment> updatedNodeTemplateRequirements = new HashMap<>();
List<Map<String, RequirementAssignment>> nodeTemplateRequirements = DataModelUtil
@@ -1898,7 +2021,7 @@ public class UnifiedCompositionService {
RequirementAssignment requirementAssignment = entry.getValue();
String requirementNode = requirementAssignment.getNode();
String unifiedNodeTemplateId =
- context.getUnifiedSubstitutionNodeTemplateId(substitutionServiceTemplate,
+ context.getUnifiedSubstitutionNodeTemplateId(serviceTemplate,
requirementNode);
if (unifiedNodeTemplateId != null) {
//Update the node id in the requirement
@@ -2021,10 +2144,12 @@ public class UnifiedCompositionService {
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
- if (handleGetAttrFromConsolidationNodes(serviceTemplate, nodeTemplate, propertyEntry,
- unifiedCompositionDataList, context)) {
+ if (handleGetAttrFromConsolidationNodes(serviceTemplate, nodeTemplateId, nodeTemplate,
+ propertyEntry, unifiedCompositionDataList, context)) {
return Optional.empty();
}
+
+
String inputParamId =
getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
computeTemplateConsolidationData);
@@ -2047,7 +2172,7 @@ public class UnifiedCompositionService {
private boolean handleGetAttrFromConsolidationNodes(
ServiceTemplate serviceTemplate,
- NodeTemplate nodeTemplate,
+ String nodeTemplateId, NodeTemplate nodeTemplate,
Map.Entry<String, Object> propertyEntry,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
@@ -2055,12 +2180,19 @@ public class UnifiedCompositionService {
getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
Set<String> consolidationNodeTemplateIds = consolidationNodeTemplateIdAndType.keySet();
+ Map<String, String> entityIdToType = ConsolidationService.getConsolidationEntityIdToType(
+ serviceTemplate, context.getConsolidationData());
boolean includeGetAttrFromConsolidationNodes = false;
boolean includeGetAttrFromOutsideNodes = false;
+ boolean isGetAttrFromConsolidationIsFromSameType = false;
List<List<Object>> getAttrFunctionList = extractGetAttrFunction(propertyEntry.getValue());
for (List<Object> getAttrFunc : getAttrFunctionList) {
- if (consolidationNodeTemplateIds.contains(getAttrFunc.get(0))) {
+ String getAttrNodeId = (String) getAttrFunc.get(0);
+ if (consolidationNodeTemplateIds.contains(getAttrNodeId)) {
includeGetAttrFromConsolidationNodes = true;
+ if (isGetAttrNodeTemplateFromSameType(nodeTemplateId, getAttrNodeId, entityIdToType)) {
+ isGetAttrFromConsolidationIsFromSameType = true;
+ }
} else {
includeGetAttrFromOutsideNodes = true;
}
@@ -2071,7 +2203,7 @@ public class UnifiedCompositionService {
ToscaFunctions.GET_INPUT))) {
//This case is currently not supported - this property will be ignored
return true;
- } else if (includeGetAttrFromConsolidationNodes) {
+ } else if (includeGetAttrFromConsolidationNodes && !isGetAttrFromConsolidationIsFromSameType) {
Object clonedPropertyValue = getClonedPropertyValue(propertyEntry);
List<List<Object>> clonedGetAttrFuncList = extractGetAttrFunction(clonedPropertyValue);
for (List<Object> getAttrFunc : clonedGetAttrFuncList) {
@@ -2087,6 +2219,32 @@ public class UnifiedCompositionService {
return false;
}
+ private boolean isGetAttrFromConsolidationNodesIsFromSameType(String sourceNodeTemplateId,
+ Set<String> nodeTemplateIdsFromConsolidation,
+ Map<String, String>
+ nodeTemplateIdToType) {
+ for (String idFromConsolidation : nodeTemplateIdsFromConsolidation) {
+ if (isGetAttrNodeTemplateFromSameType(sourceNodeTemplateId, idFromConsolidation,
+ nodeTemplateIdToType)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean isGetAttrNodeTemplateFromSameType(String sourceNodeTemplateId,
+ String targetNodeTemplateId,
+ Map<String, String> nodeTemplateIdToType) {
+
+ if (Objects.isNull(nodeTemplateIdToType.get(sourceNodeTemplateId))
+ || Objects.isNull(nodeTemplateIdToType.get(targetNodeTemplateId))) {
+ return false;
+ }
+
+ return nodeTemplateIdToType.get(sourceNodeTemplateId).equals(nodeTemplateIdToType
+ .get(targetNodeTemplateId));
+ }
+
private void updatePropertyGetAttrFunc(
ServiceTemplate serviceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
@@ -2153,11 +2311,6 @@ public class UnifiedCompositionService {
if (portIdList.contains(portNodeTemplateId)) {
return unifiedCompositionData.getComputeTemplateConsolidationData();
}
-// for (String portId : portIdList) {
-// if (portId.equals(portNodeTemplateId)) {
-// return unifiedCompositionData.getComputeTemplateConsolidationData();
-// }
-// }
}
}
return null;
@@ -2334,7 +2487,7 @@ public class UnifiedCompositionService {
//If the value object is Optional.empty it implies that the property name was not
// found in the input name
if (!(propertyValue instanceof Optional)) {
- if(!abstractPropertyValue.contains(propertyValue)) {
+ if (!abstractPropertyValue.contains(propertyValue)) {
abstractPropertyValue.add(propertyValue);
}
}
@@ -2360,16 +2513,16 @@ public class UnifiedCompositionService {
ParameterDefinition parameterDefinition,
List<Object> abstractPropertyValue,
Map<String, Object> abstractSubstituteProperties) {
- if(abstractPropertyValue.size() > 1) {
+ if (abstractPropertyValue.size() > 1) {
abstractSubstituteProperties.put(substitutionTemplateInputName, abstractPropertyValue);
} else {
Object propertyValue = abstractPropertyValue.get(0);
String entrySchemaType = parameterDefinition.getEntry_schema().getType();
- if(entrySchemaType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
+ 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.equals(PropertyTypeExt.JSON.getDisplayName())) {
abstractSubstituteProperties.put(substitutionTemplateInputName, abstractPropertyValue);
} else {
abstractSubstituteProperties.put(substitutionTemplateInputName, propertyValue);
@@ -2475,6 +2628,7 @@ public class UnifiedCompositionService {
TranslationContext context) {
removeNodeTemplateFromServiceTemplate(serviceTemplate, entity, context);
updateHeatStackGroup(serviceTemplate, entity, context);
+ updateSubstitutionMapping(serviceTemplate, context);
}
private void removeNodeTemplateFromServiceTemplate(ServiceTemplate serviceTemplate,
@@ -2544,6 +2698,64 @@ public class UnifiedCompositionService {
groupEntry.getValue().setMembers(members);
}
+ private void updateSubstitutionMapping(ServiceTemplate serviceTemplate,
+ TranslationContext context) {
+ SubstitutionMapping substitutionMappings =
+ DataModelUtil.getSubstitutionMappings(serviceTemplate);
+ if (Objects.nonNull(substitutionMappings)) {
+
+ if (Objects.nonNull(substitutionMappings.getRequirements())) {
+ updateSubstitutionMappingRequirements(substitutionMappings.getRequirements(),
+ serviceTemplate, context);
+ }
+
+ if (Objects.nonNull(substitutionMappings.getCapabilities())) {
+ updateSubstitutionMappingCapabilities(substitutionMappings.getCapabilities(),
+ serviceTemplate, context);
+ }
+ }
+ }
+
+ private void updateSubstitutionMappingRequirements(Map<String, List<String>>
+ 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));
+ String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
+ serviceTemplate, oldNodeTemplateId);
+ if (Objects.nonNull(newAbstractNodeTemplateId)
+ && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+ requirement.set(0, newAbstractNodeTemplateId);
+ String newRequirementValue = requirement.get(1) + "_" + newSubstitutionNodeTemplateId;
+ requirement.set(1, newRequirementValue);
+ }
+ }
+ }
+
+ private void updateSubstitutionMappingCapabilities(Map<String, List<String>>
+ 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));
+ String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
+ serviceTemplate, oldNodeTemplateId);
+ if (Objects.nonNull(newAbstractNodeTemplateId)
+ && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+ capability.set(0, newAbstractNodeTemplateId);
+ String newRequirementValue = capability.get(1) + "_" + newSubstitutionNodeTemplateId;
+ capability.set(1, newRequirementValue);
+ }
+ }
+ }
+
private void updateHeatStackGroupNestedComposition(ServiceTemplate serviceTemplate,
EntityConsolidationData entity,
TranslationContext context) {
@@ -2576,24 +2788,25 @@ public class UnifiedCompositionService {
updateNestedNodeTemplateProperties(nestedServiceTemplate, nestedNodeTemplate, context);
Optional<String> unifiedNestedNodeTypeId = context
- .getUnifiedNestedNodeTypeId(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ .getUnifiedNestedNodeTypeId(
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
nestedNodeTemplate.getType());
unifiedNestedNodeTypeId
.ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
- mainServiceTemplate, nestedServiceTemplate, context));
+ mainServiceTemplate, context));
}
private void updateNestedNodeTemplateProperties(ServiceTemplate nestedServiceTemplate,
NodeTemplate nestedNodeTemplate,
- TranslationContext context){
+ TranslationContext context) {
Map<String, Object> newPropertyInputParamIds =
context.getAllNewPropertyInputParamIdsPerNodeTenplateId(ToscaUtil
.getServiceTemplateFileName(nestedServiceTemplate));
- for(Map.Entry<String, Object> entry : newPropertyInputParamIds.entrySet()){
- if(Objects.nonNull(entry.getValue())) {
+ for (Map.Entry<String, Object> entry : newPropertyInputParamIds.entrySet()) {
+ if (Objects.nonNull(entry.getValue())) {
Object value = getClonedObject(entry.getValue());
nestedNodeTemplate.getProperties().put(entry.getKey(), value);
}
@@ -2603,38 +2816,42 @@ public class UnifiedCompositionService {
private void handleSubstitutionMappingInNestedServiceTemplate(
String newNestedNodeType,
- ServiceTemplate nestedServiceTemplate) {
+ ServiceTemplate nestedServiceTemplate,
+ TranslationContext context) {
if (Objects.isNull(newNestedNodeType)) {
return;
}
- SubstitutionMapping substitutionMappings =
+ Set<String> relatedNestedNodeTypeIds =
+ context.getAllRelatedNestedNodeTypeIds();
+
+ SubstitutionMapping substitutionMappings =
nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
- substitutionMappings.setNode_type(newNestedNodeType);
+ if(!relatedNestedNodeTypeIds.contains(substitutionMappings.getNode_type())) {
+ substitutionMappings.setNode_type(newNestedNodeType);
+ }
}
private void updateNestedNodeTemplate(String newNestedNodeTypeId,
String nestedNodeTemplateId,
NodeTemplate nestedNodeTemplate,
ServiceTemplate mainServiceTemplate,
- ServiceTemplate nestedServiceTemplate,
TranslationContext context) {
- String mainServiceTemplateName = ToscaUtil.getServiceTemplateFileName(mainServiceTemplate);
+ String mainSTName = ToscaUtil.getServiceTemplateFileName(mainServiceTemplate);
+ String globalSTName =
+ ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
int index =
- context.getHandledNestedComputeNodeTemplateIndex(mainServiceTemplateName,
- 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);
- context
- .addUnifiedNestedNodeTemplateId(mainServiceTemplateName,
- nestedNodeTemplateId, newNodeTemplateId);
+ context.addUnifiedNestedNodeTemplateId(mainSTName, nestedNodeTemplateId, newNodeTemplateId);
}
private void handleNestedNodeTypesInGlobalSubstituteServiceTemplate(
@@ -2645,14 +2862,20 @@ public class UnifiedCompositionService {
Set<String> relatedNestedNodeTypeIds =
context.getAllRelatedNestedNodeTypeIds();
- if(!relatedNestedNodeTypeIds.contains(origNestedNodeTypeId)) {
- Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
+ Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
+ if (!relatedNestedNodeTypeIds.contains(origNestedNodeTypeId)) {
NodeType nested = DataModelUtil.getNodeType(globalSubstitutionServiceTemplate,
origNestedNodeTypeId);
setNewValuesForNestedNodeType(origNestedNodeTypeId, newNestedNodeTypeId, nested, nodeTypes);
- context.addUnifiedNestedNodeTypeId(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
- origNestedNodeTypeId, newNestedNodeTypeId);
+ } else {
+ NodeType nested =
+ (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);
}
private void setNewValuesForNestedNodeType(String origNestedNodeType,
@@ -3041,35 +3264,6 @@ public class UnifiedCompositionService {
return null;
}
- private <T> Object getClonedObject(Object objectValue, Class<T> clazz) {
- YamlUtil yamlUtil = new YamlUtil();
- Object clonedObjectValue;
- String objectToYaml = yamlUtil.objectToYaml(objectValue);
- clonedObjectValue = yamlUtil.yamlToObject(objectToYaml, clazz);
- return clonedObjectValue;
- }
-
- private Object getClonedObject(Object objectValue) {
- Object clonedObjectValue;
- try {
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
- objectOutputStream.writeObject(objectValue);
-
- ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream
- .toByteArray());
- ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
- clonedObjectValue = objectInputStream.readObject();
- } catch (NotSerializableException ex) {
- return getClonedObject(objectValue, objectValue.getClass());
- } catch (IOException ioe) {
- return null;
- } catch (ClassNotFoundException cnfe) {
- return null;
- }
- return clonedObjectValue;
- }
-
private Map<String, UnifiedCompositionEntity> getAllConsolidationNodeTemplateIdAndType(
List<UnifiedCompositionData> unifiedCompositionDataList) {
@@ -3100,15 +3294,15 @@ public class UnifiedCompositionService {
return consolidationNodeTemplateIdAndType;
}
- private enum PortInputType {
- NodeTemplateId,
- PortType,
- Other;
- }
-
private List<PortTemplateConsolidationData> getPortTemplateConsolidationDataList(
UnifiedCompositionData unifiedCompositionData) {
return unifiedCompositionData.getPortTemplateConsolidationDataList() == null ? new
ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
}
+
+ private enum PortInputType {
+ NodeTemplateId,
+ PortType,
+ Other;
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
index 4d08176943..5586574669 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
@@ -1,10 +1,8 @@
package org.openecomp.sdc.translator.services.heattotosca;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
import java.util.Collection;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesGenerator.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesGenerator.java
index 6dada6ab84..9eadfc2907 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesGenerator.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesGenerator.java
@@ -60,4 +60,21 @@ public class GlobalTypesGenerator {
globalImports.add(globalImportMap);
return globalImports;
}
+
+ /**
+ * Gets global types import list for Manual Vsp onboarding.
+ *
+ * @return the global types import list
+ */
+ public static List<Map<String, Import>> getManualVspGlobalTypesImportList() {
+ List<Map<String, Import>> globalImports = new ArrayList<>();
+ Map<String, Import> globalImportMap = new HashMap<>();
+ Map<String, ServiceTemplate> globalTypesServiceTemplate =
+ GlobalTypesGenerator.getGlobalTypesServiceTemplate();
+ globalImportMap.put("openecomp_index",
+ HeatToToscaUtil.createServiceTemplateImport(globalTypesServiceTemplate.get
+ ("openecomp/_index.yml")));
+ globalImports.add(globalImportMap);
+ return globalImports;
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesServiceTemplates.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesServiceTemplates.java
index cbc56d7773..531de16998 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesServiceTemplates.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/globaltypes/GlobalTypesServiceTemplates.java
@@ -6,7 +6,7 @@ import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.logging.types.LoggerErrorDescription;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.translator.utils.ResourceWalker;
import java.util.HashMap;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/VolumeTranslationHelper.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/VolumeTranslationHelper.java
index 5f4e40a4b2..f1cb33372e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/VolumeTranslationHelper.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/VolumeTranslationHelper.java
@@ -25,7 +25,7 @@ import static org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes.CINDER_V
import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.sdc.common.utils.CommonUtil;
import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
import org.openecomp.sdc.heat.datatypes.model.Output;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java
index 823daa53c8..6f7d7a921e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java
@@ -20,7 +20,7 @@
package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
import org.openecomp.sdc.heat.datatypes.model.Resource;
import org.openecomp.sdc.heat.services.HeatConstants;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceConnection.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceConnection.java
index b9fed89133..b0094b0a7c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceConnection.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceConnection.java
@@ -21,7 +21,7 @@
package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
index eed7953cda..3b9eb08f53 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImpl.java
@@ -507,7 +507,7 @@ public class ResourceTranslationContrailServiceInstanceImpl extends ResourceTran
portProperties.put("order", index);
}
portNodeTemplate.setProperties(portProperties);
- HeatToToscaUtil.addBindingReqFromPortToCompute(computeNodeTemplateId, portNodeTemplate);
+ DataModelUtil.addBindingReqFromPortToCompute(computeNodeTemplateId, portNodeTemplate);
mdcDataDebugMessage.debugExitMessage(null, null);
return portNodeTemplate;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java
index 499ac5f80a..96c105c04a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java
@@ -46,7 +46,6 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
-import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
import org.openecomp.sdc.translator.services.heattotosca.Constants;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
@@ -480,7 +479,7 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
if (translatedPortId.isPresent()) {
NodeTemplate portNodeTemplate =
DataModelUtil.getNodeTemplate(serviceTemplate, translatedPortId.get());
- HeatToToscaUtil.addBindingReqFromPortToCompute(novaServerResourceId, portNodeTemplate);
+ DataModelUtil.addBindingReqFromPortToCompute(novaServerResourceId, portNodeTemplate);
// Add ports
ConsolidationDataUtil.updatePortInConsolidationData(translateTo, novaNodeTemplate.getType(),
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java
index 9742a44f52..c1daf1891a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionCatalogInstance.java
@@ -11,18 +11,56 @@ import java.util.List;
import java.util.Optional;
public class UnifiedCompositionCatalogInstance implements UnifiedComposition {
+
+ UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
+
+ // There is consolidation in ScalingInstance implemetation.
+ // In case of scaling instance, if there is more than one entry in the
+ // unifiedComposotionDataList, we should have consolidation between them.
+ // (all entries in the list are the once which need to be consolidated)
@Override
public void createUnifiedComposition(ServiceTemplate serviceTemplate,
ServiceTemplate nestedServiceTemplate,
List<UnifiedCompositionData> unifiedComposotionDataList,
TranslationContext context) {
+ UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
+ unifiedCompositionService.handleComplexVfcType(serviceTemplate, context);
+
UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
new UnifiedCompositionSingleSubstitution();
- unifiedCompositionSingleSubstitution
- .createUnifiedComposition(serviceTemplate, null, unifiedComposotionDataList, context);
- }
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(serviceTemplate,
+ unifiedComposotionDataList.get(0), null, context);
+ // create one substitution ST for all computes
+ Optional<ServiceTemplate> substitutionServiceTemplate =
+ unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
+ unifiedComposotionDataList, context, substitutionNodeTypeId, null);
+
+ if (!substitutionServiceTemplate.isPresent()) {
+ return;
+ }
+
+ // create abstract NT for each compute
+ for(int i = 0; i < unifiedComposotionDataList.size(); i++){
+ List<UnifiedCompositionData> catalogInstanceUnifiedList = new ArrayList<>();
+ catalogInstanceUnifiedList.add(unifiedComposotionDataList.get(i));
+ Integer index = unifiedComposotionDataList.size() > 1 ? i : null;
+
+ unifiedCompositionService
+ .createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
+ catalogInstanceUnifiedList, substitutionNodeTypeId, context, index);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(serviceTemplate, catalogInstanceUnifiedList, context);
+
+ unifiedCompositionService
+ .cleanUnifiedCompositionEntities(serviceTemplate, catalogInstanceUnifiedList, context);
+ }
+
+ unifiedCompositionService.cleanNodeTypes(serviceTemplate, unifiedComposotionDataList, context);
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
index 03d7eb02df..8530d5150d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionNestedSingleCompute.java
@@ -11,6 +11,11 @@ import java.util.ArrayList;
import java.util.List;
public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition {
+
+ // There is no consolidation in NestedSingleCompute implemetation.
+ // In case of nested single compute, if there is more than one entry in the
+ // unifiedComposotionDataList, each one should be handed seperatly, no consolidation between
+ // them.
@Override
public void createUnifiedComposition(ServiceTemplate serviceTemplate,
ServiceTemplate nestedServiceTemplate,
@@ -27,12 +32,12 @@ public class UnifiedCompositionNestedSingleCompute implements UnifiedComposition
unifiedCompositionService
.handleUnifiedNestedDefinition(serviceTemplate, nestedServiceTemplate,
- unifiedCompositionDataList, context);
+ unifiedCompositionDataList.get(i), context);
unifiedCompositionService
.updateUnifiedNestedConnectivity(serviceTemplate, nestedServiceTemplate,
- nestedUnifiedCompositionDataList, context);
+ unifiedCompositionDataList.get(i), context);
unifiedCompositionService
- .cleanUnifiedNestedEntities(serviceTemplate, nestedUnifiedCompositionDataList, context);
+ .cleanUnifiedNestedEntities(serviceTemplate, unifiedCompositionDataList.get(i), context);
}
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java
index fe287a4014..001655d2b0 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionScalingInstances.java
@@ -7,7 +7,6 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.compositi
import org.openecomp.sdc.translator.services.heattotosca.UnifiedComposition;
import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionService;
-import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -20,14 +19,20 @@ public class UnifiedCompositionScalingInstances implements UnifiedComposition {
ServiceTemplate nestedServiceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
- if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
+ if (CollectionUtils.isEmpty(unifiedCompositionDataList)
+ || context.isUnifiedHandledServiceTemplate(serviceTemplate)) {
return;
}
+ unifiedCompositionService.handleComplexVfcType(serviceTemplate, context);
+
Integer index = null;
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(serviceTemplate,
+ unifiedCompositionDataList.get(0), null, context);
Optional<ServiceTemplate> substitutionServiceTemplate =
unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
- unifiedCompositionDataList, context, index);
+ unifiedCompositionDataList, context, substitutionNodeTypeId, index);
if (!substitutionServiceTemplate.isPresent()) {
return;
@@ -35,7 +40,7 @@ public class UnifiedCompositionScalingInstances implements UnifiedComposition {
String abstractNodeTemplateId = unifiedCompositionService
.createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
- unifiedCompositionDataList, context, index);
+ unifiedCompositionDataList, substitutionNodeTypeId, context, index);
unifiedCompositionService
.updateCompositionConnectivity(serviceTemplate, unifiedCompositionDataList, context);
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
index c3965a5f52..a7078f2e5d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/unifiedcomposition/UnifiedCompositionSingleSubstitution.java
@@ -17,6 +17,8 @@ import java.util.Optional;
*/
public class UnifiedCompositionSingleSubstitution implements UnifiedComposition {
+ UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
+
// There is no consolidation in SingleSubstitution implemetation.
// In case of single substitution, if there is more than one entry in the
// unifiedComposotionDataList, they all should contain the same compute type but the
@@ -28,27 +30,35 @@ public class UnifiedCompositionSingleSubstitution implements UnifiedComposition
ServiceTemplate nestedServiceTemplate,
List<UnifiedCompositionData> unifiedCompositionDataList,
TranslationContext context) {
- UnifiedCompositionService unifiedCompositionService = new UnifiedCompositionService();
- if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
+ if (CollectionUtils.isEmpty(unifiedCompositionDataList)
+ || context.isUnifiedHandledServiceTemplate(serviceTemplate)) {
return;
}
+ unifiedCompositionService.handleComplexVfcType(serviceTemplate, context);
+
for (int i = 0; i < unifiedCompositionDataList.size(); i++) {
List<UnifiedCompositionData> singleSubstitutionUnifiedList = new ArrayList<>();
singleSubstitutionUnifiedList.add(unifiedCompositionDataList.get(i));
Integer index = unifiedCompositionDataList.size() > 1 ? i : null;
+
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(serviceTemplate,
+ singleSubstitutionUnifiedList.get(0), null, context);
+
Optional<ServiceTemplate> substitutionServiceTemplate =
unifiedCompositionService.createUnifiedSubstitutionServiceTemplate(serviceTemplate,
- singleSubstitutionUnifiedList, context, index);
+ singleSubstitutionUnifiedList, context, substitutionNodeTypeId, null);
if (!substitutionServiceTemplate.isPresent()) {
continue;
}
+
String abstractNodeTemplateId = unifiedCompositionService
.createAbstractSubstituteNodeTemplate(serviceTemplate, substitutionServiceTemplate.get(),
- singleSubstitutionUnifiedList, context, index);
+ singleSubstitutionUnifiedList, substitutionNodeTypeId, context, null);
unifiedCompositionService
.updateCompositionConnectivity(serviceTemplate, singleSubstitutionUnifiedList, context);
@@ -60,6 +70,5 @@ public class UnifiedCompositionSingleSubstitution implements UnifiedComposition
unifiedCompositionService
.cleanNodeTypes(serviceTemplate, unifiedCompositionDataList, context);
-
}
}
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 763631ff5e..5c2f3db833 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
@@ -22,6 +22,7 @@ package org.openecomp.sdc.translator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
+import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Assert;
import org.openecomp.core.translator.api.HeatToToscaTranslator;
import org.openecomp.core.utilities.file.FileUtils;
@@ -32,7 +33,7 @@ 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.DataModelUtil;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.*;
import java.io.File;
@@ -501,6 +502,28 @@ public class TestUtils {
return requirementAssignmentDataMap;
}
+ public static Map<String, List<GetAttrFuncData>> getNodesGetAttrIn(NodeTemplate nodeTemplate,
+ String nodeTemplateId) {
+ Map<String, List<GetAttrFuncData>> nodesGetAttrIn = new HashMap<>();
+ List<GetAttrFuncData> getAttrList = new ArrayList<>();
+ ObjectMapper mapper = new ObjectMapper();
+ Map<String, Object> nodeTemplateProperties = nodeTemplate.getProperties();
+ for (Map.Entry<String, Object> propertyEntry : nodeTemplateProperties.entrySet()) {
+ Map<String, List> propertyValue = mapper.convertValue(propertyEntry.getValue(), Map.class);
+ for (Map.Entry<String, List> entry : propertyValue.entrySet()) {
+ if (entry.getKey().equals("get_attribute")) {
+ GetAttrFuncData data = new GetAttrFuncData();
+ data.setFieldName(propertyEntry.getKey());
+ data.setAttributeName(entry.getValue().get(1).toString());
+ getAttrList.add(data);
+ }
+ }
+ System.out.println();
+ }
+ nodesGetAttrIn.put(nodeTemplateId, getAttrList);
+ return nodesGetAttrIn;
+ }
+
public static void updatePortsInComputeTemplateConsolidationData(
List<Pair<String, String>> portIdToTypeList, ComputeTemplateConsolidationData
compute){
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
index b525191571..5c0c3952ce 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
@@ -4,8 +4,15 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
-import org.mockito.*;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaConstants;
@@ -17,11 +24,14 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -42,6 +52,7 @@ public class ConsolidationServiceTest {
@Captor
private ArgumentCaptor<UnifiedCompositionMode> unifiedCompositionModeArg;
+ @Spy
@InjectMocks
private ConsolidationService consolidationService;
@@ -56,7 +67,8 @@ public class ConsolidationServiceTest {
ConsolidationData consolidationData = new ConsolidationData();
String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel(
- "/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/valid_pre_condition/", null,
+ "/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/valid_pre_condition/",
+ null,
null);
TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName,
@@ -97,9 +109,11 @@ public class ConsolidationServiceTest {
ConsolidationData consolidationData = new ConsolidationData();
String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
- ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/one_compute_node/", null, null);
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/one_compute_node/",
+ null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -133,7 +147,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/more_than_one_port/",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
@@ -169,7 +184,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_port_types",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
@@ -212,7 +228,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -259,7 +276,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -341,12 +359,14 @@ public class ConsolidationServiceTest {
translationContext.setConsolidationData(consolidationData);
List<UnifiedCompositionMode> expectedUnifiedModes =
- Arrays.asList(UnifiedCompositionMode.SingleSubstitution, UnifiedCompositionMode.SingleSubstitution);
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution,
+ UnifiedCompositionMode.SingleSubstitution);
verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
}
@Test
- public void testConsolidationValidForTwoSimilarComputeAndFalseForSingleCompute() throws IOException {
+ public void testConsolidationValidForTwoSimilarComputeAndFalseForSingleCompute()
+ throws IOException {
ConsolidationData consolidationData = new ConsolidationData();
String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
@@ -354,8 +374,10 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_two_similar_one_diff",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName1, consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName2, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName1, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName2, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -401,7 +423,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -503,7 +526,8 @@ public class ConsolidationServiceTest {
translationContext.setConsolidationData(consolidationData);
List<UnifiedCompositionMode> expectedUnifiedModes =
- Arrays.asList(UnifiedCompositionMode.CatalogInstance, UnifiedCompositionMode.CatalogInstance);
+ Arrays
+ .asList(UnifiedCompositionMode.CatalogInstance, UnifiedCompositionMode.CatalogInstance);
verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
}
@@ -562,7 +586,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_flavor_name_diff",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -652,7 +677,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_fixed_ips",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -695,7 +721,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_allowed_address_pairs",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -737,7 +764,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_mac_address",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -779,7 +807,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/ports_with_none_of_the_properties",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -804,13 +833,16 @@ public class ConsolidationServiceTest {
TestUtils.initPortConsolidationData(mainST, consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -827,7 +859,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_with_same_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -853,20 +886,24 @@ public class ConsolidationServiceTest {
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
- computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"), Arrays.asList("cmaui_volume"),
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"),
Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
portTypeToIdList,
consolidationData);
TestUtils.initPortConsolidationData(mainST, consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
@@ -884,7 +921,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -901,7 +939,7 @@ public class ConsolidationServiceTest {
mainST,
computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
- null,null ,
+ null, null,
portTypeToIdList,
consolidationData);
@@ -933,7 +971,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -983,7 +1022,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1033,14 +1073,16 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1083,14 +1125,16 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1116,13 +1160,16 @@ public class ConsolidationServiceTest {
TestUtils.initPortConsolidationData(mainST, consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1139,14 +1186,16 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1172,13 +1221,16 @@ public class ConsolidationServiceTest {
TestUtils.initPortConsolidationData(mainST, consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
- Arrays.asList("node_in_2"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_2"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1195,14 +1247,16 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1228,13 +1282,16 @@ public class ConsolidationServiceTest {
TestUtils.initPortConsolidationData(mainST, consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
- Arrays.asList("node_in_1"), Arrays.asList("net_id_2"), Arrays.asList("group_id_1"), null, null,
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_2"), Arrays.asList("group_id_1"), null,
+ null,
consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1251,14 +1308,16 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1310,7 +1369,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1318,7 +1378,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_1"), null,
portTypeToIdList,
consolidationData);
@@ -1370,7 +1431,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1378,7 +1440,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("server_ps02"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("server_ps02"), null,
portTypeToIdList,
consolidationData);
@@ -1430,7 +1493,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1438,7 +1502,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null,
+ null,
portTypeToIdList,
consolidationData);
@@ -1466,18 +1531,21 @@ public class ConsolidationServiceTest {
List<String> portNodeTemplateIds =
Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
List<List<String>> nodesConnectedInIds =
- Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
- Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
- Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
+ Arrays.asList("get_attr_3"));
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
"group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
TestUtils.updateMultiplePortConsolidationDatas(
- mainST, portNodeTemplateIds,nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
getAttrInIds, getAttrOut, consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1492,10 +1560,11 @@ public class ConsolidationServiceTest {
String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation" +
- "/three_ports_similar_relations",
+ "/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1503,7 +1572,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_1"), null,
portTypeToIdList,
consolidationData);
@@ -1531,11 +1601,14 @@ public class ConsolidationServiceTest {
List<String> portNodeTemplateIds =
Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
List<List<String>> nodesConnectedInIds =
- Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
- Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
- Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("cm01_port_1"));
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
+ Arrays.asList("cm01_port_1"));
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
"group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
@@ -1560,7 +1633,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1568,7 +1642,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
portTypeToIdList,
consolidationData);
@@ -1596,11 +1671,14 @@ public class ConsolidationServiceTest {
List<String> portNodeTemplateIds =
Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
List<List<String>> nodesConnectedInIds =
- Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
- Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
- Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
+ Arrays.asList("get_attr_3"));
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
"group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
@@ -1624,7 +1702,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
@@ -1632,7 +1711,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
portTypeToIdList,
consolidationData);
@@ -1687,7 +1767,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
@@ -1696,7 +1777,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
portTypeToIdList,
consolidationData);
@@ -1732,22 +1814,27 @@ public class ConsolidationServiceTest {
"sm01_port_3");
List<List<String>> nodesConnectedInIds =
Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
- ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
- ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList
- ("get_attr_3"), Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ ("get_attr_3"), Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"),
+ Arrays.asList("get_attr_3"));
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null, null,
null, null);
TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
- nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
+ consolidationData);
translationContext.setConsolidationData(consolidationData);
List<UnifiedCompositionMode> expectedUnifiedModes =
@@ -1763,7 +1850,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1771,7 +1859,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
portTypeToIdList,
consolidationData);
@@ -1805,16 +1894,19 @@ public class ConsolidationServiceTest {
"sm01_port_3");
List<List<String>> nodesConnectedInIds =
Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
- ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
- ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
Arrays.asList(null, null, null, null, null, null);
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_2", getAttrFuncData)),
@@ -1824,7 +1916,8 @@ public class ConsolidationServiceTest {
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
- nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
+ consolidationData);
translationContext.setConsolidationData(consolidationData);
List<UnifiedCompositionMode> expectedUnifiedModes =
@@ -1840,7 +1933,8 @@ public class ConsolidationServiceTest {
("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
null, null);
- TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
@@ -1848,7 +1942,8 @@ public class ConsolidationServiceTest {
TestUtils.updateComputeTemplateConsolidationData(
mainST,
computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
- ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
portTypeToIdList,
consolidationData);
@@ -1882,16 +1977,19 @@ public class ConsolidationServiceTest {
"sm01_port_3");
List<List<String>> nodesConnectedInIds =
Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
- ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"),
+ Arrays.asList("node_in_1"));
List<List<String>> nodesConnectedOutIds =
Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
- ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"),
+ Arrays.asList("node_out_1"));
List<List<String>> getAttrInIds =
Arrays.asList(null, null, null, null, null, null);
List<List<String>> groupIds =
Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
- "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
@@ -1901,7 +1999,8 @@ public class ConsolidationServiceTest {
Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
- nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut,
+ consolidationData);
translationContext.setConsolidationData(consolidationData);
List<UnifiedCompositionMode> expectedUnifiedModes =
@@ -1916,14 +2015,19 @@ public class ConsolidationServiceTest {
String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
ConsolidationData consolidationData = new ConsolidationData();
- TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
- ".heat.pcm_server", "pcm_server", consolidationData);
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1931,32 +2035,41 @@ public class ConsolidationServiceTest {
addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
verifySubstitutionServiceTemplateConsolidation
- (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
- translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
- UnifiedCompositionMode.NestedSingleCompute);
+ (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+ UnifiedCompositionMode.NestedSingleCompute);
}
@Test
- public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeType() throws IOException {
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeType()
+ throws IOException {
translationContext = new TranslationContext();
String mainSTName = "MainServiceTemplate.yaml";
String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
ConsolidationData consolidationData = new ConsolidationData();
- TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes" +
- ".heat.pcm_server", "server_pcm_001", consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
-
- TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_oam_001"), consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
- ".oam_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam_001", consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
- ".oam_server", consolidationData);
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_oam_001"),
+ consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -1964,57 +2077,75 @@ public class ConsolidationServiceTest {
addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
verifySubstitutionServiceTemplateConsolidation
- (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
- translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get
+ (nestedServiceTemplateName), UnifiedCompositionMode.SingleSubstitution);
}
@Test
- public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeOfSameType() throws IOException {
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeOfSameType()
+ throws IOException {
translationContext = new TranslationContext();
String mainSTName = "MainServiceTemplate.yaml";
String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
ConsolidationData consolidationData = new ConsolidationData();
- TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
- ".heat.pcm_server", "pcm_server_1", consolidationData);
-
- TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("server_pcm_002"),
- consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
- ".heat.pcm_server", "pcm_server_2", consolidationData);
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_1", consolidationData);
+
+ TestUtils
+ .updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("server_pcm_002"),
+ consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_2", consolidationData);
translationContext.setConsolidationData(consolidationData);
addMockServiceTemplateToContext(mainSTName, "Main");
addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+ Mockito.doNothing().when(consolidationService).serviceTemplateConsolidation
+ (translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), translationContext);
verifySubstitutionServiceTemplateConsolidation
- (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
- translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+ UnifiedCompositionMode.SingleSubstitution);
}
@Test
- public void testSubstitutionConsolidationPreConditionFalseNestedInsideNested(){
+ public void testSubstitutionConsolidationPreConditionFalseNestedInsideNested() {
translationContext = new TranslationContext();
String mainSTName = "MainServiceTemplate.yaml";
String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
ConsolidationData consolidationData = new ConsolidationData();
- TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
- TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
- ".pcm_server", consolidationData);
- TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
- ".heat.pcm_server", "pcm_server", consolidationData);
-
- TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("nested_resource"), consolidationData);
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName,
+ "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
+
+ TestUtils
+ .updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("nested_resource"),
+ consolidationData);
translationContext.setConsolidationData(consolidationData);
@@ -2022,15 +2153,18 @@ public class ConsolidationServiceTest {
addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
verifySubstitutionServiceTemplateConsolidation
- (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
- translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+ UnifiedCompositionMode.SingleSubstitution);
}
private void verifyMainServiceTemplateConsolidation(int times,
List<UnifiedCompositionMode> expectedUnifiedCompositionModes,
ToscaServiceModel toscaServiceModel) {
- consolidationService.mainServiceTemplateConsolidation(toscaServiceModel.getServiceTemplates().get(mainST), translationContext);
+ consolidationService
+ .serviceTemplateConsolidation(toscaServiceModel.getServiceTemplates().get(mainST),
+ translationContext);
ServiceTemplate mainServiceTemplate = toscaServiceModel.getServiceTemplates().get(mainST);
verify(unifiedCompositionServiceMock, times(times))
@@ -2041,44 +2175,38 @@ public class ConsolidationServiceTest {
unifiedCompositionModeArg.capture(),
eq(translationContext));
- List<UnifiedCompositionMode> actualUnifiedCompositionModes = unifiedCompositionModeArg.getAllValues();
+ List<UnifiedCompositionMode> actualUnifiedCompositionModes =
+ unifiedCompositionModeArg.getAllValues();
Assert.assertEquals(expectedUnifiedCompositionModes, actualUnifiedCompositionModes);
}
private void verifySubstitutionServiceTemplateConsolidation(int times,
ServiceTemplate mainST,
- ServiceTemplate nestedST, UnifiedCompositionMode expectedMode){
+ ServiceTemplate nestedST,
+ UnifiedCompositionMode expectedMode) {
consolidationService.substitutionServiceTemplateConsolidation(null, mainST,
nestedST, translationContext);
- if(times == 0){
- verify(unifiedCompositionServiceMock, never()).
- createUnifiedComposition(
- any(),
- any(),
- any(),
- any(),
- eq(translationContext));
- }else {
+ if (expectedMode.equals(UnifiedCompositionMode.NestedSingleCompute)) {
verify(unifiedCompositionServiceMock, times(times)).
- createUnifiedComposition(
- eq(mainST),
- eq(nestedST),
- unifiedModelListArg.capture(),
- unifiedCompositionModeArg.capture(),
- eq(translationContext));
-
+ createUnifiedComposition(
+ eq(mainST),
+ eq(nestedST),
+ unifiedModelListArg.capture(),
+ unifiedCompositionModeArg.capture(),
+ eq(translationContext));
Assert.assertEquals(expectedMode, unifiedCompositionModeArg.getValue());
- }
+ }
}
- private void addMockServiceTemplateToContext(String serviceTemplateFileName, String templateName) {
+ private void addMockServiceTemplateToContext(String serviceTemplateFileName,
+ String templateName) {
ServiceTemplate serviceTemplate = new ServiceTemplate();
Map<String, String> metadata = new HashMap<>();
metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, templateName);
serviceTemplate.setMetadata(metadata);
translationContext.getTranslatedServiceTemplates()
- .put(serviceTemplateFileName, serviceTemplate);
+ .put(serviceTemplateFileName, serviceTemplate);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
index 5b57a9ac37..642d7078ca 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
@@ -7,23 +7,23 @@ import static org.mockito.Matchers.anyString;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.translator.TestUtils;
import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.*;
-import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionNestedSingleCompute;
import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionSingleSubstitution;
import java.io.IOException;
@@ -71,7 +71,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.vfc.nodes.heat.FSB1", null);
assertEquals(false, substitutionServiceTemplate.isPresent());
}
@@ -97,7 +97,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -129,7 +129,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -169,7 +169,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -196,7 +196,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -226,7 +226,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, 2);
+ context,"org.openecomp.resource.abstract.nodes.FSB1", 2);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -256,12 +256,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
if (substitutionServiceTemplate.isPresent()) {
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
- unifiedCompositionDataList,
+ unifiedCompositionDataList, substitutionNodeTypeId,
context, null);
validateAbstractSubstitute();
}
@@ -288,13 +291,16 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
if (substitutionServiceTemplate.isPresent()) {
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
- unifiedCompositionDataList,
+ unifiedCompositionDataList, substitutionNodeTypeId,
context, null);
validateAbstractSubstitute();
}
@@ -314,12 +320,16 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
if (substitutionServiceTemplate.isPresent()) {
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
validateAbstractSubstitute();
}
}
@@ -338,12 +348,16 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
if (substitutionServiceTemplate.isPresent()) {
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -381,12 +395,16 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
if (substitutionServiceTemplate.isPresent()) {
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -418,11 +436,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.abstract.nodes.QRouter", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -446,11 +468,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.abstract.nodes.FSB", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -481,11 +507,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -507,11 +537,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -546,11 +580,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.abstract.nodes.smp", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -574,11 +612,15 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList
- , context, null);
+ , context, "org.openecomp.resource.vfc.nodes.heat.FSB", null);
- String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
- (inputServiceTemplates.get(mainSTName),
- substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ String substitutionNodeTypeId =
+ unifiedCompositionService.getSubstitutionNodeTypeId(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList.get(0), null, context);
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList, substitutionNodeTypeId,
+ context, null);
unifiedCompositionService
.updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
@@ -760,7 +802,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -801,7 +843,7 @@ public class UnifiedCompositionServiceTest {
Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
.createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
unifiedCompositionDataList,
- context, null);
+ context, "org.openecomp.resource.abstract.nodes.FSB1", null);
assertEquals(true, substitutionServiceTemplate.isPresent());
substitutionServiceTemplate
.ifPresent(
@@ -964,7 +1006,7 @@ public class UnifiedCompositionServiceTest {
checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
}
- @Test
+ @Ignore
public void testThreeNovaOfSameTypePreConditionFalse() throws IOException {
inputServiceTemplatesPath =
"/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in";
@@ -1034,9 +1076,9 @@ public class UnifiedCompositionServiceTest {
context.getTranslatedServiceTemplates()
.put(mainSTName, inputServiceTemplates.get(mainSTName));
- List<UnifiedCompositionData> unifiedCompositionList = createUnifiedCompositionListOnlyNested("server_pcm_001");
+ UnifiedCompositionData unifiedComposition = createUnifiedCompositionOnlyNested("server_pcm_001");
unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
- inputServiceTemplates.get(nestedFileName), unifiedCompositionList, context);
+ inputServiceTemplates.get(nestedFileName), unifiedComposition, context);
checkSTResults(expectedOutserviceTemplates, nestedFileName,
context.getTranslatedServiceTemplates().get(nestedFileName),
@@ -1080,13 +1122,13 @@ public class UnifiedCompositionServiceTest {
context.getTranslatedServiceTemplates()
.put(mainSTName, inputServiceTemplates.get(mainSTName));
- List<UnifiedCompositionData> unifiedCompositionList =
- createUnifiedCompositionListOnlyNested("server_pcm_001");
+ UnifiedCompositionData unifiedComposition =
+ createUnifiedCompositionOnlyNested("server_pcm_001");
unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
- inputServiceTemplates.get(nestedFileName1), unifiedCompositionList, context);
- unifiedCompositionList = createUnifiedCompositionListOnlyNested("server_oam_001");
+ inputServiceTemplates.get(nestedFileName1), unifiedComposition, context);
+ unifiedComposition = createUnifiedCompositionOnlyNested("server_oam_001");
unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
- inputServiceTemplates.get(nestedFileName2), unifiedCompositionList, context);
+ inputServiceTemplates.get(nestedFileName2), unifiedComposition, context);
checkSTResults(expectedOutserviceTemplates, nestedFileName1,
context.getTranslatedServiceTemplates().get(nestedFileName1),
@@ -1121,13 +1163,13 @@ public class UnifiedCompositionServiceTest {
Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
"dependency");
- List<UnifiedCompositionData> unifiedCompositionList =
- createUnifiedCompositionListOnlyNested("server_pcm_001");
- unifiedCompositionList.get(0).getNestedTemplateConsolidationData()
+ UnifiedCompositionData unifiedComposition =
+ createUnifiedCompositionOnlyNested("server_pcm_001");
+ unifiedComposition.getNestedTemplateConsolidationData()
.setNodesConnectedIn(nodeConnectedInList);
unifiedCompositionService.updNestedCompositionNodesConnectedInConnectivity
- (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
checkSTResults(expectedOutserviceTemplates, nestedFileName,
context.getTranslatedServiceTemplates().get(nestedFileName),
context.getTranslatedServiceTemplates()
@@ -1160,18 +1202,18 @@ public class UnifiedCompositionServiceTest {
Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
"dependency");
- List<UnifiedCompositionData> unifiedCompositionList =
- createUnifiedCompositionListOnlyNested("server_pcm_001");
- addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ UnifiedCompositionData unifiedComposition =
+ createUnifiedCompositionOnlyNested("server_pcm_001");
+ addGetAttInUnifiedCompositionData(unifiedComposition
.getNestedTemplateConsolidationData(), "tenant_id", "oam_net_gw", "packet_mirror_network");
- addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ addGetAttInUnifiedCompositionData(unifiedComposition
.getNestedTemplateConsolidationData(), "user_data_format", "oam_net_gw",
"server_compute_get_attr_test");
- addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ addGetAttInUnifiedCompositionData(unifiedComposition
.getNestedTemplateConsolidationData(), "metadata", "server_pcm_id",
"server_compute_get_attr_test");
unifiedCompositionService.updNestedCompositionNodesGetAttrInConnectivity
- (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
checkSTResults(expectedOutserviceTemplates, nestedFileName,
context.getTranslatedServiceTemplates().get(nestedFileName),
context.getTranslatedServiceTemplates()
@@ -1203,14 +1245,14 @@ public class UnifiedCompositionServiceTest {
Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
"dependency");
- List<UnifiedCompositionData> unifiedCompositionList =
- createUnifiedCompositionListOnlyNested("server_pcm_001");
- addOutputGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ UnifiedCompositionData unifiedComposition =
+ createUnifiedCompositionOnlyNested("server_pcm_001");
+ addOutputGetAttInUnifiedCompositionData(unifiedComposition
.getNestedTemplateConsolidationData(), "output_attr_1", "accessIPv4");
- addOutputGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ addOutputGetAttInUnifiedCompositionData(unifiedComposition
.getNestedTemplateConsolidationData(), "output_attr_2", "accessIPv6");
unifiedCompositionService.updNestedCompositionOutputParamGetAttrInConnectivity
- (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ (inputServiceTemplates.get(mainSTName), unifiedComposition, context);
checkSTResults(expectedOutserviceTemplates, nestedFileName,
context.getTranslatedServiceTemplates().get(nestedFileName),
context.getTranslatedServiceTemplates()
@@ -1218,25 +1260,69 @@ public class UnifiedCompositionServiceTest {
.getTranslatedServiceTemplates().get(mainSTName));
}
- private List<UnifiedCompositionData> createUnifiedCompositionListOnlyNested(
- String nestedNodeTemplateId) {
- List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ @Test
+ public void testInputOutputParameterType() throws IOException{
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/out";
+ loadInputAndOutputData();
+ ConsolidationData consolidationData = new ConsolidationData();
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Port", "FSB1_Port1"));
+ portTypeToIdList.add(new ImmutablePair<>("VMI", "VMI1"));
+
+ UnifiedCompositionData unifiedCompositionData = createCompositionData("FSB1", portTypeToIdList);
+
+ Map<String, NodeTemplate> nodeTemplates =
+ inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates();
+ for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet() ) {
+ String nodeTemplateId = nodeTemplateEntry.getKey();
+ if (nodeTemplateId.equals("cmaui_volume_test_compute_properties")) {
+ Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
+ TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
+ unifiedCompositionData.getComputeTemplateConsolidationData()
+ .setNodesGetAttrIn(nodesGetAttrIn);
+ }
+
+ if (nodeTemplateId.equals("cmaui_volume_test_neutron_port_properties")) {
+ Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
+ TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
+ unifiedCompositionData.getPortTemplateConsolidationDataList().get(0)
+ .setNodesGetAttrIn(nodesGetAttrIn);
+ }
+
+ if (nodeTemplateId.equals("cmaui_volume_test_contrailv2_VMI_properties")) {
+ Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
+ TestUtils.getNodesGetAttrIn(nodeTemplateEntry.getValue(), nodeTemplateId);
+ unifiedCompositionData.getPortTemplateConsolidationDataList().get(1)
+ .setNodesGetAttrIn(nodesGetAttrIn);
+ }
+ }
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
+ new UnifiedCompositionSingleSubstitution();
+ unifiedCompositionSingleSubstitution
+ .createUnifiedComposition(inputServiceTemplates.get(mainSTName), null,
+ unifiedCompositionDataList, context);
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ System.out.println();
+
+ }
+
+
+ private UnifiedCompositionData createUnifiedCompositionOnlyNested(
+ String nestedNodeTemplateId) {
NestedTemplateConsolidationData nestedTemplateConsolidationData =
new NestedTemplateConsolidationData();
nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
- unifiedCompositionDataList.add(unifiedCompositionData);
-
-
-// for (NestedTemplateConsolidationData nested : nestedConsolidationDatas) {
-// UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
-// unifiedCompositionData.setNestedTemplateConsolidationData(nested);
-// unifiedCompositionDataList.add(unifiedCompositionData);
-// }
-
- return unifiedCompositionDataList;
+ return unifiedCompositionData;
}
private void setUnifiedCompositionData(List<String> nodeTemplateIds) {
@@ -1359,21 +1445,25 @@ public class UnifiedCompositionServiceTest {
TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
List<RequirementAssignmentData> requirementAssignmentList =
(requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null;
- Map<String, List<RequirementAssignmentData>> volume = getVolume(requirementAssignmentList);
-
+ Map<String, List<RequirementAssignmentData>> volume = null;
+ if (requirementAssignmentList != null) {
+ volume = getVolume(requirementAssignmentList);
+ }
unifiedCompositionData.setComputeTemplateConsolidationData(
TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList,
volume));
- for (Pair<String, String> port : portTypeToIdList) {
- NodeTemplate portNodeTemplate =
- DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
-
- Map<String, List<RequirementAssignmentData>> nodeConnectedOut =
- TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
- PortTemplateConsolidationData portTemplateConsolidationData =
- TestUtils.createPortTemplateConsolidationData(port.getRight());
- portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
- unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
+ if (portTypeToIdList != null) {
+ for (Pair<String, String> port : portTypeToIdList) {
+ NodeTemplate portNodeTemplate =
+ DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
+
+ Map<String, List<RequirementAssignmentData>> nodeConnectedOut =
+ TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
+ PortTemplateConsolidationData portTemplateConsolidationData =
+ TestUtils.createPortTemplateConsolidationData(port.getRight());
+ portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
+ unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
+ }
}
return unifiedCompositionData;
}
@@ -1494,17 +1584,17 @@ public class UnifiedCompositionServiceTest {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "network_name",
"network_id", "jsa_net1");
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
- "addresses", "cmaui_volume1");
+ "device_owner", "cmaui_volume1");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "tenant_id",
"network_id", "jsa_net1");
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "qos_policy",
"network_id", "jsa_net1");
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
- "index", "cmaui_volume1");
+ "tenant_id", "cmaui_volume1");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
- "oam_index", "cmaui_volume1");
+ "status", "cmaui_volume1");
}
}
}
@@ -1514,12 +1604,12 @@ public class UnifiedCompositionServiceTest {
.getPortTemplateConsolidationDataList()) {
if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
- "index", "cmaui_volume3");
+ "tenant_id", "cmaui_volume3");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
- "addresses", "cmaui_volume3");
+ "device_owner", "cmaui_volume3");
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
- "oam_index", "cmaui_volume1");
+ "status", "cmaui_volume1");
}
}
}
@@ -1535,7 +1625,7 @@ public class UnifiedCompositionServiceTest {
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "name",
"myAttr", "FSB1_template");
addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "availability_zone",
- "index", "FSB1_template");
+ "tenant_id", "FSB1_template");
}
}
}
@@ -1553,7 +1643,7 @@ public class UnifiedCompositionServiceTest {
addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
"volume_type", "addresses", "cmaui_volume3");
addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
- "size", "oam_index", "cmaui_volume3");
+ "size", "user_data_format", "cmaui_volume3");
}
private void addOutputGetAttrInForComputeNoConsolidation(
@@ -1590,15 +1680,15 @@ public class UnifiedCompositionServiceTest {
.getPortTemplateConsolidationDataList()) {
if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
- "addresses");
+ "device_owner");
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
- "addresses");
+ "device_owner");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
- "index");
+ "tenant_id");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
- "oam_index");
+ "user_data_format");
}
}
}
@@ -1609,10 +1699,10 @@ public class UnifiedCompositionServiceTest {
.getPortTemplateConsolidationDataList()) {
if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
- "index");
+ "tenant_id");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
- "accessIPv6");
+ "admin_state_up");
}
}
}
@@ -1623,10 +1713,10 @@ public class UnifiedCompositionServiceTest {
.getPortTemplateConsolidationDataList()) {
if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
- "oam_index");
+ "user_data_format");
} else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
- "addresses");
+ "device_owner");
}
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java
index 0f9b4deb53..c333391b9b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java
@@ -31,7 +31,9 @@ import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
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;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FileNestedConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
@@ -45,6 +47,7 @@ import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
@@ -401,10 +404,10 @@ public class ConsolidationDataTestUtil {
Assert.assertTrue(groupMembers.contains(computeNodeTemplateId));
}
- public static void validateSubstituteMappingInConsolidationData(ConsolidationData consolidationData,
- Map<String, ServiceTemplate>
+ public static void validateNestedConsolidationDataNodeTemplateIds(ConsolidationData consolidationData,
+ Map<String, ServiceTemplate>
expectedServiceTemplateModels ){
- Map<String,List<String>> consolidatedMap = consolidationData.getSubstituteNodeTemplates();
+ Map<String,List<String>> consolidatedMap = getSubstituteNodeTemplateIds(consolidationData);
Map<String,List<String>> expectedMap = getSubstituteMapping(expectedServiceTemplateModels);
for(String consolidatedKey : consolidatedMap.keySet()){
List<String> consolidatedList = consolidatedMap.get(consolidatedKey);
@@ -417,6 +420,30 @@ public class ConsolidationDataTestUtil {
}
}
+ private static Map<String,List<String>> getSubstituteNodeTemplateIds(ConsolidationData
+ consolidationData) {
+ Map<String,List<String>> nestedNodeTemplateIdMap = new HashMap<>();
+ NestedConsolidationData nestedConsolidationData =
+ consolidationData.getNestedConsolidationData();
+ Set<String> serviceTemplateFileNames =
+ nestedConsolidationData.getAllServiceTemplateFileNames();
+ for (String fileName : serviceTemplateFileNames) {
+ FileNestedConsolidationData fileNestedConsolidationData =
+ nestedConsolidationData.getFileNestedConsolidationData(fileName);
+ if (Objects.isNull(fileNestedConsolidationData)) {
+ continue;
+ }
+ Set<String> nestedNodeTemplateIds =
+ fileNestedConsolidationData.getAllNestedNodeTemplateIds();
+ if (nestedNodeTemplateIds != null) {
+ List<String> fileNestedNodeTemplateIds = new ArrayList<>();
+ fileNestedNodeTemplateIds.addAll(nestedNodeTemplateIds);
+ nestedNodeTemplateIdMap.put(fileName, fileNestedNodeTemplateIds);
+ }
+ }
+ return nestedNodeTemplateIdMap;
+ }
+
private static Map<String,List<String>> getSubstituteMapping(Map<String, ServiceTemplate>
expectedServiceTemplateModels ){
Map<String,List<String>> map = new LinkedHashMap<>();
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java
index b6d0fb8ce9..7036e23588 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java
@@ -44,6 +44,16 @@ public class UnifiedCompositionCatalogInstanceFullTest extends BaseFullTranslati
testTranslationWithUnifiedCondition();
}
+ @Test
+ public void testTwoNovaWithDiffProperties() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out";
+
+ testTranslationWithUnifiedCondition();
+ }
+
private void testTranslationWithUnifiedCondition() throws IOException {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
index 5db90c2230..149f276903 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
@@ -2,6 +2,7 @@ package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedPatternsFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedPatternsFullTest.java
new file mode 100644
index 0000000000..c9ef8433d9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedPatternsFullTest.java
@@ -0,0 +1,174 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionNestedPatternsFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testNestedWithOneLevelMultipleComputesSingleSubstitution() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelMultipleComputesScalingInstance() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelMultipleComputesCatalogInstance() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelAllNonNestedPatterns() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelNoCompute() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelOtherPatternsNoComputeWithConnectivity() throws IOException {
+ //One nested resource with no Compute, one nested resource having all non nested patterns
+ // with connectivity between themo
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelTwoSameFileOneOtherAllPattern1B() throws IOException {
+ // Heat file with 3 nested resources, while 2 point to the same nested heat file, and all
+ // nested heat file including pattern 1B.
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedWithOneLevelTwoSameFileOneOtherAllPattern1BWithConnectivity() throws
+ IOException {
+ // Heat file with 3 nested resources, while 2 point to the same nested heat file, and all
+ // nested heat file including pattern 1B. + conectivity between all nested resources
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out";
+
+ testTranslationWithInit();
+ }
+
+ //**************** NESTED MULTI-LEVEL TESTS ******************************
+
+ @Test
+ public void testNestedMultiLevelPortSecurityGroupNetworkPattern1B() throws
+ IOException {
+ // heat file - 1 nested resource + security group which will be connected to port in ALL
+ // nested levels, network which will be connected from port in ALL nested level.
+ //nested heat level 1 - 1 nested resource + pattern 1B
+ //nested heat level 2 - 1 nested resource + pattern 1B
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedMultiLevelAllPatternsDependsOnConnectivity() throws
+ IOException {
+ /*
+ HEAT FILE - 1 : nested resource to heat without nova in the nested heat + 1 nested
+ resource + pattern 1B + pattern C1 + pattern 4 + connectivity between them all (using
+ depends on from/to the first nested resource, without nova)
+
+ NESTED HEAT LEVEL 1 - 1 nested resource + pattern 1B + pattern C1 + pattern 4 +
+ connectivity between them all (VM Types same as Main)
+
+ NESTED HEAT LEVEL 2 - 1 nested resource + pattern 1B + pattern C1 + pattern 4 +
+ connectivity between them all
+ */
+
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNestedLevelsDiffVmTypePattern1B() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNestedLevelsSameVmTypePattern1B() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testTwoNestedLevelsWithAllPatternsAndConnectionsBetweenThem() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out";
+
+ testTranslationWithInit();
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
index f52f43577e..a58659fab8 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
@@ -1,6 +1,7 @@
package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
@@ -146,7 +147,7 @@ public class UnifiedCompositionNestedSingleComputeFullTest extends BaseFullTrans
}
@Test
- public void testThreeNestedSameTypeTwoPointintToSameNestedFile() throws IOException {
+ public void testThreeNestedSameTypeTwoPointingToSameNestedFile() throws IOException {
inputFilesPath =
"/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/in";
outputFilesPath =
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java
index 2780b72678..1332814329 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java
@@ -224,4 +224,14 @@ public class UnifiedCompositionSingleSubstitutionFullTest extends BaseFullTransl
testTranslationWithInit();
}
+
+ @Test
+ public void testInputOutputParameterTypes() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out";
+
+ testTranslationWithInit();
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
index c5fcd442cb..62f3c07411 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java
@@ -30,7 +30,7 @@ import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidati
import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortConnectivityIn;
import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortConnectivityOut;
import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortsInConsolidationData;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateSubstituteMappingInConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateNestedConsolidationDataNodeTemplateIds;
import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateVolumeInConsolidationData;
import org.apache.commons.collections4.MapUtils;
@@ -244,12 +244,12 @@ public class BaseResourceTranslationTest {
}
}
- public void validateSubsMappingInConsolidationData(){
+ public void validateNodeTemplateIdInNestedConsolidationData(){
ConsolidationData consolidationData = translationContext.getConsolidationData();
Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
(expectedResultMap);
Assert.assertNotNull(consolidationData);
- validateSubstituteMappingInConsolidationData(consolidationData,expectedServiceTemplateModels);
+ validateNestedConsolidationDataNodeTemplateIds(consolidationData,expectedServiceTemplateModels);
}
public void validateComputeTemplateConsolidationData(ConsolidationDataValidationType
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java
index fe6d68aa1b..f219386b43 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java
@@ -62,7 +62,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/nestednotconnected/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -73,7 +73,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/nestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -84,7 +84,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/sharednestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -96,7 +96,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/sharednestednotconnected/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -107,7 +107,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/innernestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -118,7 +118,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/nestedMultiLevels/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -129,7 +129,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/sharedNestedMultiLevels/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
@Test
@@ -141,7 +141,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/innerHeatVolNestedMultiLevel/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
- validateSubsMappingInConsolidationData();
+ validateNodeTemplateIdInNestedConsolidationData();
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 0711fb8ecd..c24fab0eea 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,837 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.pd_server_0:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_1:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_2:
+ org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
index_value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/MainServiceTemplate.yaml
index 81cefe6a97..dc1e032e44 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/MainServiceTemplate.yaml
@@ -73,7 +73,7 @@ topology_template:
network_name:
get_input: packet_internal_network_name
abstract_pd_server_2:
- type: org.openecomp.resource.abstract.nodes.pd_server_2
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -101,7 +101,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -114,7 +114,7 @@ topology_template:
node: packet_internal_network
relationship: tosca.relationships.network.LinksTo
abstract_pd_server_0:
- type: org.openecomp.resource.abstract.nodes.pd_server_0
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -142,7 +142,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_0ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -155,7 +155,7 @@ topology_template:
node: packet_internal_network
relationship: tosca.relationships.network.LinksTo
abstract_pd_server_1:
- type: org.openecomp.resource.abstract.nodes.pd_server_1
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -183,7 +183,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_serverServiceTemplate.yaml
index 828bcb6145..fc9395c618 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_serverServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_2
+ template_name: Nested_pd_server
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -121,7 +121,7 @@ topology_template:
node: pd_server
relationship: tosca.relationships.network.BindsTo
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_2
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
scalable_pd_server:
- pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e928f3bde2..c24fab0eea 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,843 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.pd_server_0:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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_show:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_1:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_2:
+ org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
index_value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/MainServiceTemplate.yaml
index 544cc80eae..b9db6577bb 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/MainServiceTemplate.yaml
@@ -167,7 +167,7 @@ topology_template:
default: oam_protected_net_0
node_templates:
abstract_pd_server_2:
- type: org.openecomp.resource.abstract.nodes.pd_server_2
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -200,7 +200,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -213,7 +213,7 @@ topology_template:
name:
get_input: dummy_net_name_1
abstract_pd_server_0:
- type: org.openecomp.resource.abstract.nodes.pd_server_0
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -244,7 +244,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_0ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -252,7 +252,7 @@ topology_template:
- service_template_filter
- index_value
abstract_pd_server_1:
- type: org.openecomp.resource.abstract.nodes.pd_server_1
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -283,7 +283,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..fc9395c618
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd01_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd01_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd01_port_mac_requirements
+ order:
+ get_input: port_pd01_port_order
+ network_role:
+ get_input: port_pd01_port_network_role
+ subnetpoolid:
+ get_input: port_pd01_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ network.outgoing.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.packets.rate
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.incoming.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ attachment_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - attachment
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ binding_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - binding
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.incoming.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.outpoing.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outpoing.packets
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ feature_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - feature
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ network.outgoing.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes.rate
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - link
+ dependency_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 0711fb8ecd..c24fab0eea 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,837 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.pd_server_0:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_1:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- 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
- requirements:
- - dependency_pd_server:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_pd_server:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
- occurrences:
- - 0
- - UNBOUNDED
- - dependency_pd_server_pd01_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_pd_server_pd01_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- capabilities:
- scalable_pd_server:
- type: tosca.capabilities.Scalable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- attachment_pd_server_pd01_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- disk.capacity_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.read.requests_pd_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_pd_server:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.usage_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_2:
+ org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
index_value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/MainServiceTemplate.yaml
index eb0c1242a6..095a6c1a5e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/MainServiceTemplate.yaml
@@ -72,7 +72,7 @@ topology_template:
network_name:
get_input: packet_internal_network_name
abstract_pd_server_2:
- type: org.openecomp.resource.abstract.nodes.pd_server_2
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -100,7 +100,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -118,7 +118,7 @@ topology_template:
name:
get_input: dummy_net_name_1
abstract_pd_server_0:
- type: org.openecomp.resource.abstract.nodes.pd_server_0
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -146,7 +146,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_0ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -159,7 +159,7 @@ topology_template:
node: packet_internal_network
relationship: tosca.relationships.network.LinksTo
abstract_pd_server_1:
- type: org.openecomp.resource.abstract.nodes.pd_server_1
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -187,7 +187,7 @@ topology_template:
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..fc9395c618
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd01_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd01_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd01_port_mac_requirements
+ order:
+ get_input: port_pd01_port_order
+ network_role:
+ get_input: port_pd01_port_network_role
+ subnetpoolid:
+ get_input: port_pd01_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ network.outgoing.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.packets.rate
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.incoming.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ attachment_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - attachment
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ binding_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - binding
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.incoming.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.outpoing.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outpoing.packets
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ feature_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - feature
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ network.outgoing.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes.rate
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - link
+ dependency_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_1ServiceTemplate.yaml
deleted file mode 100644
index a6d8533b57..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_1ServiceTemplate.yaml
+++ /dev/null
@@ -1,294 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_pd_server_1
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pd_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_pd_server_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- compute_pd_server_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_pd01_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_pd01_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- vm_image_name:
- type: string
- required: true
- port_pd01_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_pd01_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_pd01_port_order:
- type: integer
- required: true
- port_pd01_port_subnetpoolid:
- type: string
- required: true
- port_pd01_port_network_role:
- type: string
- required: true
- port_pd01_port_network_role_tag:
- type: string
- required: true
- port_pd01_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_pd_server_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- node_templates:
- pd_server:
- type: org.openecomp.resource.vfc.nodes.heat.pd_server
- properties:
- availability_zone:
- get_input:
- - compute_pd_server_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_pd_server_name
- - index_value
- user_data_format:
- get_input:
- - compute_pd_server_user_data_format
- - index_value
- pd_server_pd01_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_pd01_port_exCP_naming
- vlan_requirements:
- get_input: port_pd01_port_vlan_requirements
- ip_requirements:
- get_input: port_pd01_port_ip_requirements
- network_role_tag:
- get_input: port_pd01_port_network_role_tag
- mac_requirements:
- get_input: port_pd01_port_mac_requirements
- order:
- get_input: port_pd01_port_order
- network_role:
- get_input: port_pd01_port_network_role
- subnetpoolid:
- get_input: port_pd01_port_subnetpoolid
- network:
- get_input:
- - port_pd01_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: pd_server
- relationship: tosca.relationships.network.BindsTo
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_1
- capabilities:
- scalable_pd_server:
- - pd_server
- - scalable
- disk.read.bytes.rate_pd_server:
- - pd_server
- - disk.read.bytes.rate
- memory.usage_pd_server:
- - pd_server
- - memory.usage
- memory_pd_server:
- - pd_server
- - memory
- disk.device.usage_pd_server:
- - pd_server
- - disk.device.usage
- network.outgoing.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.packets.rate
- os_pd_server:
- - pd_server
- - os
- disk.write.bytes.rate_pd_server:
- - pd_server
- - disk.write.bytes.rate
- network.incoming.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes
- cpu_pd_server:
- - pd_server
- - cpu
- cpu_util_pd_server:
- - pd_server
- - cpu_util
- disk.device.write.requests.rate_pd_server:
- - pd_server
- - disk.device.write.requests.rate
- disk.read.bytes_pd_server:
- - pd_server
- - disk.read.bytes
- disk.device.read.bytes.rate_pd_server:
- - pd_server
- - disk.device.read.bytes.rate
- network.outgoing.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes
- disk.iops_pd_server:
- - pd_server
- - disk.iops
- memory.resident_pd_server:
- - pd_server
- - memory.resident
- cpu.delta_pd_server:
- - pd_server
- - cpu.delta
- network.incoming.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets.rate
- vcpus_pd_server:
- - pd_server
- - vcpus
- disk.device.write.bytes.rate_pd_server:
- - pd_server
- - disk.device.write.bytes.rate
- disk.device.write.requests_pd_server:
- - pd_server
- - disk.device.write.requests
- endpoint_pd_server:
- - pd_server
- - endpoint
- attachment_pd_server_pd01_port:
- - pd_server_pd01_port
- - attachment
- disk.capacity_pd_server:
- - pd_server
- - disk.capacity
- disk.device.allocation_pd_server:
- - pd_server
- - disk.device.allocation
- disk.allocation_pd_server:
- - pd_server
- - disk.allocation
- binding_pd_server:
- - pd_server
- - binding
- disk.read.requests_pd_server:
- - pd_server
- - disk.read.requests
- feature_pd_server:
- - pd_server
- - feature
- disk.usage_pd_server:
- - pd_server
- - disk.usage
- binding_pd_server_pd01_port:
- - pd_server_pd01_port
- - binding
- disk.write.bytes_pd_server:
- - pd_server
- - disk.write.bytes
- network.incoming.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes.rate
- network.incoming.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets
- disk.device.read.requests.rate_pd_server:
- - pd_server
- - disk.device.read.requests.rate
- disk.root.size_pd_server:
- - pd_server
- - disk.root.size
- disk.device.read.bytes_pd_server:
- - pd_server
- - disk.device.read.bytes
- disk.device.write.bytes_pd_server:
- - pd_server
- - disk.device.write.bytes
- disk.device.read.requests_pd_server:
- - pd_server
- - disk.device.read.requests
- instance_pd_server:
- - pd_server
- - instance
- host_pd_server:
- - pd_server
- - host
- network.outpoing.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outpoing.packets
- disk.write.requests.rate_pd_server:
- - pd_server
- - disk.write.requests.rate
- disk.ephemeral.size_pd_server:
- - pd_server
- - disk.ephemeral.size
- disk.write.requests_pd_server:
- - pd_server
- - disk.write.requests
- feature_pd_server_pd01_port:
- - pd_server_pd01_port
- - feature
- disk.device.latency_pd_server:
- - pd_server
- - disk.device.latency
- disk.latency_pd_server:
- - pd_server
- - disk.latency
- disk.device.capacity_pd_server:
- - pd_server
- - disk.device.capacity
- network.outgoing.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes.rate
- disk.device.iops_pd_server:
- - pd_server
- - disk.device.iops
- requirements:
- local_storage_pd_server:
- - pd_server
- - local_storage
- link_pd_server_pd01_port:
- - pd_server_pd01_port
- - link
- dependency_pd_server_pd01_port:
- - pd_server_pd01_port
- - dependency
- dependency_pd_server:
- - pd_server
- - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/MANIFEST.json
new file mode 100644
index 0000000000..40c2b4c296
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "hot-mog",
+ "description": "HOT template to create hot mog server",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-mog-0108-bs1271.yml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-mog-0108-bs1271.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.env
new file mode 100644
index 0000000000..e406d9971f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.env
@@ -0,0 +1,6 @@
+parameters:
+ pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002, ZRDM1MOGX01MPD003
+ pd_image_name: MOG_BASE_8.0
+ pd_flavor_name: m3.xlarge
+ availabilityzone_name: nova
+ dummy_net_name_1: mog_dummy_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/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.yml
new file mode 100644
index 0000000000..b244e98761
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/in/hot-mog-0108-bs1271.yml
@@ -0,0 +1,87 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates MOG stack
+
+parameters:
+ pd_server_names:
+ type: comma_delimited_list
+ label: PD server names
+ description: name of the PD instance
+ pd_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ diff_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ pd_flavor_name:
+ type: string
+ label: PD flavor name
+ description: flavor name of PD instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ oam_net_name:
+ type: string
+ label: oam network name
+ description: name of the oam network
+ dummy_net_name_1:
+ type: string
+ label: csb ineternal cidr
+ description: csb internal cidr
+ packet_internal_network_name:
+ type: string
+ label: packet internal network name
+ description: name of the network
+
+resources:
+ server_ps_01:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+ key_name: key_name
+ image_update_policy: image_update_policy
+
+ server_ps_02:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: diff_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_1}
+ user_data_format: RAW
+ key_name: key_name
+ personality: personality
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ pd01_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ pd01_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..1da6af47e0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,440 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ compute_pd_server_key_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
+ 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
+ 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_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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..a40a3fdc30
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/MainServiceTemplate.yaml
@@ -0,0 +1,193 @@
+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:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ dummy_net_name_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: mog_dummy_1
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ packet_internal_network_name:
+ label: packet internal network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the network
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ - ' ZRDM1MOGX01MPD003'
+ entry_schema:
+ type: string
+ oam_net_name:
+ label: oam network name
+ hidden: false
+ immutable: false
+ type: string
+ description: name of the oam network
+ diff_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ node_templates:
+ pd01_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_internal_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_pd_server_0:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_key_name:
+ - key_name
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ compute_pd_server_image_update_policy:
+ - image_update_policy
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - packet_internal_network
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_pd_server_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_key_name:
+ - key_name
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ compute_pd_server_personality:
+ - personality
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: diff_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - packet_internal_network
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - pd01_port_2
+ - packet_internal_network
+ - abstract_pd_server_0
+ - abstract_pd_server_1
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/Nested_pd_serverServiceTemplate.yaml
index 8a8b36018e..74db5c7d75 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/Nested_pd_serverServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_0
+ template_name: Nested_pd_server
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -11,6 +11,11 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
+ compute_pd_server_key_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -31,6 +36,16 @@ topology_template:
port_pd01_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
+ compute_pd_server_personality:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_image_update_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
vm_flavor_name:
type: string
required: true
@@ -76,6 +91,14 @@ topology_template:
pd_server:
type: org.openecomp.resource.vfc.nodes.heat.pd_server
properties:
+ personality:
+ get_input:
+ - compute_pd_server_personality
+ - index_value
+ key_name:
+ get_input:
+ - compute_pd_server_key_name
+ - index_value
availability_zone:
get_input:
- compute_pd_server_availability_zone
@@ -88,6 +111,10 @@ topology_template:
get_input:
- compute_pd_server_name
- index_value
+ image_update_policy:
+ get_input:
+ - compute_pd_server_image_update_policy
+ - index_value
user_data_format:
get_input:
- compute_pd_server_user_data_format
@@ -120,17 +147,8 @@ topology_template:
capability: tosca.capabilities.network.Bindable
node: pd_server
relationship: tosca.relationships.network.BindsTo
- outputs:
- pd_server_show:
- type: list
- value:
- get_attribute:
- - pd_server
- - show
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_0
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
scalable_pd_server:
- pd_server
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 0c89db4fd9..6bd1ea45c8 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,577 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ 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
+ - 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
+ 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
+ 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.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_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_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.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
+ 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
+ attachment_pcma_server_pcm_port_2:
+ 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
+ attachment_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ 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
+ 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
+ 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:
+ type: org.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:
+ type: org.openecomp.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:
+ type: org.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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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.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.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
+ 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
+ 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
+ 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.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.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.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.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.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
+ 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:
+ type: org.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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.
+ 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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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_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_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_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.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.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
+ 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.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
+ 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.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
+ 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.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.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1490,26 +2061,24 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
+ org.openecomp.resource.abstract.nodes.1c2_catalog_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c1_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c2_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c1_t2_port_vlan_requirements:
+ compute_1c2_catalog_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c1_scalling_instance_user_data_format:
- type: list
+ type: string
+ port_1c2_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_network_role_tag:
+ port_1c2_t2_port_network_role:
type: string
required: true
status: SUPPORTED
@@ -1517,68 +2086,52 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_ip_requirements:
+ 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.IpRequirements
+ type: org.openecomp.datatypes.network.VlanRequirements
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
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t1_port_network:
- type: list
+ port_1c2_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_fixed_ips:
- type: list
+ port_1c2_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t2_port_network:
+ port_1c2_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c1_t1_port_fixed_ips:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t1_port_vlan_requirements:
- type: list
+ port_1c2_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1c1_t2_port_ip_requirements:
+ port_1c2_t2_port_network:
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
+ type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -1587,575 +2140,576 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_1c1_t2_port_network_role:
- type: string
+ compute_1c2_catalog_instance_metadata:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t2_port_order:
- type: integer
+ entry_schema:
+ type: json
+ compute_1c2_catalog_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c1_scalling_instance_availability_zone:
+ port_1c2_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t2_port_subnetpoolid:
- type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c1_t2_port_name:
+ port_1c2_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_1c1_scalling_instance_scheduler_hints:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1c1_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ type: string
+ port_1c2_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- compute_1c1_scalling_instance_metadata:
+ port_1c2_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_1c1_t1_port_subnetpoolid:
- type: string
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_1c2_catalog_instance_scheduler_hints:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_network_role_tag:
+ entry_schema:
+ type: json
+ attributes:
+ 1c2_catalog_instance_instance_name:
type: string
- required: true
status: SUPPORTED
- port_1c1_t1_port_network_role:
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
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: list
- status: SUPPORTED
- entry_schema:
- type: string
- 1c1_scalling_instance_instance_name:
- type: list
status: SUPPORTED
- entry_schema:
- type: string
- 1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c1_scalling_instance_1c1_t1_port:
+ - dependency_1c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t1_port:
- 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_1c1_scalling_instance:
+ - 0
+ - UNBOUNDED
+ - dependency_1c2_catalog_instance_1c2_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c1_scalling_instance:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_1c2_catalog_instance_1c2_t2_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c1_scalling_instance_1c1_t2_port:
+ - 1
+ - 1
+ - dependency_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t2_port:
+ - link_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.latency_1c1_scalling_instance:
+ 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
- disk.ephemeral.size_1c1_scalling_instance:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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.root.size_1c1_scalling_instance:
+ 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
- endpoint_1c1_scalling_instance:
- type: tosca.capabilities.Endpoint.Admin
+ 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
- disk.read.bytes_1c1_scalling_instance:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ 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
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ binding_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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.resident_1c1_scalling_instance:
+ 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
- network.incoming.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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_1c1_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.
+ feature_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_1c1_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.
+ attachment_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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.write.bytes.rate_1c1_scalling_instance:
+ 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.device.allocation_1c1_scalling_instance:
+ binding_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- feature_1c1_scalling_instance:
- type: tosca.capabilities.Node
+ 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.device.write.requests.rate_1c1_scalling_instance:
+ 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.read.bytes.rate_1c1_scalling_instance:
+ 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.outpoing.packets_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.Scalable
+ os_1c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c1_scalling_instance:
+ 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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ endpoint_1c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- - 0
+ - 1
- UNBOUNDED
- disk.device.write.bytes_1c1_scalling_instance:
+ 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
- disk.read.requests_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t2_port:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- host_1c1_scalling_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Node
+ 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
- binding_1c1_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
- disk.device.read.requests.rate_1c1_scalling_instance:
+ 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
- attachment_1c1_scalling_instance_1c1_t2_port:
+ attachment_1c2_catalog_instance_1c2_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c1_scalling_instance:
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- disk.device.iops_1c1_scalling_instance:
+ 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.device.capacity_1c1_scalling_instance:
+ 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.capacity_1c1_scalling_instance:
+ 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.write.requests.rate_1c1_scalling_instance:
+ 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
- cpu_util_1c1_scalling_instance:
+ 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.requests_1c1_scalling_instance:
+ 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
- disk.device.write.bytes.rate_1c1_scalling_instance:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ 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
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- network.outgoing.bytes_1c1_scalling_instance_1c1_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.
+ scalable_1c2_catalog_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c1_scalling_instance:
+ 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
- binding_1c1_scalling_instance:
- type: tosca.capabilities.network.Bindable
+ host_1c2_catalog_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t1_port:
+ 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.allocation_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- memory.usage_1c1_scalling_instance:
+ 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
- network.incoming.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.OperatingSystem
+ 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.iops_1c1_scalling_instance:
+ 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
- network.outpoing.packets_1c1_scalling_instance_1c1_t1_port:
+ 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
- attachment_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Attachment
+ binding_1c2_catalog_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c1_scalling_instance:
+ 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
- memory_1c1_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.
+ feature_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- instance_1c1_scalling_instance:
+ 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.a_single_1a:
+ org.openecomp.resource.abstract.nodes.pcma_server_1:
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:
+ 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.network.IpRequirements
- port_1a_t2_port_network_role_tag:
- type: string
+ 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_1a_t2_port_network_role:
- type: string
+ port_pcm_port_0_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_network:
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_pcm_port_0_order:
+ type: integer
required: true
status: SUPPORTED
- port_1a_t1_port_network:
- type: list
+ port_pcm_port_0_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- vm_image_name:
+ port_pcm_port_1_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_ip_requirements:
- type: list
+ port_pcm_port_0_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t1_port_vlan_requirements:
- type: list
+ port_pcm_port_0_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_1_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_a_single_1a_availability_zone:
+ 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
- compute_a_single_1a_scheduler_hints:
+ 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
@@ -2164,478 +2718,469 @@ node_types:
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
+ compute_pcma_server_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1a_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ entry_schema:
+ type: string
+ 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:
- type: string
- required: true
- status: SUPPORTED
- port_1a_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_a_single_1a_user_data_format:
+ port_pcm_port_1_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_a_single_1a_name:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t2_port_mac_requirements:
+ port_pcm_port_0_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- attributes:
- a_single_1a_instance_name:
+ port_pcm_port_1_ip_requirements:
type: list
+ required: true
status: SUPPORTED
entry_schema:
- type: string
- a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_a_single_1a_1a_t1_port:
+ - dependency_pcma_server:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - 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:
+ - local_storage_pcma_server:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_1a_1a_t2_port:
+ - dependency_pcma_server_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_pcma_server_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- 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.
+ - dependency_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
occurrences:
- - 1
+ - 0
- UNBOUNDED
- 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.
+ - link_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- - UNBOUNDED
- disk.usage_a_single_1a:
+ - 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
- attachment_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- scalable_a_single_1a:
+ scalable_pcma_server:
type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_a_single_1a_1a_t2_port:
+ 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
- host_a_single_1a:
+ host_pcma_server:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- endpoint_a_single_1a:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- disk.root.size_a_single_1a:
+ 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.resident_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_a_single_1a:
+ 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.write.requests_a_single_1a:
+ 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
- network.incoming.bytes.rate_a_single_1a_1a_t1_port:
+ 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
- disk.iops_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- 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.
+ endpoint_pcma_server:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- os_a_single_1a:
- type: tosca.capabilities.OperatingSystem
+ feature_pcma_server:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_a_single_1a:
+ 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
- network.incoming.packets.rate_a_single_1a_1a_t1_port:
+ 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
- network.outgoing.packets.rate_a_single_1a_1a_t2_port:
+ 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
- disk.read.requests_a_single_1a:
+ 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
- disk.read.bytes.rate_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- attachment_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Attachment
+ 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
- cpu_a_single_1a:
+ 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
- memory.usage_a_single_1a:
+ 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
- disk.device.write.requests.rate_a_single_1a:
+ 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
- binding_a_single_1a_1a_t2_port:
+ 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_a_single_1a_1a_t2_port:
+ 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
- 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.
+ os_pcma_server:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_a_single_1a:
+ 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
- instance_a_single_1a:
+ 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
- binding_a_single_1a:
- type: tosca.capabilities.network.Bindable
+ 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.latency_a_single_1a:
+ 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
- network.outgoing.bytes_a_single_1a_1a_t2_port:
+ 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.device.allocation_a_single_1a:
+ 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
- disk.write.bytes_a_single_1a:
+ 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
- feature_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Node
+ 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
- network.outpoing.packets_a_single_1a_1a_t2_port:
+ 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.outpoing.packets_a_single_1a_1a_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.read.bytes.rate_a_single_1a:
+ 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
- disk.device.write.bytes_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- memory_a_single_1a:
+ 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
- disk.allocation_a_single_1a:
+ binding_pcma_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.packets.rate_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Node
+ 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
- disk.capacity_a_single_1a:
+ 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.bytes_a_single_1a:
+ 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_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a:
- type: tosca.capabilities.Node
+ 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
- network.outgoing.bytes_a_single_1a_1a_t1_port:
+ 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
- disk.ephemeral.size_a_single_1a:
+ 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
- vcpus_a_single_1a:
+ 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
- binding_a_single_1a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ 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:
- - 0
+ - 1
- UNBOUNDED
- disk.device.iops_a_single_1a:
+ 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
- disk.write.requests_a_single_1a:
+ 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.device.read.requests.rate_a_single_1a:
+ 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.capacity_a_single_1a:
+ 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.write.requests.rate_a_single_1a:
+ 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
- network.incoming.bytes_a_single_1a_1a_t2_port:
+ 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
- network.outgoing.bytes.rate_a_single_1a_1a_t1_port:
+ 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.b_single_1b_1:
+ org.openecomp.resource.abstract.nodes.b_single_1b:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -2726,16 +3271,16 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_1b_t1_port_value_specs:
+ port_1b_t1_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_b_single_1b_metadata:
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
@@ -2756,12 +3301,6 @@ node_types:
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
@@ -2770,15 +3309,11 @@ node_types:
type: string
attributes:
b_single_1b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
@@ -3193,24 +3728,26 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0:
+ org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ port_1c1_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3218,52 +3755,68 @@ node_types:
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:
+ port_1c1_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ compute_1c1_scalling_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
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
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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: string
+ 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
@@ -3272,503 +3825,506 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_metadata:
- type: list
+ port_1c1_t2_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- compute_1c2_catalog_instance_name:
- type: list
+ port_1c1_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c1_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
+ compute_1c1_scalling_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1c1_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1c1_t2_port_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
+ type: json
+ port_1c1_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t1_port_ip_requirements:
+ compute_1c1_scalling_instance_metadata:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
+ 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
- entry_schema:
- type: json
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ 1c1_scalling_instance_1c1_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ 1c1_scalling_instance_instance_name:
+ type: string
+ status: SUPPORTED
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_1c1_scalling_instance_1c1_t1_port:
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_1c1_scalling_instance_1c1_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_1c1_scalling_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_1c1_scalling_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ disk.device.latency_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.ephemeral.size_1c1_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.bytes.rate_1c2_catalog_instance:
+ disk.root.size_1c1_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_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.
+ endpoint_1c1_scalling_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ disk.read.bytes_1c1_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_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ disk.usage_1c1_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_1c2_catalog_instance:
+ memory.resident_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.bytes.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ cpu_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ disk.write.bytes_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes_1c1_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.requests_1c2_catalog_instance:
+ disk.write.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.allocation_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes.rate_1c1_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_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.
+ feature_1c1_scalling_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c2_catalog_instance:
+ disk.device.write.requests.rate_1c1_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_1c2_catalog_instance:
+ disk.read.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.outpoing.packets_1c1_scalling_instance_1c1_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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ scalable_1c1_scalling_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c2_catalog_instance:
+ disk.device.read.bytes_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ binding_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ disk.device.write.bytes_1c1_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_1c2_catalog_instance:
+ disk.read.requests_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.packets_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ vcpus_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes_1c1_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.packets.rate_1c2_catalog_instance_1c2_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.
+ host_1c1_scalling_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
+ disk.write.requests_1c1_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
- 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.
+ feature_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ binding_1c1_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
+ disk.device.read.requests.rate_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ attachment_1c1_scalling_instance_1c1_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.read.bytes.rate_1c1_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.bytes_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_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
- instance_1c2_catalog_instance:
+ disk.device.iops_1c1_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_1c2_catalog_instance:
+ disk.device.capacity_1c1_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_1c2_catalog_instance:
+ disk.capacity_1c1_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_1c2_catalog_instance:
+ disk.write.requests.rate_1c1_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_1c2_catalog_instance:
+ cpu_util_1c1_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_1c2_catalog_instance:
+ disk.device.read.requests_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.device.write.bytes.rate_1c1_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_1c2_catalog_instance:
+ disk.device.write.requests_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ network.outgoing.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ disk.latency_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ binding_1c1_scalling_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c2_catalog_instance:
+ disk.device.usage_1c1_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_1c2_catalog_instance:
+ network.incoming.packets_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.allocation_1c1_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_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.
+ feature_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ memory.usage_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.bytes_1c1_scalling_instance_1c1_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
- memory_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_scalling_instance_1c1_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.rate_1c2_catalog_instance:
+ os_1c1_scalling_instance:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_1c1_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_1c2_catalog_instance:
+ network.outpoing.packets_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ attachment_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ cpu.delta_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ memory_1c1_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_1c2_catalog_instance:
+ instance_1c1_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.1c2_catalog_instance_1:
+ org.openecomp.resource.abstract.nodes.a_single_1a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ compute_a_single_1a_metadata:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ type: json
+ port_1a_t1_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3776,52 +4332,62 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role_tag:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_1a_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ port_1a_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
+ port_1a_t1_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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
@@ -3830,480 +4396,474 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
- type: list
+ port_1a_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1a_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
+ port_1a_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
+ port_1a_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_ip_requirements:
+ compute_a_single_1a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
+ type: string
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ a_single_1a_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_a_single_1a_1a_t1_port:
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_a_single_1a_1a_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_a_single_1a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_a_single_1a:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_a_single_1a_1a_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_a_single_1a_1a_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ 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:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- 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.
+ attachment_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_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_a_single_1a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
+ host_a_single_1a:
+ type: tosca.capabilities.Container
valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - tosca.nodes.SoftwareComponent
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- cpu_util_1c2_catalog_instance:
+ 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.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ 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
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ 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.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- cpu_1c2_catalog_instance:
+ 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
- disk.read.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ os_a_single_1a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c2_catalog_instance:
+ 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.resident_1c2_catalog_instance:
+ 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
- disk.device.write.requests.rate_1c2_catalog_instance:
+ 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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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.latency_1c2_catalog_instance:
+ 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.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
+ 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
- disk.iops_1c2_catalog_instance:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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
- 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.
+ binding_a_single_1a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ 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
- attachment_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.read.bytes_1c2_catalog_instance:
+ 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
- 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.
+ feature_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c2_catalog_instance:
+ 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.write.bytes_1c2_catalog_instance:
+ 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.device.read.bytes.rate_1c2_catalog_instance:
+ 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.device.allocation_1c2_catalog_instance:
+ 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
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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.read.requests_1c2_catalog_instance:
+ 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.write.bytes.rate_1c2_catalog_instance:
+ 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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ feature_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c2_catalog_instance:
+ 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
- host_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.root.size_1c2_catalog_instance:
+ 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.device.usage_1c2_catalog_instance:
+ feature_a_single_1a:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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.usage_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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:
- - 1
+ - 0
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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
- disk.write.requests.rate_1c2_catalog_instance:
+ 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.write.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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.read.requests.rate_1c2_catalog_instance:
+ 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.b_single_1b_0:
+ org.openecomp.resource.abstract.nodes.b_single_1b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -4394,16 +4954,16 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_1b_t1_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- compute_b_single_1b_metadata:
+ 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
@@ -4424,23 +4984,25 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_b_single_1b_name:
+ port_1b_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- attributes:
- b_single_1b_instance_name:
+ 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: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
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 d7fa0cedf3..5d30f60616 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
@@ -83,14 +83,41 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ abstract_b_single_1b:
+ type: org.openecomp.resource.abstract.nodes.b_single_1b
directives:
- substitutable
properties:
- server_group: BE_Affinity_group
- port_pcm_port_1_network_role_tag: oam
- connectivityChk:
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_1b_t1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ compute_b_single_1b_user_data_format:
+ - RAW
+ port_1b_t2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_b_single_1b_availability_zone:
+ - get_input: availabilityzone_name
+ compute_b_single_1b_scheduler_hints:
+ - group: BE_Affinity_group
+ port_1b_t2_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ compute_b_single_1b_metadata:
+ - connectivityTo4PNested:
+ get_attribute:
+ - 4p_nested
+ - server_pcm_id
connectivityTo1C2_1:
get_attribute:
- abstract_1c2_catalog_instance_0
@@ -99,64 +126,39 @@ topology_template:
get_attribute:
- abstract_1c2_catalog_instance_1
- 1c2_catalog_instance_instance_name
- connectivityTo1A:
- get_attribute:
- - abstract_a_single_1a
- - a_single_1a_instance_name
- connectivityTo1B02:
- get_attribute:
- - abstract_b_single_1b_1
- - b_single_1b_instance_name
- - get_attribute:
- - abstract_b_single_1b_0
- - b_single_1b_instance_name
- connectivityTo1B01:
+ connectivityToNoUnifiedNested:
get_attribute:
- - abstract_b_single_1b_0
- - b_single_1b_instance_name
- connectivityTo1C1_T2_1:
+ - nestedNoUnified
+ - portId
+ connectivityTo1C1_T1_1:
get_attribute:
- abstract_1c1_scalling_instance
- - 1c1_scalling_instance_1c1_t2_port_tenant_id
- connectivityTo1C1_T2_0:
+ - 1c1_scalling_instance_1c1_t1_port_tenant_id
+ connectivityTo1C1_T1_0:
get_attribute:
- abstract_1c1_scalling_instance
- - 1c1_scalling_instance_1c1_t2_port_tenant_id
- port_pcm_port_0_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name: jsa_security_group
- port_pcm_port_1_mac_requirements:
- mac_count_required:
- is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- port_pcm_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:
+ - 1c1_scalling_instance_1c1_t1_port_tenant_id
+ port_1b_t1_port_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
- get_input:
- - pcm_server_names
+ port_1b_t2_port_network:
+ - b_single_1b_network
+ compute_b_single_1b_name:
+ - get_input:
+ - b_single_1b_names
- 0
- cps_net_name: nested_network
+ service_template_filter:
+ substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
requirements:
- - link_pcm_port_0:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
- node: nested_network
+ node: b_single_1b_network
relationship: tosca.relationships.network.LinksTo
abstract_1c1_scalling_instance:
type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
@@ -226,7 +228,7 @@ topology_template:
- null
- connectivityTo4PNested:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
connectivityTo1C2_1:
get_attribute:
@@ -250,7 +252,7 @@ topology_template:
- b_single_1b_instance_name
connectivityTo1B01:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
service_template_filter:
substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml
@@ -265,90 +267,88 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: 1c1_scalling_instance_network
relationship: tosca.relationships.network.LinksTo
- abstract_b_single_1b_0:
- type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ b_single_1b_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: net_name
+ 4p_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
- vm_flavor_name:
- get_input: pd_flavor_name
- port_1b_t1_port_ip_requirements:
+ server_group: BE_Affinity_group
+ port_pcm_port_1_network_role_tag: oam
+ connectivityChk:
+ connectivityTo1C2_1:
+ get_attribute:
+ - 1c201_catalog_instance_1C2
+ - instance_name
+ connectivityTo1C2_2:
+ get_attribute:
+ - 1c202_scalling_instance_1C2
+ - instance_name
+ connectivityTo1A:
+ get_attribute:
+ - 1a_single_1A
+ - instance_name
+ connectivityTo1B02:
+ get_attribute:
+ - 1b02_single_1B
+ - instance_name
+ - get_attribute:
+ - 1b01_single_1B
+ - instance_name
+ connectivityTo1B01:
+ get_attribute:
+ - 1b01_single_1B
+ - instance_name
+ connectivityTo1C1_T2_1:
+ get_attribute:
+ - 1c1_t2_port_1
+ - tenant_id
+ connectivityTo1C1_T2_0:
+ get_attribute:
+ - 1c1_t2_port_0
+ - tenant_id
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- vm_image_name:
- get_input: pd_image_name
- compute_b_single_1b_user_data_format:
- - RAW
- port_1b_t2_port_mac_requirements:
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name: jsa_security_group
+ port_pcm_port_1_mac_requirements:
mac_count_required:
is_required: false
- compute_b_single_1b_availability_zone:
- - get_input: availabilityzone_name
- compute_b_single_1b_scheduler_hints:
- - group: BE_Affinity_group
- port_1b_t2_port_ip_requirements:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- compute_b_single_1b_metadata:
- - connectivityTo4PNested:
- get_attribute:
- - abstract_pcm_server_0
- - server_pcm_id
- connectivityTo1C2_1:
- get_attribute:
- - abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_2:
- get_attribute:
- - abstract_1c2_catalog_instance_1
- - 1c2_catalog_instance_instance_name
- connectivityToNoUnifiedNested:
- get_attribute:
- - nestedNoUnified
- - portId
- connectivityTo1C1_T1_1:
- get_attribute:
- - abstract_1c1_scalling_instance
- - 1c1_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_0:
- get_attribute:
- - abstract_1c1_scalling_instance
- - 1c1_scalling_instance_1c1_t1_port_tenant_id
- port_1b_t1_port_mac_requirements:
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- port_1b_t2_port_network:
- - b_single_1b_network
- compute_b_single_1b_name:
- - get_input:
- - b_single_1b_names
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
- 0
- service_template_filter:
- substitute_service_template: Nested_b_single_1b_0ServiceTemplate.yaml
- count: 1
- index_value:
- get_property:
- - SELF
- - service_template_filter
- - index_value
+ cps_net_name: nested_network
requirements:
- - link_b_single_1b_1b_t2_port:
+ - link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
- node: b_single_1b_network
+ node: nested_network
relationship: tosca.relationships.network.LinksTo
- b_single_1b_network:
- type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
- properties:
- network_name:
- get_input: net_name
abstract_1c2_catalog_instance_0:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -372,7 +372,7 @@ topology_template:
compute_1c2_catalog_instance_metadata:
- connectivityTo4PNested:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
connectivityTo1A:
get_attribute:
@@ -388,7 +388,7 @@ topology_template:
- b_single_1b_instance_name
connectivityTo1B01:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1C1_T2_1:
get_attribute:
@@ -419,7 +419,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -432,7 +432,7 @@ topology_template:
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_1:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -476,7 +476,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -535,17 +535,17 @@ topology_template:
- nestedNoUnified
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
value_specs:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -562,7 +562,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_1c2_catalog_instance_1c2_t1_port
@@ -590,7 +590,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
@@ -598,7 +598,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
@@ -620,7 +620,7 @@ topology_template:
compute_a_single_1a_metadata:
- connectivityTo4PNested:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
connectivityTo1C2_1:
get_attribute:
@@ -639,11 +639,11 @@ topology_template:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1B01:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1C1_T2_1:
get_attribute:
@@ -731,11 +731,11 @@ topology_template:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1B01:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1C1_T2_1:
get_attribute:
@@ -841,11 +841,11 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_0
@@ -940,6 +940,7 @@ topology_template:
description: heat template that creates MOG stack
members:
- b_single_1b_network
+ - 4p_nested
- 1c1_scalling_instance_network
- nodeGetAttIn_network
- dependsOn_network
@@ -949,17 +950,16 @@ topology_template:
- a_single_1a_network
- 1c2_catalog_instance_network
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
- abstract_1c2_catalog_instance_1
- - abstract_pcm_server_0
BE_Affinity_group:
type: tosca.groups.Root
members:
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
@@ -996,13 +996,13 @@ topology_template:
out4:
value:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -1018,7 +1018,7 @@ topology_template:
- nestedNoUnified
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
out6:
value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c1_scalling_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
index 2469e9cb86..07f4b7928f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
@@ -233,29 +233,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c1_scalling_instance_1c1_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance_1c1_t1_port
- tenant_id
- entry_schema:
- type: string
1c1_scalling_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance
- instance_name
- entry_schema:
- type: string
1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance_1c1_t2_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
index f09ccb2ad5..22b8c6e072 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_1c2_catalog_instance_0
+ template_name: Nested_1c2_catalog_instance
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -201,23 +201,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c2_catalog_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance
- instance_name
- entry_schema:
- type: string
1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance_1c2_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
capabilities:
disk.device.capacity_1c2_catalog_instance:
- 1c2_catalog_instance
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
deleted file mode 100644
index 2872bb61d3..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+++ /dev/null
@@ -1,420 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_1
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance_1c2_t1_port
- - tenant_id
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_a_single_1aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_a_single_1aServiceTemplate.yaml
index 15e3f83de9..de031b7692 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_a_single_1aServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_a_single_1aServiceTemplate.yaml
@@ -201,21 +201,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
a_single_1a_instance_name:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a
- instance_name
- entry_schema:
- type: string
a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a_1a_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.a_single_1a
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1bServiceTemplate.yaml
index 6929834c7e..0a9346116b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1bServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_b_single_1b_0
+ template_name: Nested_b_single_1b
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -196,23 +196,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ node_type: org.openecomp.resource.abstract.nodes.b_single_1b
capabilities:
attachment_b_single_1b_1b_t2_port:
- b_single_1b_1b_t2_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_1ServiceTemplate.yaml
index d71a80ab5c..1ad9fc3dd2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_b_single_1b_1ServiceTemplate.yaml
@@ -201,21 +201,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.b_single_1b_1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4997938e90
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_serverServiceTemplate.yaml
@@ -0,0 +1,444 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_network_role:
+ type: string
+ required: true
+ port_pcm_port_2_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_3_network_role:
+ type: string
+ required: true
+ port_pcm_port_3_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_3_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_3_order:
+ type: integer
+ required: true
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_2_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_3_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_3_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_3_network_role_tag:
+ type: string
+ required: true
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_3_fixed_ips:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_order:
+ type: integer
+ required: true
+ port_pcm_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_2_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_3_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pcma_server_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_pcma_server_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_3:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_3_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_3_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_3_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_3_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_3_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_3_mac_requirements
+ order:
+ get_input: port_pcm_port_3_order
+ network_role:
+ get_input: port_pcm_port_3_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_3_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_3_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_3_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_2_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_2_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_2_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_2_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_2_mac_requirements
+ order:
+ get_input: port_pcm_port_2_order
+ network_role:
+ get_input: port_pcm_port_2_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_2_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_2_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_2_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes.rate
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ attachment_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - attachment
+ network.incoming.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes.rate
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.outgoing.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes
+ binding_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - binding
+ network.incoming.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes.rate
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets
+ binding_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - binding
+ os_pcma_server:
+ - pcma_server
+ - os
+ network.incoming.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets
+ network.incoming.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.packets.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - feature
+ feature_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes
+ network.incoming.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ network.outpoing.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outpoing.packets
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ network.outpoing.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outpoing.packets
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ requirements:
+ dependency_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - dependency
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - link
+ link_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_server_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..38f70ab8a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_pcma_server_1ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_0_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_0_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_0_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_0_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_0_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_0_mac_requirements
+ order:
+ get_input: port_pcm_port_0_order
+ network_role:
+ get_input: port_pcm_port_0_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_0_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_0_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_1_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_1_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_1_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_1_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_1_mac_requirements
+ order:
+ get_input: port_pcm_port_1_order
+ network_role:
+ get_input: port_pcm_port_1_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_1_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_1_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ attachment_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - attachment
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.incoming.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets
+ network.incoming.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets.rate
+ binding_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - binding
+ network.incoming.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets
+ os_pcma_server:
+ - pcma_server
+ - os
+ binding_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - binding
+ network.incoming.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ network.incoming.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.packets.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - feature
+ feature_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ network.incoming.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ network.outpoing.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outpoing.packets
+ requirements:
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - link
+ link_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - link
+ dependency_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/nested-no_vfc_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/nested-no_vfc_v0.1ServiceTemplate.yaml
index 934dada392..2d854439a6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/nested-no_vfc_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/nested-no_vfc_v0.1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pcma_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
server_group:
@@ -110,135 +107,127 @@ topology_template:
immutable: false
type: string
node_templates:
- pcm_port_2:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcma_server_1:
+ type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ directives:
+ - substitutable
properties:
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_network_role_tag: cps
+ port_pcm_port_0_fixed_ips:
- ip_address:
get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ vm_flavor_name:
+ get_input: pcma_flavor_name
+ port_pcm_port_0_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
+ get_input: pcma_image_name
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_1_network:
+ - get_input: oam_net_name
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_config_drive:
+ - true
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_0_network:
+ - get_input: cps_net_name
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pcm_port_1_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
- pcm_port_3:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: oam_net_ip
- mac_requirements:
+ service_template_filter:
+ substitute_service_template: Nested_pcma_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pcma_server:
+ type: org.openecomp.resource.abstract.nodes.pcma_server
+ directives:
+ - substitutable
+ properties:
+ port_pcm_port_3_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- server_pcma2:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
- get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- scheduler_hints:
- group:
- get_input: server_group
- server_pcma1:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
+ port_pcm_port_2_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ vm_flavor_name:
get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
+ port_pcm_port_3_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_2_security_groups:
+ - - get_input: security_group_name
+ port_pcm_port_3_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
+ port_pcm_port_2_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
+ port_pcm_port_3_network_role_tag: cps
+ compute_pcma_server_config_drive:
+ - true
+ port_pcm_port_3_fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_2_network:
+ - get_input: cps_net_name
+ port_pcm_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pcm_port_2_network_role_tag: cps
+ port_pcm_port_3_network:
+ - get_input: oam_net_name
+ compute_pcma_server_scheduler_hints:
+ - group:
+ get_input: server_group
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ service_template_filter:
+ substitute_service_template: Nested_pcma_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-no_vfc_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -246,12 +235,8 @@ topology_template:
heat_file: ../Artifacts/nested-no_vfc_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_2
- - pcm_port_1
- - pcm_port_3
- - server_pcma2
- - server_pcma1
- - pcm_port_0
+ - abstract_pcma_server
+ - abstract_pcma_server_1
outputs:
portId:
value: pcm_port_3
@@ -259,417 +244,417 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_0
network.incoming.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_3
network.incoming.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_2
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_1
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_1
disk.device.iops_server_pcma2:
- - server_pcma2
- - disk.device.iops
+ - abstract_pcma_server
+ - disk.device.iops_pcma_server
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_0
network.outpoing.packets_pcm_port_3:
- - pcm_port_3
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_3
network.outpoing.packets_pcm_port_2:
- - pcm_port_2
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_2
disk.device.iops_server_pcma1:
- - server_pcma1
- - disk.device.iops
+ - abstract_pcma_server_1
+ - disk.device.iops_pcma_server
disk.device.capacity_server_pcma2:
- - server_pcma2
- - disk.device.capacity
+ - abstract_pcma_server
+ - disk.device.capacity_pcma_server
disk.device.capacity_server_pcma1:
- - server_pcma1
- - disk.device.capacity
+ - abstract_pcma_server_1
+ - disk.device.capacity_pcma_server
disk.read.requests_server_pcma2:
- - server_pcma2
- - disk.read.requests
+ - abstract_pcma_server
+ - disk.read.requests_pcma_server
disk.read.requests_server_pcma1:
- - server_pcma1
- - disk.read.requests
+ - abstract_pcma_server_1
+ - disk.read.requests_pcma_server
disk.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.write.requests.rate_pcma_server
disk.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.write.requests.rate
+ - abstract_pcma_server
+ - disk.write.requests.rate_pcma_server
memory_server_pcma2:
- - server_pcma2
- - memory
+ - abstract_pcma_server
+ - memory_pcma_server
memory_server_pcma1:
- - server_pcma1
- - memory
+ - abstract_pcma_server_1
+ - memory_pcma_server
disk.device.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.read.bytes.rate_pcma_server
network.outgoing.bytes_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_3
disk.device.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes.rate
+ - abstract_pcma_server
+ - disk.device.read.bytes.rate_pcma_server
binding_pcm_port_3:
- - pcm_port_3
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_3
disk.device.latency_server_pcma2:
- - server_pcma2
- - disk.device.latency
+ - abstract_pcma_server
+ - disk.device.latency_pcma_server
disk.device.usage_server_pcma2:
- - server_pcma2
- - disk.device.usage
+ - abstract_pcma_server
+ - disk.device.usage_pcma_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_0
disk.device.latency_server_pcma1:
- - server_pcma1
- - disk.device.latency
+ - abstract_pcma_server_1
+ - disk.device.latency_pcma_server
network.incoming.bytes_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_1
disk.device.usage_server_pcma1:
- - server_pcma1
- - disk.device.usage
+ - abstract_pcma_server_1
+ - disk.device.usage_pcma_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_0
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_1
binding_pcm_port_2:
- - pcm_port_2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_3
network.outgoing.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_3
disk.device.read.requests_server_pcma1:
- - server_pcma1
- - disk.device.read.requests
+ - abstract_pcma_server_1
+ - disk.device.read.requests_pcma_server
disk.device.read.requests_server_pcma2:
- - server_pcma2
- - disk.device.read.requests
+ - abstract_pcma_server
+ - disk.device.read.requests_pcma_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_0
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_1
disk.write.bytes_server_pcma2:
- - server_pcma2
- - disk.write.bytes
+ - abstract_pcma_server
+ - disk.write.bytes_pcma_server
disk.device.read.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.read.requests.rate_pcma_server
network.outgoing.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_2
disk.device.read.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.requests.rate
+ - abstract_pcma_server
+ - disk.device.read.requests.rate_pcma_server
disk.write.bytes_server_pcma1:
- - server_pcma1
- - disk.write.bytes
+ - abstract_pcma_server_1
+ - disk.write.bytes_pcma_server
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_1
binding_server_pcma1:
- - server_pcma1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_0
binding_server_pcma2:
- - server_pcma2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_0
network.outgoing.bytes_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_2
feature_pcm_port_3:
- - pcm_port_3
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_3
feature_pcm_port_2:
- - pcm_port_2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_2
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_1
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_0
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_1
disk.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.write.bytes.rate
+ - abstract_pcma_server
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_2:
- - pcm_port_2
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_2
disk.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_3:
- - pcm_port_3
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_3
disk.root.size_server_pcma2:
- - server_pcma2
- - disk.root.size
+ - abstract_pcma_server
+ - disk.root.size_pcma_server
disk.root.size_server_pcma1:
- - server_pcma1
- - disk.root.size
+ - abstract_pcma_server_1
+ - disk.root.size_pcma_server
disk.iops_server_pcma2:
- - server_pcma2
- - disk.iops
+ - abstract_pcma_server
+ - disk.iops_pcma_server
disk.iops_server_pcma1:
- - server_pcma1
- - disk.iops
+ - abstract_pcma_server_1
+ - disk.iops_pcma_server
disk.device.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.write.bytes.rate_pcma_server
disk.device.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes.rate
+ - abstract_pcma_server
+ - disk.device.write.bytes.rate_pcma_server
disk.read.bytes_server_pcma1:
- - server_pcma1
- - disk.read.bytes
+ - abstract_pcma_server_1
+ - disk.read.bytes_pcma_server
disk.read.bytes_server_pcma2:
- - server_pcma2
- - disk.read.bytes
+ - abstract_pcma_server
+ - disk.read.bytes_pcma_server
cpu_util_server_pcma1:
- - server_pcma1
- - cpu_util
+ - abstract_pcma_server_1
+ - cpu_util_pcma_server
cpu_util_server_pcma2:
- - server_pcma2
- - cpu_util
+ - abstract_pcma_server
+ - cpu_util_pcma_server
feature_server_pcma2:
- - server_pcma2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server
memory.usage_server_pcma2:
- - server_pcma2
- - memory.usage
+ - abstract_pcma_server
+ - memory.usage_pcma_server
memory.usage_server_pcma1:
- - server_pcma1
- - memory.usage
+ - abstract_pcma_server_1
+ - memory.usage_pcma_server
feature_server_pcma1:
- - server_pcma1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server
disk.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.read.bytes.rate_pcma_server
disk.device.read.bytes_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes
+ - abstract_pcma_server
+ - disk.device.read.bytes_pcma_server
disk.device.read.bytes_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes
+ - abstract_pcma_server_1
+ - disk.device.read.bytes_pcma_server
endpoint_server_pcma2:
- - server_pcma2
- - endpoint
+ - abstract_pcma_server
+ - endpoint_pcma_server
disk.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.read.bytes.rate
+ - abstract_pcma_server
+ - disk.read.bytes.rate_pcma_server
endpoint_server_pcma1:
- - server_pcma1
- - endpoint
+ - abstract_pcma_server_1
+ - endpoint_pcma_server
cpu.delta_server_pcma1:
- - server_pcma1
- - cpu.delta
+ - abstract_pcma_server_1
+ - cpu.delta_pcma_server
cpu.delta_server_pcma2:
- - server_pcma2
- - cpu.delta
+ - abstract_pcma_server
+ - cpu.delta_pcma_server
host_server_pcma2:
- - server_pcma2
- - host
+ - abstract_pcma_server
+ - host_pcma_server
host_server_pcma1:
- - server_pcma1
- - host
+ - abstract_pcma_server_1
+ - host_pcma_server
disk.ephemeral.size_server_pcma1:
- - server_pcma1
- - disk.ephemeral.size
+ - abstract_pcma_server_1
+ - disk.ephemeral.size_pcma_server
disk.ephemeral.size_server_pcma2:
- - server_pcma2
- - disk.ephemeral.size
+ - abstract_pcma_server
+ - disk.ephemeral.size_pcma_server
disk.device.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.requests.rate
+ - abstract_pcma_server
+ - disk.device.write.requests.rate_pcma_server
disk.latency_server_pcma1:
- - server_pcma1
- - disk.latency
+ - abstract_pcma_server_1
+ - disk.latency_pcma_server
disk.latency_server_pcma2:
- - server_pcma2
- - disk.latency
+ - abstract_pcma_server
+ - disk.latency_pcma_server
disk.device.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.write.requests.rate_pcma_server
scalable_server_pcma2:
- - server_pcma2
- - scalable
+ - abstract_pcma_server
+ - scalable_pcma_server
scalable_server_pcma1:
- - server_pcma1
- - scalable
+ - abstract_pcma_server_1
+ - scalable_pcma_server
disk.device.write.requests_server_pcma1:
- - server_pcma1
- - disk.device.write.requests
+ - abstract_pcma_server_1
+ - disk.device.write.requests_pcma_server
disk.device.write.requests_server_pcma2:
- - server_pcma2
- - disk.device.write.requests
+ - abstract_pcma_server
+ - disk.device.write.requests_pcma_server
instance_server_pcma2:
- - server_pcma2
- - instance
+ - abstract_pcma_server
+ - instance_pcma_server
disk.device.allocation_server_pcma1:
- - server_pcma1
- - disk.device.allocation
+ - abstract_pcma_server_1
+ - disk.device.allocation_pcma_server
disk.device.allocation_server_pcma2:
- - server_pcma2
- - disk.device.allocation
+ - abstract_pcma_server
+ - disk.device.allocation_pcma_server
instance_server_pcma1:
- - server_pcma1
- - instance
+ - abstract_pcma_server_1
+ - instance_pcma_server
os_server_pcma1:
- - server_pcma1
- - os
+ - abstract_pcma_server_1
+ - os_pcma_server
os_server_pcma2:
- - server_pcma2
- - os
+ - abstract_pcma_server
+ - os_pcma_server
disk.capacity_server_pcma1:
- - server_pcma1
- - disk.capacity
+ - abstract_pcma_server_1
+ - disk.capacity_pcma_server
disk.capacity_server_pcma2:
- - server_pcma2
- - disk.capacity
+ - abstract_pcma_server
+ - disk.capacity_pcma_server
disk.write.requests_server_pcma1:
- - server_pcma1
- - disk.write.requests
+ - abstract_pcma_server_1
+ - disk.write.requests_pcma_server
disk.write.requests_server_pcma2:
- - server_pcma2
- - disk.write.requests
+ - abstract_pcma_server
+ - disk.write.requests_pcma_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_1
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_0
network.outgoing.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_0
network.incoming.packets_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_3
disk.usage_server_pcma2:
- - server_pcma2
- - disk.usage
+ - abstract_pcma_server
+ - disk.usage_pcma_server
network.incoming.packets_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_3
disk.usage_server_pcma1:
- - server_pcma1
- - disk.usage
+ - abstract_pcma_server_1
+ - disk.usage_pcma_server
vcpus_server_pcma1:
- - server_pcma1
- - vcpus
+ - abstract_pcma_server_1
+ - vcpus_pcma_server
memory.resident_server_pcma1:
- - server_pcma1
- - memory.resident
+ - abstract_pcma_server_1
+ - memory.resident_pcma_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_1
vcpus_server_pcma2:
- - server_pcma2
- - vcpus
+ - abstract_pcma_server
+ - vcpus_pcma_server
memory.resident_server_pcma2:
- - server_pcma2
- - memory.resident
+ - abstract_pcma_server
+ - memory.resident_pcma_server
disk.device.write.bytes_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes
+ - abstract_pcma_server
+ - disk.device.write.bytes_pcma_server
disk.allocation_server_pcma1:
- - server_pcma1
- - disk.allocation
+ - abstract_pcma_server_1
+ - disk.allocation_pcma_server
disk.allocation_server_pcma2:
- - server_pcma2
- - disk.allocation
+ - abstract_pcma_server
+ - disk.allocation_pcma_server
disk.device.write.bytes_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes
+ - abstract_pcma_server_1
+ - disk.device.write.bytes_pcma_server
cpu_server_pcma1:
- - server_pcma1
- - cpu
+ - abstract_pcma_server_1
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_0
cpu_server_pcma2:
- - server_pcma2
- - cpu
+ - abstract_pcma_server
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_3
network.incoming.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_2
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_1
requirements:
dependency_server_pcma2:
- - server_pcma2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server
local_storage_server_pcma2:
- - server_pcma2
- - local_storage
+ - abstract_pcma_server
+ - local_storage_pcma_server
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_0
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_1
dependency_server_pcma1:
- - server_pcma1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server
local_storage_server_pcma1:
- - server_pcma1
- - local_storage
+ - abstract_pcma_server_1
+ - local_storage_pcma_server
link_pcm_port_2:
- - pcm_port_2
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_2
link_pcm_port_3:
- - pcm_port_3
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_3
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_0
dependency_pcm_port_3:
- - pcm_port_3
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_3
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_1
dependency_pcm_port_2:
- - pcm_port_2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in/hot-mog-0108-bs1271.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in/hot-mog-0108-bs1271.yml
index 157ec3f5df..13dddd64c4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in/hot-mog-0108-bs1271.yml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in/hot-mog-0108-bs1271.yml
@@ -269,7 +269,7 @@ resources:
network: {get_resource: 1c2_catalog_instance_network}
- nestedNoUnified:
+ nestedNoNestedSingleComputePattern:
type: nested-no_vfc_v0.1.yaml
depends_on:
- 1c2_t2_port_1
@@ -293,7 +293,7 @@ resources:
- 1c102_scalling_instance_1C1
- 1c201_catalog_instance_1C2
- 1c202_scalling_instance_1C2
- - nestedNoUnified
+ - nestedNoNestedSingleComputePattern
- nestedWithNoNovaHadDependencyToIt
properties:
security_group_name: group1
@@ -327,7 +327,7 @@ resources:
dependsOn_network:
type: OS::Neutron::Net
depends_on:
- - nestedNoUnified
+ - nestedNoNestedSingleComputePattern
- 4p_nested
- 1c2_t1_port_1
- 1c2_t1_port_0
@@ -351,7 +351,7 @@ resources:
nodeGetAttIn_network:
type: OS::Neutron::Net
properties:
- name: { get_attr: [nestedNoUnified, portId, {get_attr: [4p_nested, server_pcm_id]}]}
+ name: { get_attr: [nestedNoNestedSingleComputePattern, portId, {get_attr: [4p_nested, server_pcm_id]}]}
dhcp_agent_ids: { get_attr: [1c2_t1_port_1, tenant_id, {get_attr: [1c2_t1_port_0, tenant_id, {get_attr: [1c201_catalog_instance_1C2, instance_name, {get_attr: [1c202_scalling_instance_1C2,instance_name]}]}]}]}
tenant_id: { get_attr:[1c101_scalling_instance_1C1, instance_name, {get_attr:[1c102_scalling_instance_1C1, instance_name, {get_attr:[1c1_t2_port_0, tenant_id, {get_attr:[1c1_t2_port_1, tenant_id]}]}]}]}
value_specs: {get_attr:[1b01_single_1B, instance_name, get_attr:[1b02_single_1B,instance_name, {get_attr:[1b_t1_port_0, tenant_id, {get_attr:[1b_t1_port_1, tenant_id]}]}]] }
@@ -366,7 +366,7 @@ resources:
outputs:
out1:
- value: { get_attr: [nestedNoUnified, portId, {get_attr: [4p_nested, server_pcm_id]}]}
+ value: { get_attr: [nestedNoNestedSingleComputePattern, portId, {get_attr: [4p_nested, server_pcm_id]}]}
out2:
value: { get_attr: [1c2_t1_port_1, tenant_id, {get_attr: [1c2_t1_port_0, tenant_id, {get_attr: [1c201_catalog_instance_1C2, instance_name, {get_attr: [1c202_scalling_instance_1C2,instance_name]}]}]}]}
out3:
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 ed4765e621..e44080f340 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,577 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ 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
+ - 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
+ 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
+ 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.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_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_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.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
+ 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
+ attachment_pcma_server_pcm_port_2:
+ 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
+ attachment_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ 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
+ 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
+ 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:
+ type: org.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:
+ type: org.openecomp.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:
+ type: org.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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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.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.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
+ 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
+ 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
+ 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.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.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.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.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.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
+ 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:
+ type: org.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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.
+ 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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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_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_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_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.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.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
+ 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.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
+ 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.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
+ 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.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.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1482,26 +2053,24 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
+ org.openecomp.resource.abstract.nodes.1c2_catalog_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c1_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c2_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c1_t2_port_vlan_requirements:
+ compute_1c2_catalog_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c1_scalling_instance_user_data_format:
- type: list
+ type: string
+ port_1c2_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_network_role_tag:
+ port_1c2_t2_port_network_role:
type: string
required: true
status: SUPPORTED
@@ -1509,68 +2078,52 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_ip_requirements:
+ 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.IpRequirements
+ type: org.openecomp.datatypes.network.VlanRequirements
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
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t1_port_network:
- type: list
+ port_1c2_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_fixed_ips:
- type: list
+ port_1c2_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t2_port_network:
+ port_1c2_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c1_t1_port_fixed_ips:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t1_port_vlan_requirements:
- type: list
+ port_1c2_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1c1_t2_port_ip_requirements:
+ port_1c2_t2_port_network:
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
+ type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -1579,558 +2132,570 @@ node_types:
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
+ compute_1c2_catalog_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c1_scalling_instance_availability_zone:
+ port_1c2_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t2_port_subnetpoolid:
- type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c1_t2_port_name:
+ port_1c2_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_1c1_scalling_instance_scheduler_hints:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
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
+ port_1c2_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_network_role:
- type: string
+ port_1c2_t1_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_order:
- type: integer
+ 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:
- 1c1_scalling_instance_instance_name:
- type: list
+ 1c2_catalog_instance_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c1_scalling_instance_1c1_t1_port:
+ - dependency_1c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t1_port:
- 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_1c1_scalling_instance:
+ - 0
+ - UNBOUNDED
+ - dependency_1c2_catalog_instance_1c2_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c1_scalling_instance:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_1c2_catalog_instance_1c2_t2_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c1_scalling_instance_1c1_t2_port:
+ - 1
+ - 1
+ - dependency_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t2_port:
+ - link_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.latency_1c1_scalling_instance:
+ 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
- disk.ephemeral.size_1c1_scalling_instance:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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.root.size_1c1_scalling_instance:
+ 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
- endpoint_1c1_scalling_instance:
- type: tosca.capabilities.Endpoint.Admin
+ 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
- disk.read.bytes_1c1_scalling_instance:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ 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
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ binding_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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.resident_1c1_scalling_instance:
+ 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
- network.incoming.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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_1c1_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.
+ feature_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_1c1_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.
+ attachment_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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.write.bytes.rate_1c1_scalling_instance:
+ 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.device.allocation_1c1_scalling_instance:
+ binding_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- feature_1c1_scalling_instance:
- type: tosca.capabilities.Node
+ 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.device.write.requests.rate_1c1_scalling_instance:
+ 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.read.bytes.rate_1c1_scalling_instance:
+ 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.outpoing.packets_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.Scalable
+ os_1c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c1_scalling_instance:
+ 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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ endpoint_1c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- - 0
+ - 1
- UNBOUNDED
- disk.device.write.bytes_1c1_scalling_instance:
+ 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
- disk.read.requests_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t2_port:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- host_1c1_scalling_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Node
+ 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
- binding_1c1_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
- disk.device.read.requests.rate_1c1_scalling_instance:
+ 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
- attachment_1c1_scalling_instance_1c1_t2_port:
+ attachment_1c2_catalog_instance_1c2_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c1_scalling_instance:
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- disk.device.iops_1c1_scalling_instance:
+ 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.device.capacity_1c1_scalling_instance:
+ 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.capacity_1c1_scalling_instance:
+ 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.write.requests.rate_1c1_scalling_instance:
+ 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
- cpu_util_1c1_scalling_instance:
+ 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.requests_1c1_scalling_instance:
+ 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
- disk.device.write.bytes.rate_1c1_scalling_instance:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ 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
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- network.outgoing.bytes_1c1_scalling_instance_1c1_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.
+ scalable_1c2_catalog_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c1_scalling_instance:
+ 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
- binding_1c1_scalling_instance:
- type: tosca.capabilities.network.Bindable
+ host_1c2_catalog_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t1_port:
+ 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.allocation_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- memory.usage_1c1_scalling_instance:
+ 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
- network.incoming.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.OperatingSystem
+ 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.iops_1c1_scalling_instance:
+ 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
- network.outpoing.packets_1c1_scalling_instance_1c1_t1_port:
+ 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
- attachment_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Attachment
+ binding_1c2_catalog_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c1_scalling_instance:
+ 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
- memory_1c1_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.
+ feature_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- instance_1c1_scalling_instance:
+ 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.a_single_1a:
+ org.openecomp.resource.abstract.nodes.pcma_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1a_t1_port_ip_requirements:
+ 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.network.IpRequirements
- port_1a_t2_port_network_role_tag:
- type: string
+ 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_1a_t2_port_network_role:
- type: string
+ port_pcm_port_0_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_network:
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_pcm_port_0_order:
+ type: integer
required: true
status: SUPPORTED
- port_1a_t1_port_network:
- type: list
+ port_pcm_port_0_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- vm_image_name:
+ port_pcm_port_1_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_ip_requirements:
- type: list
+ port_pcm_port_0_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t1_port_vlan_requirements:
- type: list
+ port_pcm_port_0_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_1_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_a_single_1a_availability_zone:
+ 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
- compute_a_single_1a_scheduler_hints:
+ 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
@@ -2139,532 +2704,471 @@ node_types:
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
+ compute_pcma_server_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1a_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ entry_schema:
+ type: string
+ 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:
- type: string
- required: true
- status: SUPPORTED
- port_1a_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_a_single_1a_user_data_format:
+ port_pcm_port_1_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_a_single_1a_name:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t2_port_mac_requirements:
+ port_pcm_port_0_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- attributes:
- a_single_1a_instance_name:
+ port_pcm_port_1_ip_requirements:
type: list
+ required: true
status: SUPPORTED
entry_schema:
- type: string
- a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_a_single_1a:
+ - dependency_pcma_server:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_1a:
+ - local_storage_pcma_server:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_1a_1a_t2_port:
+ - dependency_pcma_server_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_pcma_server_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- 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.
+ - dependency_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
occurrences:
- - 1
+ - 0
- UNBOUNDED
- 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.
+ - link_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- - UNBOUNDED
- disk.usage_a_single_1a:
+ - 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
- attachment_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- scalable_a_single_1a:
+ scalable_pcma_server:
type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_a_single_1a_1a_t2_port:
+ 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
- host_a_single_1a:
+ host_pcma_server:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- endpoint_a_single_1a:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- disk.root.size_a_single_1a:
+ 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.resident_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_a_single_1a:
+ 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.write.requests_a_single_1a:
+ 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
- network.incoming.bytes.rate_a_single_1a_1a_t1_port:
+ 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
- disk.iops_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- 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.
+ endpoint_pcma_server:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- os_a_single_1a:
- type: tosca.capabilities.OperatingSystem
+ feature_pcma_server:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_a_single_1a:
+ 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
- network.incoming.packets.rate_a_single_1a_1a_t1_port:
+ 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
- network.outgoing.packets.rate_a_single_1a_1a_t2_port:
+ 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
- disk.read.requests_a_single_1a:
+ 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
- disk.read.bytes.rate_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- attachment_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Attachment
+ 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
- cpu_a_single_1a:
+ 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
- memory.usage_a_single_1a:
+ 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
- disk.device.write.requests.rate_a_single_1a:
+ 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
- binding_a_single_1a_1a_t2_port:
+ 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_a_single_1a_1a_t2_port:
+ 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
- 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.
+ os_pcma_server:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_a_single_1a:
+ 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
- instance_a_single_1a:
+ 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
- binding_a_single_1a:
- type: tosca.capabilities.network.Bindable
+ 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.latency_a_single_1a:
+ 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
- network.outgoing.bytes_a_single_1a_1a_t2_port:
+ 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.device.allocation_a_single_1a:
+ 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
- disk.write.bytes_a_single_1a:
+ 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
- feature_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Node
+ 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
- network.outpoing.packets_a_single_1a_1a_t2_port:
+ 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.outpoing.packets_a_single_1a_1a_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.read.bytes.rate_a_single_1a:
+ 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
- disk.device.write.bytes_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- memory_a_single_1a:
+ 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
- disk.allocation_a_single_1a:
+ binding_pcma_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.packets.rate_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Node
+ 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
- disk.capacity_a_single_1a:
+ 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.bytes_a_single_1a:
+ 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_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a:
- type: tosca.capabilities.Node
+ 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
- network.outgoing.bytes_a_single_1a_1a_t1_port:
+ 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
- disk.ephemeral.size_a_single_1a:
+ 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
- vcpus_a_single_1a:
+ 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
- binding_a_single_1a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ 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:
- - 0
+ - 1
- UNBOUNDED
- disk.device.iops_a_single_1a:
+ 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
- disk.write.requests_a_single_1a:
+ 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.device.read.requests.rate_a_single_1a:
+ 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.capacity_a_single_1a:
+ 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.write.requests.rate_a_single_1a:
+ 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
- network.incoming.bytes_a_single_1a_1a_t2_port:
+ 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
- network.outgoing.bytes.rate_a_single_1a_1a_t1_port:
+ 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.b_single_1b_1:
+ org.openecomp.resource.abstract.nodes.b_single_1b:
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
- 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
@@ -2689,6 +3193,10 @@ node_types:
status: SUPPORTED
entry_schema:
type: json
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
port_1b_t2_port_vlan_requirements:
type: list
required: true
@@ -2701,10 +3209,32 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
+ 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_network_role_tag:
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_t1_port_subnetpoolid:
type: string
required: true
@@ -2719,35 +3249,51 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
+ 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_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t1_port_network:
+ 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
compute_b_single_1b_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
attributes:
b_single_1b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
@@ -3162,24 +3708,26 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0:
+ org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ port_1c1_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3187,52 +3735,68 @@ node_types:
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:
+ port_1c1_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ compute_1c1_scalling_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
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
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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: string
+ 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
@@ -3241,497 +3805,491 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
+ port_1c1_t2_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c1_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
+ 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_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1c1_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1c1_t2_port_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
+ 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_1c2_t1_port_ip_requirements:
- type: list
+ port_1c1_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: json
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ 1c1_scalling_instance_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_1c1_scalling_instance_1c1_t1_port:
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_1c1_scalling_instance_1c1_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_1c1_scalling_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_1c1_scalling_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ disk.device.latency_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.ephemeral.size_1c1_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.bytes.rate_1c2_catalog_instance:
+ disk.root.size_1c1_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_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.
+ endpoint_1c1_scalling_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ disk.read.bytes_1c1_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_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ disk.usage_1c1_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_1c2_catalog_instance:
+ memory.resident_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.bytes.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ cpu_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ disk.write.bytes_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes_1c1_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.requests_1c2_catalog_instance:
+ disk.write.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.allocation_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes.rate_1c1_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_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.
+ feature_1c1_scalling_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c2_catalog_instance:
+ disk.device.write.requests.rate_1c1_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_1c2_catalog_instance:
+ disk.read.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.outpoing.packets_1c1_scalling_instance_1c1_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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ scalable_1c1_scalling_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c2_catalog_instance:
+ disk.device.read.bytes_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ binding_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ disk.device.write.bytes_1c1_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_1c2_catalog_instance:
+ disk.read.requests_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.packets_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ vcpus_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes_1c1_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.packets.rate_1c2_catalog_instance_1c2_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.
+ host_1c1_scalling_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
+ disk.write.requests_1c1_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
- 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.
+ feature_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ binding_1c1_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
+ disk.device.read.requests.rate_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ attachment_1c1_scalling_instance_1c1_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.read.bytes.rate_1c1_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.bytes_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_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
- instance_1c2_catalog_instance:
+ disk.device.iops_1c1_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_1c2_catalog_instance:
+ disk.device.capacity_1c1_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_1c2_catalog_instance:
+ disk.capacity_1c1_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_1c2_catalog_instance:
+ disk.write.requests.rate_1c1_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_1c2_catalog_instance:
+ cpu_util_1c1_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_1c2_catalog_instance:
+ disk.device.read.requests_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.device.write.bytes.rate_1c1_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_1c2_catalog_instance:
+ disk.device.write.requests_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ network.outgoing.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ disk.latency_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ binding_1c1_scalling_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c2_catalog_instance:
+ disk.device.usage_1c1_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_1c2_catalog_instance:
+ network.incoming.packets_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.allocation_1c1_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_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.
+ feature_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ memory.usage_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.bytes_1c1_scalling_instance_1c1_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
- memory_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_scalling_instance_1c1_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.rate_1c2_catalog_instance:
+ os_1c1_scalling_instance:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_1c1_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_1c2_catalog_instance:
+ network.outpoing.packets_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ attachment_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ cpu.delta_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ memory_1c1_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_1c2_catalog_instance:
+ instance_1c1_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.1c2_catalog_instance_1:
+ org.openecomp.resource.abstract.nodes.a_single_1a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ port_1a_t1_port_ip_requirements:
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: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3739,52 +4297,62 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role_tag:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_1a_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ port_1a_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
+ port_1a_t1_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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
@@ -3793,545 +4361,528 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
- type: list
+ port_1a_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1a_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
+ port_1a_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
+ port_1a_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_ip_requirements:
+ compute_a_single_1a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
+ type: string
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ a_single_1a_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_a_single_1a_1a_t1_port:
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_a_single_1a_1a_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_a_single_1a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_a_single_1a:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_a_single_1a_1a_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_a_single_1a_1a_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ 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:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- 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.
+ attachment_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_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_a_single_1a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
+ host_a_single_1a:
+ type: tosca.capabilities.Container
valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - tosca.nodes.SoftwareComponent
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- cpu_util_1c2_catalog_instance:
+ 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.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ 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
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ 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.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- cpu_1c2_catalog_instance:
+ 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
- disk.read.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ os_a_single_1a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c2_catalog_instance:
+ 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.resident_1c2_catalog_instance:
+ 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
- disk.device.write.requests.rate_1c2_catalog_instance:
+ 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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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.latency_1c2_catalog_instance:
+ 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.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
+ 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
- disk.iops_1c2_catalog_instance:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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
- 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.
+ binding_a_single_1a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ 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
- attachment_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.read.bytes_1c2_catalog_instance:
+ 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
- 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.
+ feature_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c2_catalog_instance:
+ 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.write.bytes_1c2_catalog_instance:
+ 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.device.read.bytes.rate_1c2_catalog_instance:
+ 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.device.allocation_1c2_catalog_instance:
+ 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
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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.read.requests_1c2_catalog_instance:
+ 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.write.bytes.rate_1c2_catalog_instance:
+ 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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ feature_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c2_catalog_instance:
+ 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
- host_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.root.size_1c2_catalog_instance:
+ 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.device.usage_1c2_catalog_instance:
+ feature_a_single_1a:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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.usage_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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:
- - 1
+ - 0
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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
- disk.write.requests.rate_1c2_catalog_instance:
+ 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.write.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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.read.requests.rate_1c2_catalog_instance:
+ 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.nested-no-nova:
- derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ org.openecomp.resource.abstract.nodes.b_single_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- security_group_name:
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_1b_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- net_name:
+ port_1b_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
type: string
required: true
status: SUPPORTED
- attributes:
- output1:
+ 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
- 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.abstract.nodes.b_single_1b_0:
- derived_from: org.openecomp.resource.abstract.nodes.VFC
- properties:
port_1b_t2_port_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
@@ -4356,10 +4907,6 @@ node_types:
status: SUPPORTED
entry_schema:
type: json
- port_1b_t1_port_order:
- type: integer
- required: true
- status: SUPPORTED
port_1b_t2_port_vlan_requirements:
type: list
required: true
@@ -4372,32 +4919,10 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- 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_network_role_tag:
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_t1_port_subnetpoolid:
type: string
required: true
@@ -4412,55 +4937,31 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- 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_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_b_single_1b_user_data_format:
+ port_1b_t1_port_network:
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
compute_b_single_1b_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1b_t2_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_1b_t2_port_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
attributes:
b_single_1b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
@@ -4875,3 +5376,66 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ 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
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 a3c2dfd6b8..aa05a9e575 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
@@ -83,45 +83,29 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ nestedNoNestedSingleComputePattern:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
directives:
- substitutable
properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
server_group: BE_Affinity_group
- port_pcm_port_1_network_role_tag: oam
- port_pcm_port_0_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
pcm_image_name:
get_input: pcm_image_name
security_group_name: jsa_security_group
- port_pcm_port_1_mac_requirements:
- mac_count_required:
- is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- port_pcm_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:
- mac_count_required:
- is_required: false
pcm_server_name:
get_input:
- pcm_server_names
- 0
cps_net_name: nested_network
requirements:
+ - link_pcm_port_2:
+ capability: tosca.capabilities.network.Linkable
+ node: nested_network
+ relationship: tosca.relationships.network.LinksTo
- link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
node: nested_network
@@ -130,6 +114,62 @@ topology_template:
capability: tosca.capabilities.Node
node: nestedWithNoNovaHadDependencyToIt
relationship: tosca.relationships.DependsOn
+ abstract_b_single_1b:
+ type: org.openecomp.resource.abstract.nodes.b_single_1b
+ directives:
+ - substitutable
+ properties:
+ port_1b_t2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_b_single_1b_availability_zone:
+ - get_input: availabilityzone_name
+ compute_b_single_1b_scheduler_hints:
+ - group: BE_Affinity_group
+ port_1b_t2_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_1b_t1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_1b_t1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_1b_t2_port_network:
+ - b_single_1b_network
+ compute_b_single_1b_user_data_format:
+ - RAW
+ compute_b_single_1b_name:
+ - get_input:
+ - b_single_1b_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - dependency_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
+ relationship: tosca.relationships.network.LinksTo
abstract_1c1_scalling_instance:
type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
directives:
@@ -211,78 +251,69 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: 1c1_scalling_instance_network
relationship: tosca.relationships.network.LinksTo
- abstract_b_single_1b_0:
- type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ b_single_1b_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: net_name
+ nestedWithNoNovaHadDependencyToIt:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova
directives:
- substitutable
properties:
- port_1b_t2_port_mac_requirements:
- mac_count_required:
- is_required: false
- compute_b_single_1b_availability_zone:
- - get_input: availabilityzone_name
- compute_b_single_1b_scheduler_hints:
- - group: BE_Affinity_group
- port_1b_t2_port_ip_requirements:
+ service_template_filter:
+ substitute_service_template: nested-no-novaServiceTemplate.yaml
+ security_group_name: group1
+ net_name: myNetwork
+ 4p_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ server_group: BE_Affinity_group
+ port_pcm_port_1_network_role_tag: oam
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- vm_flavor_name:
- get_input: pd_flavor_name
- port_1b_t1_port_ip_requirements:
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name: jsa_security_group
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- vm_image_name:
- get_input: pd_image_name
- port_1b_t1_port_mac_requirements:
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- port_1b_t2_port_network:
- - b_single_1b_network
- compute_b_single_1b_user_data_format:
- - RAW
- compute_b_single_1b_name:
- - get_input:
- - b_single_1b_names
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
- 0
- service_template_filter:
- substitute_service_template: Nested_b_single_1b_0ServiceTemplate.yaml
- count: 1
- index_value:
- get_property:
- - SELF
- - service_template_filter
- - index_value
+ cps_net_name: nested_network
requirements:
- - dependency_b_single_1b:
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: nested_network
+ relationship: tosca.relationships.network.LinksTo
+ - dependency:
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
- relationship: tosca.relationships.network.LinksTo
- b_single_1b_network:
- type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
- properties:
- network_name:
- get_input: net_name
- nestedWithNoNovaHadDependencyToIt:
- type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova
- directives:
- - substitutable
- properties:
- service_template_filter:
- substitute_service_template: nested-no-novaServiceTemplate.yaml
- security_group_name: group1
- net_name: myNetwork
abstract_1c2_catalog_instance_0:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -324,7 +355,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -341,7 +372,7 @@ topology_template:
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_1:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -385,7 +416,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -417,11 +448,11 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
@@ -441,7 +472,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
@@ -491,20 +522,20 @@ topology_template:
- a_single_1a_instance_name
network_name:
get_attribute:
- - nestedNoUnified
+ - nestedNoNestedSingleComputePattern
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
value_specs:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -517,11 +548,11 @@ topology_template:
requirements:
- dependency:
capability: tosca.capabilities.Node
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_1c2_catalog_instance_1c2_t1_port
@@ -549,7 +580,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
@@ -557,7 +588,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
@@ -634,37 +665,6 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: a_single_1a_network
relationship: tosca.relationships.network.LinksTo
- nestedNoUnified:
- type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
- directives:
- - substitutable
- properties:
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
- server_group: BE_Affinity_group
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name: jsa_security_group
- pcm_server_name:
- get_input:
- - pcm_server_names
- - 0
- cps_net_name: nested_network
- requirements:
- - link_pcm_port_2:
- capability: tosca.capabilities.network.Linkable
- node: nested_network
- relationship: tosca.relationships.network.LinksTo
- - link_pcm_port_0:
- capability: tosca.capabilities.network.Linkable
- node: nested_network
- relationship: tosca.relationships.network.LinksTo
- - dependency:
- capability: tosca.capabilities.Node
- node: nestedWithNoNovaHadDependencyToIt
- relationship: tosca.relationships.DependsOn
nested_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
@@ -744,27 +744,27 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_0
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_2
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_3
- node: nestedNoUnified
+ node: nestedNoNestedSingleComputePattern
relationship: org.openecomp.relationships.AttachesTo
abstract_b_single_1b_1:
type: org.openecomp.resource.abstract.nodes.b_single_1b_1
@@ -838,29 +838,29 @@ topology_template:
heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
description: heat template that creates MOG stack
members:
+ - nestedNoNestedSingleComputePattern
- b_single_1b_network
- nestedWithNoNovaHadDependencyToIt
+ - 4p_nested
- nestedWithNoNova
- 1c1_scalling_instance_network
- nodeGetAttIn_network
- dependsOn_network
- - nestedNoUnified
- nested_network
- jsa_security_group
- a_single_1a_network
- 1c2_catalog_instance_network
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
- abstract_1c2_catalog_instance_1
- - abstract_pcm_server_0
BE_Affinity_group:
type: tosca.groups.Root
members:
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
@@ -897,13 +897,13 @@ topology_template:
out4:
value:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -916,10 +916,10 @@ topology_template:
out1:
value:
get_attribute:
- - nestedNoUnified
+ - nestedNoNestedSingleComputePattern
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
out6:
value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c1_scalling_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
index e318ce1578..f185172878 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
@@ -224,21 +224,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c1_scalling_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance
- instance_name
- entry_schema:
- type: string
1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance_1c1_t2_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
index a658c2b03c..8dc72b7a66 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_1c2_catalog_instance_0
+ template_name: Nested_1c2_catalog_instance
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -192,23 +192,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c2_catalog_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance
- instance_name
- entry_schema:
- type: string
1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance_1c2_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
capabilities:
disk.device.capacity_1c2_catalog_instance:
- 1c2_catalog_instance
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
deleted file mode 100644
index 2872bb61d3..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+++ /dev/null
@@ -1,420 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_1
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance_1c2_t1_port
- - tenant_id
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_a_single_1aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_a_single_1aServiceTemplate.yaml
index 9730b31935..1af4929af4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_a_single_1aServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_a_single_1aServiceTemplate.yaml
@@ -192,21 +192,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
a_single_1a_instance_name:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a
- instance_name
- entry_schema:
- type: string
a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a_1a_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.a_single_1a
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1bServiceTemplate.yaml
index 5c28d30768..5365519675 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1bServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_b_single_1b_0
+ template_name: Nested_b_single_1b
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -187,23 +187,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ node_type: org.openecomp.resource.abstract.nodes.b_single_1b
capabilities:
attachment_b_single_1b_1b_t2_port:
- b_single_1b_1b_t2_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_1ServiceTemplate.yaml
index 85181a63a8..3252bfe679 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_b_single_1b_1ServiceTemplate.yaml
@@ -192,21 +192,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.b_single_1b_1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4997938e90
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_serverServiceTemplate.yaml
@@ -0,0 +1,444 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_network_role:
+ type: string
+ required: true
+ port_pcm_port_2_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_3_network_role:
+ type: string
+ required: true
+ port_pcm_port_3_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_3_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_3_order:
+ type: integer
+ required: true
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_2_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_3_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_3_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_3_network_role_tag:
+ type: string
+ required: true
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_3_fixed_ips:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_order:
+ type: integer
+ required: true
+ port_pcm_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_2_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_3_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pcma_server_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_pcma_server_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_3:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_3_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_3_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_3_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_3_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_3_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_3_mac_requirements
+ order:
+ get_input: port_pcm_port_3_order
+ network_role:
+ get_input: port_pcm_port_3_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_3_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_3_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_3_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_2_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_2_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_2_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_2_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_2_mac_requirements
+ order:
+ get_input: port_pcm_port_2_order
+ network_role:
+ get_input: port_pcm_port_2_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_2_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_2_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_2_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes.rate
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ attachment_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - attachment
+ network.incoming.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes.rate
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.outgoing.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes
+ binding_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - binding
+ network.incoming.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes.rate
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets
+ binding_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - binding
+ os_pcma_server:
+ - pcma_server
+ - os
+ network.incoming.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets
+ network.incoming.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.packets.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - feature
+ feature_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes
+ network.incoming.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ network.outpoing.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outpoing.packets
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ network.outpoing.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outpoing.packets
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ requirements:
+ dependency_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - dependency
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - link
+ link_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_server_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..38f70ab8a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/Nested_pcma_server_1ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_0_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_0_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_0_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_0_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_0_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_0_mac_requirements
+ order:
+ get_input: port_pcm_port_0_order
+ network_role:
+ get_input: port_pcm_port_0_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_0_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_0_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_1_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_1_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_1_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_1_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_1_mac_requirements
+ order:
+ get_input: port_pcm_port_1_order
+ network_role:
+ get_input: port_pcm_port_1_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_1_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_1_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ attachment_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - attachment
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.incoming.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets
+ network.incoming.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets.rate
+ binding_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - binding
+ network.incoming.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets
+ os_pcma_server:
+ - pcma_server
+ - os
+ binding_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - binding
+ network.incoming.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ network.incoming.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.packets.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - feature
+ feature_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ network.incoming.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ network.outpoing.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outpoing.packets
+ requirements:
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - link
+ link_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - link
+ dependency_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-no_vfc_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-no_vfc_v0.1ServiceTemplate.yaml
index 587ee1d4a6..676798e9a3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-no_vfc_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-no_vfc_v0.1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pcma_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
server_group:
@@ -106,135 +103,127 @@ topology_template:
immutable: false
type: string
node_templates:
- pcm_port_2:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcma_server_1:
+ type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ directives:
+ - substitutable
properties:
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_network_role_tag: cps
+ port_pcm_port_0_fixed_ips:
- ip_address:
get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ vm_flavor_name:
+ get_input: pcma_flavor_name
+ port_pcm_port_0_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
+ get_input: pcma_image_name
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_1_network:
+ - get_input: oam_net_name
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_config_drive:
+ - true
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_0_network:
+ - get_input: cps_net_name
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pcm_port_1_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
- pcm_port_3:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: oam_net_ip
- mac_requirements:
+ service_template_filter:
+ substitute_service_template: Nested_pcma_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pcma_server:
+ type: org.openecomp.resource.abstract.nodes.pcma_server
+ directives:
+ - substitutable
+ properties:
+ port_pcm_port_3_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- server_pcma2:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
- get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- scheduler_hints:
- group:
- get_input: server_group
- server_pcma1:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
+ port_pcm_port_2_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ vm_flavor_name:
get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
+ port_pcm_port_3_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_2_security_groups:
+ - - get_input: security_group_name
+ port_pcm_port_3_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
+ port_pcm_port_2_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
+ port_pcm_port_3_network_role_tag: cps
+ compute_pcma_server_config_drive:
+ - true
+ port_pcm_port_3_fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_2_network:
+ - get_input: cps_net_name
+ port_pcm_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pcm_port_2_network_role_tag: cps
+ port_pcm_port_3_network:
+ - get_input: oam_net_name
+ compute_pcma_server_scheduler_hints:
+ - group:
+ get_input: server_group
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ service_template_filter:
+ substitute_service_template: Nested_pcma_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-no_vfc_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -242,12 +231,8 @@ topology_template:
heat_file: ../Artifacts/nested-no_vfc_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_2
- - pcm_port_1
- - pcm_port_3
- - server_pcma2
- - server_pcma1
- - pcm_port_0
+ - abstract_pcma_server
+ - abstract_pcma_server_1
outputs:
portId:
value: pcm_port_3
@@ -255,417 +240,417 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_0
network.incoming.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_3
network.incoming.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_2
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_1
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_1
disk.device.iops_server_pcma2:
- - server_pcma2
- - disk.device.iops
+ - abstract_pcma_server
+ - disk.device.iops_pcma_server
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_0
network.outpoing.packets_pcm_port_3:
- - pcm_port_3
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_3
network.outpoing.packets_pcm_port_2:
- - pcm_port_2
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_2
disk.device.iops_server_pcma1:
- - server_pcma1
- - disk.device.iops
+ - abstract_pcma_server_1
+ - disk.device.iops_pcma_server
disk.device.capacity_server_pcma2:
- - server_pcma2
- - disk.device.capacity
+ - abstract_pcma_server
+ - disk.device.capacity_pcma_server
disk.device.capacity_server_pcma1:
- - server_pcma1
- - disk.device.capacity
+ - abstract_pcma_server_1
+ - disk.device.capacity_pcma_server
disk.read.requests_server_pcma2:
- - server_pcma2
- - disk.read.requests
+ - abstract_pcma_server
+ - disk.read.requests_pcma_server
disk.read.requests_server_pcma1:
- - server_pcma1
- - disk.read.requests
+ - abstract_pcma_server_1
+ - disk.read.requests_pcma_server
disk.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.write.requests.rate_pcma_server
disk.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.write.requests.rate
+ - abstract_pcma_server
+ - disk.write.requests.rate_pcma_server
memory_server_pcma2:
- - server_pcma2
- - memory
+ - abstract_pcma_server
+ - memory_pcma_server
memory_server_pcma1:
- - server_pcma1
- - memory
+ - abstract_pcma_server_1
+ - memory_pcma_server
disk.device.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.read.bytes.rate_pcma_server
network.outgoing.bytes_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_3
disk.device.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes.rate
+ - abstract_pcma_server
+ - disk.device.read.bytes.rate_pcma_server
binding_pcm_port_3:
- - pcm_port_3
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_3
disk.device.latency_server_pcma2:
- - server_pcma2
- - disk.device.latency
+ - abstract_pcma_server
+ - disk.device.latency_pcma_server
disk.device.usage_server_pcma2:
- - server_pcma2
- - disk.device.usage
+ - abstract_pcma_server
+ - disk.device.usage_pcma_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_0
disk.device.latency_server_pcma1:
- - server_pcma1
- - disk.device.latency
+ - abstract_pcma_server_1
+ - disk.device.latency_pcma_server
network.incoming.bytes_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_1
disk.device.usage_server_pcma1:
- - server_pcma1
- - disk.device.usage
+ - abstract_pcma_server_1
+ - disk.device.usage_pcma_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_0
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_1
binding_pcm_port_2:
- - pcm_port_2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_3
network.outgoing.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_3
disk.device.read.requests_server_pcma1:
- - server_pcma1
- - disk.device.read.requests
+ - abstract_pcma_server_1
+ - disk.device.read.requests_pcma_server
disk.device.read.requests_server_pcma2:
- - server_pcma2
- - disk.device.read.requests
+ - abstract_pcma_server
+ - disk.device.read.requests_pcma_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_0
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_1
disk.write.bytes_server_pcma2:
- - server_pcma2
- - disk.write.bytes
+ - abstract_pcma_server
+ - disk.write.bytes_pcma_server
disk.device.read.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.read.requests.rate_pcma_server
network.outgoing.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_2
disk.device.read.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.requests.rate
+ - abstract_pcma_server
+ - disk.device.read.requests.rate_pcma_server
disk.write.bytes_server_pcma1:
- - server_pcma1
- - disk.write.bytes
+ - abstract_pcma_server_1
+ - disk.write.bytes_pcma_server
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_1
binding_server_pcma1:
- - server_pcma1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_0
binding_server_pcma2:
- - server_pcma2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_0
network.outgoing.bytes_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_2
feature_pcm_port_3:
- - pcm_port_3
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_3
feature_pcm_port_2:
- - pcm_port_2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_2
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_1
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_0
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_1
disk.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.write.bytes.rate
+ - abstract_pcma_server
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_2:
- - pcm_port_2
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_2
disk.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_3:
- - pcm_port_3
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_3
disk.root.size_server_pcma2:
- - server_pcma2
- - disk.root.size
+ - abstract_pcma_server
+ - disk.root.size_pcma_server
disk.root.size_server_pcma1:
- - server_pcma1
- - disk.root.size
+ - abstract_pcma_server_1
+ - disk.root.size_pcma_server
disk.iops_server_pcma2:
- - server_pcma2
- - disk.iops
+ - abstract_pcma_server
+ - disk.iops_pcma_server
disk.iops_server_pcma1:
- - server_pcma1
- - disk.iops
+ - abstract_pcma_server_1
+ - disk.iops_pcma_server
disk.device.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.write.bytes.rate_pcma_server
disk.device.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes.rate
+ - abstract_pcma_server
+ - disk.device.write.bytes.rate_pcma_server
disk.read.bytes_server_pcma1:
- - server_pcma1
- - disk.read.bytes
+ - abstract_pcma_server_1
+ - disk.read.bytes_pcma_server
disk.read.bytes_server_pcma2:
- - server_pcma2
- - disk.read.bytes
+ - abstract_pcma_server
+ - disk.read.bytes_pcma_server
cpu_util_server_pcma1:
- - server_pcma1
- - cpu_util
+ - abstract_pcma_server_1
+ - cpu_util_pcma_server
cpu_util_server_pcma2:
- - server_pcma2
- - cpu_util
+ - abstract_pcma_server
+ - cpu_util_pcma_server
feature_server_pcma2:
- - server_pcma2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server
memory.usage_server_pcma2:
- - server_pcma2
- - memory.usage
+ - abstract_pcma_server
+ - memory.usage_pcma_server
memory.usage_server_pcma1:
- - server_pcma1
- - memory.usage
+ - abstract_pcma_server_1
+ - memory.usage_pcma_server
feature_server_pcma1:
- - server_pcma1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server
disk.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.read.bytes.rate_pcma_server
disk.device.read.bytes_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes
+ - abstract_pcma_server
+ - disk.device.read.bytes_pcma_server
disk.device.read.bytes_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes
+ - abstract_pcma_server_1
+ - disk.device.read.bytes_pcma_server
endpoint_server_pcma2:
- - server_pcma2
- - endpoint
+ - abstract_pcma_server
+ - endpoint_pcma_server
disk.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.read.bytes.rate
+ - abstract_pcma_server
+ - disk.read.bytes.rate_pcma_server
endpoint_server_pcma1:
- - server_pcma1
- - endpoint
+ - abstract_pcma_server_1
+ - endpoint_pcma_server
cpu.delta_server_pcma1:
- - server_pcma1
- - cpu.delta
+ - abstract_pcma_server_1
+ - cpu.delta_pcma_server
cpu.delta_server_pcma2:
- - server_pcma2
- - cpu.delta
+ - abstract_pcma_server
+ - cpu.delta_pcma_server
host_server_pcma2:
- - server_pcma2
- - host
+ - abstract_pcma_server
+ - host_pcma_server
host_server_pcma1:
- - server_pcma1
- - host
+ - abstract_pcma_server_1
+ - host_pcma_server
disk.ephemeral.size_server_pcma1:
- - server_pcma1
- - disk.ephemeral.size
+ - abstract_pcma_server_1
+ - disk.ephemeral.size_pcma_server
disk.ephemeral.size_server_pcma2:
- - server_pcma2
- - disk.ephemeral.size
+ - abstract_pcma_server
+ - disk.ephemeral.size_pcma_server
disk.device.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.requests.rate
+ - abstract_pcma_server
+ - disk.device.write.requests.rate_pcma_server
disk.latency_server_pcma1:
- - server_pcma1
- - disk.latency
+ - abstract_pcma_server_1
+ - disk.latency_pcma_server
disk.latency_server_pcma2:
- - server_pcma2
- - disk.latency
+ - abstract_pcma_server
+ - disk.latency_pcma_server
disk.device.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.write.requests.rate_pcma_server
scalable_server_pcma2:
- - server_pcma2
- - scalable
+ - abstract_pcma_server
+ - scalable_pcma_server
scalable_server_pcma1:
- - server_pcma1
- - scalable
+ - abstract_pcma_server_1
+ - scalable_pcma_server
disk.device.write.requests_server_pcma1:
- - server_pcma1
- - disk.device.write.requests
+ - abstract_pcma_server_1
+ - disk.device.write.requests_pcma_server
disk.device.write.requests_server_pcma2:
- - server_pcma2
- - disk.device.write.requests
+ - abstract_pcma_server
+ - disk.device.write.requests_pcma_server
instance_server_pcma2:
- - server_pcma2
- - instance
+ - abstract_pcma_server
+ - instance_pcma_server
disk.device.allocation_server_pcma1:
- - server_pcma1
- - disk.device.allocation
+ - abstract_pcma_server_1
+ - disk.device.allocation_pcma_server
disk.device.allocation_server_pcma2:
- - server_pcma2
- - disk.device.allocation
+ - abstract_pcma_server
+ - disk.device.allocation_pcma_server
instance_server_pcma1:
- - server_pcma1
- - instance
+ - abstract_pcma_server_1
+ - instance_pcma_server
os_server_pcma1:
- - server_pcma1
- - os
+ - abstract_pcma_server_1
+ - os_pcma_server
os_server_pcma2:
- - server_pcma2
- - os
+ - abstract_pcma_server
+ - os_pcma_server
disk.capacity_server_pcma1:
- - server_pcma1
- - disk.capacity
+ - abstract_pcma_server_1
+ - disk.capacity_pcma_server
disk.capacity_server_pcma2:
- - server_pcma2
- - disk.capacity
+ - abstract_pcma_server
+ - disk.capacity_pcma_server
disk.write.requests_server_pcma1:
- - server_pcma1
- - disk.write.requests
+ - abstract_pcma_server_1
+ - disk.write.requests_pcma_server
disk.write.requests_server_pcma2:
- - server_pcma2
- - disk.write.requests
+ - abstract_pcma_server
+ - disk.write.requests_pcma_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_1
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_0
network.outgoing.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_0
network.incoming.packets_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_3
disk.usage_server_pcma2:
- - server_pcma2
- - disk.usage
+ - abstract_pcma_server
+ - disk.usage_pcma_server
network.incoming.packets_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_3
disk.usage_server_pcma1:
- - server_pcma1
- - disk.usage
+ - abstract_pcma_server_1
+ - disk.usage_pcma_server
vcpus_server_pcma1:
- - server_pcma1
- - vcpus
+ - abstract_pcma_server_1
+ - vcpus_pcma_server
memory.resident_server_pcma1:
- - server_pcma1
- - memory.resident
+ - abstract_pcma_server_1
+ - memory.resident_pcma_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_1
vcpus_server_pcma2:
- - server_pcma2
- - vcpus
+ - abstract_pcma_server
+ - vcpus_pcma_server
memory.resident_server_pcma2:
- - server_pcma2
- - memory.resident
+ - abstract_pcma_server
+ - memory.resident_pcma_server
disk.device.write.bytes_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes
+ - abstract_pcma_server
+ - disk.device.write.bytes_pcma_server
disk.allocation_server_pcma1:
- - server_pcma1
- - disk.allocation
+ - abstract_pcma_server_1
+ - disk.allocation_pcma_server
disk.allocation_server_pcma2:
- - server_pcma2
- - disk.allocation
+ - abstract_pcma_server
+ - disk.allocation_pcma_server
disk.device.write.bytes_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes
+ - abstract_pcma_server_1
+ - disk.device.write.bytes_pcma_server
cpu_server_pcma1:
- - server_pcma1
- - cpu
+ - abstract_pcma_server_1
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_0
cpu_server_pcma2:
- - server_pcma2
- - cpu
+ - abstract_pcma_server
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_3
network.incoming.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_2
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_1
requirements:
dependency_server_pcma2:
- - server_pcma2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server
local_storage_server_pcma2:
- - server_pcma2
- - local_storage
+ - abstract_pcma_server
+ - local_storage_pcma_server
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_0
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_1
dependency_server_pcma1:
- - server_pcma1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server
local_storage_server_pcma1:
- - server_pcma1
- - local_storage
+ - abstract_pcma_server_1
+ - local_storage_pcma_server
link_pcm_port_2:
- - pcm_port_2
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_2
link_pcm_port_3:
- - pcm_port_3
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_3
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_0
dependency_pcm_port_3:
- - pcm_port_3
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_3
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_1
dependency_pcm_port_2:
- - pcm_port_2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_2
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 cb3099c891..14b52bc131 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,577 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ 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
+ - 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
+ 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
+ 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.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_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_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.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
+ 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
+ attachment_pcma_server_pcm_port_2:
+ 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
+ attachment_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ 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
+ 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
+ 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:
+ type: org.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:
+ type: org.openecomp.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:
+ type: org.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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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.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.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
+ 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
+ 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
+ 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.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.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.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.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.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
+ 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:
+ type: org.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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.
+ 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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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_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_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_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.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.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
+ 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.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
+ 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.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
+ 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.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.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1482,26 +2053,24 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
+ org.openecomp.resource.abstract.nodes.1c2_catalog_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c1_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c2_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c1_t2_port_vlan_requirements:
+ compute_1c2_catalog_instance_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c1_scalling_instance_user_data_format:
- type: list
+ type: string
+ port_1c2_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_network_role_tag:
+ port_1c2_t2_port_network_role:
type: string
required: true
status: SUPPORTED
@@ -1509,68 +2078,52 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_ip_requirements:
+ 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.IpRequirements
+ type: org.openecomp.datatypes.network.VlanRequirements
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
+ port_1c2_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t1_port_network:
- type: list
+ port_1c2_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c1_t2_port_fixed_ips:
- type: list
+ port_1c2_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t2_port_network:
+ port_1c2_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c1_t1_port_fixed_ips:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c2_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_1c1_t1_port_vlan_requirements:
- type: list
+ port_1c2_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1c1_t2_port_ip_requirements:
+ port_1c2_t2_port_network:
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
+ type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -1579,558 +2132,570 @@ node_types:
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
+ compute_1c2_catalog_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ entry_schema:
+ type: string
+ port_1c2_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c1_scalling_instance_availability_zone:
+ port_1c2_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c1_t2_port_subnetpoolid:
- type: string
+ port_1c2_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c1_t2_port_name:
+ port_1c2_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_1c1_scalling_instance_scheduler_hints:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c2_catalog_instance_user_data_format:
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
+ port_1c2_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_1c1_t1_port_network_role:
- type: string
+ port_1c2_t1_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c1_t1_port_order:
- type: integer
+ 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:
- 1c1_scalling_instance_instance_name:
- type: list
+ 1c2_catalog_instance_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
+ 1c2_catalog_instance_1c2_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c1_scalling_instance_1c1_t1_port:
+ - dependency_1c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t1_port:
- 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_1c1_scalling_instance:
+ - 0
+ - UNBOUNDED
+ - dependency_1c2_catalog_instance_1c2_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c1_scalling_instance:
- capability: tosca.capabilities.Attachment
- node: tosca.nodes.BlockStorage
- relationship: tosca.relationships.AttachesTo
+ - link_1c2_catalog_instance_1c2_t2_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c1_scalling_instance_1c1_t2_port:
+ - 1
+ - 1
+ - dependency_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c1_scalling_instance_1c1_t2_port:
+ - link_1c2_catalog_instance_1c2_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.latency_1c1_scalling_instance:
+ 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
- disk.ephemeral.size_1c1_scalling_instance:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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.root.size_1c1_scalling_instance:
+ 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
- endpoint_1c1_scalling_instance:
- type: tosca.capabilities.Endpoint.Admin
+ 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
- disk.read.bytes_1c1_scalling_instance:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ 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
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t2_port:
+ binding_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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.resident_1c1_scalling_instance:
+ 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
- network.incoming.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.outpoing.packets_1c2_catalog_instance_1c2_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_1c1_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.
+ feature_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes_1c1_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.
+ attachment_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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.write.bytes.rate_1c1_scalling_instance:
+ 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.device.allocation_1c1_scalling_instance:
+ binding_1c2_catalog_instance_1c2_t1_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- feature_1c1_scalling_instance:
- type: tosca.capabilities.Node
+ 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.device.write.requests.rate_1c1_scalling_instance:
+ 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.read.bytes.rate_1c1_scalling_instance:
+ 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.outpoing.packets_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.Scalable
+ os_1c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c1_scalling_instance:
+ 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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ endpoint_1c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- - 0
+ - 1
- UNBOUNDED
- disk.device.write.bytes_1c1_scalling_instance:
+ 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
- disk.read.requests_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t2_port:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
+ 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
- host_1c1_scalling_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ network.incoming.packets_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Node
+ 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
- binding_1c1_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
- disk.device.read.requests.rate_1c1_scalling_instance:
+ 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
- attachment_1c1_scalling_instance_1c1_t2_port:
+ attachment_1c2_catalog_instance_1c2_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes.rate_1c1_scalling_instance:
+ network.outgoing.packets.rate_1c2_catalog_instance_1c2_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.packets.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- disk.device.iops_1c1_scalling_instance:
+ 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.device.capacity_1c1_scalling_instance:
+ 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.capacity_1c1_scalling_instance:
+ 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.write.requests.rate_1c1_scalling_instance:
+ 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
- cpu_util_1c1_scalling_instance:
+ 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.requests_1c1_scalling_instance:
+ 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
- disk.device.write.bytes.rate_1c1_scalling_instance:
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
+ 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
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t1_port:
+ 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
- network.outgoing.bytes_1c1_scalling_instance_1c1_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.
+ scalable_1c2_catalog_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.latency_1c1_scalling_instance:
+ 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
- binding_1c1_scalling_instance:
- type: tosca.capabilities.network.Bindable
+ host_1c2_catalog_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_1c1_scalling_instance:
+ 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.incoming.packets_1c1_scalling_instance_1c1_t1_port:
+ 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.allocation_1c1_scalling_instance:
+ network.outgoing.bytes_1c2_catalog_instance_1c2_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_1c1_scalling_instance_1c1_t2_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- memory.usage_1c1_scalling_instance:
+ 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
- network.incoming.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c1_scalling_instance_1c1_t2_port:
+ network.incoming.packets.rate_1c2_catalog_instance_1c2_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_1c1_scalling_instance:
- type: tosca.capabilities.OperatingSystem
+ 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.iops_1c1_scalling_instance:
+ 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
- network.outpoing.packets_1c1_scalling_instance_1c1_t1_port:
+ 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
- attachment_1c1_scalling_instance_1c1_t1_port:
- type: tosca.capabilities.Attachment
+ binding_1c2_catalog_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c1_scalling_instance:
+ 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
- memory_1c1_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.
+ feature_1c2_catalog_instance_1c2_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- instance_1c1_scalling_instance:
+ 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.a_single_1a:
+ org.openecomp.resource.abstract.nodes.pcma_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1a_t1_port_ip_requirements:
+ 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.network.IpRequirements
- port_1a_t2_port_network_role_tag:
- type: string
+ 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_1a_t2_port_network_role:
- type: string
+ port_pcm_port_0_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_network:
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_pcm_port_0_order:
+ type: integer
required: true
status: SUPPORTED
- port_1a_t1_port_network:
- type: list
+ port_pcm_port_0_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1a_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- vm_image_name:
+ port_pcm_port_1_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_ip_requirements:
- type: list
+ port_pcm_port_0_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1a_t1_port_vlan_requirements:
- type: list
+ port_pcm_port_0_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_1_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_a_single_1a_availability_zone:
+ 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
- compute_a_single_1a_scheduler_hints:
+ 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
@@ -2139,532 +2704,471 @@ node_types:
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
+ compute_pcma_server_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1a_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
required: true
status: SUPPORTED
- port_1a_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ entry_schema:
+ type: string
+ 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:
- type: string
- required: true
- status: SUPPORTED
- port_1a_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_a_single_1a_user_data_format:
+ port_pcm_port_1_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_a_single_1a_name:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t2_port_mac_requirements:
+ port_pcm_port_0_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- attributes:
- a_single_1a_instance_name:
+ port_pcm_port_1_ip_requirements:
type: list
+ required: true
status: SUPPORTED
entry_schema:
- type: string
- a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_a_single_1a:
+ - dependency_pcma_server:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_1a:
+ - local_storage_pcma_server:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_1a_1a_t2_port:
+ - dependency_pcma_server_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_pcma_server_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- 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.
+ - dependency_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
occurrences:
- - 1
+ - 0
- UNBOUNDED
- 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.
+ - link_pcma_server_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- - UNBOUNDED
- disk.usage_a_single_1a:
+ - 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
- attachment_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- scalable_a_single_1a:
+ scalable_pcma_server:
type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_a_single_1a_1a_t2_port:
+ 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
- host_a_single_1a:
+ host_pcma_server:
type: tosca.capabilities.Container
valid_source_types:
- tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- endpoint_a_single_1a:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- disk.root.size_a_single_1a:
+ 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.resident_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_a_single_1a:
+ 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.write.requests_a_single_1a:
+ 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
- network.incoming.bytes.rate_a_single_1a_1a_t1_port:
+ 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
- disk.iops_a_single_1a:
+ 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
- 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.
+ attachment_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- 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.
+ endpoint_pcma_server:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- os_a_single_1a:
- type: tosca.capabilities.OperatingSystem
+ feature_pcma_server:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.usage_a_single_1a:
+ 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
- network.incoming.packets.rate_a_single_1a_1a_t1_port:
+ 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
- network.outgoing.packets.rate_a_single_1a_1a_t2_port:
+ 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
- disk.read.requests_a_single_1a:
+ 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
- disk.read.bytes.rate_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- attachment_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Attachment
+ 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
- cpu_a_single_1a:
+ 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
- memory.usage_a_single_1a:
+ 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
- disk.device.write.requests.rate_a_single_1a:
+ 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
- binding_a_single_1a_1a_t2_port:
+ 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_a_single_1a_1a_t2_port:
+ 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
- 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.
+ os_pcma_server:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_a_single_1a:
+ 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
- instance_a_single_1a:
+ 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
- binding_a_single_1a:
- type: tosca.capabilities.network.Bindable
+ 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.latency_a_single_1a:
+ 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
- network.outgoing.bytes_a_single_1a_1a_t2_port:
+ 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.device.allocation_a_single_1a:
+ 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
- disk.write.bytes_a_single_1a:
+ 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
- feature_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Node
+ 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
- network.outpoing.packets_a_single_1a_1a_t2_port:
+ 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.outpoing.packets_a_single_1a_1a_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.read.bytes.rate_a_single_1a:
+ 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
- disk.device.write.bytes_a_single_1a:
+ 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.write.bytes.rate_a_single_1a:
+ 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
- memory_a_single_1a:
+ 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
- disk.allocation_a_single_1a:
+ binding_pcma_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.packets.rate_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Node
+ 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
- disk.capacity_a_single_1a:
+ 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.bytes_a_single_1a:
+ 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_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a:
- type: tosca.capabilities.Node
+ 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
- network.outgoing.bytes_a_single_1a_1a_t1_port:
+ 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
- disk.ephemeral.size_a_single_1a:
+ 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
- vcpus_a_single_1a:
+ 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
- binding_a_single_1a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ 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:
- - 0
+ - 1
- UNBOUNDED
- disk.device.iops_a_single_1a:
+ 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
- disk.write.requests_a_single_1a:
+ 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.device.read.requests.rate_a_single_1a:
+ 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.capacity_a_single_1a:
+ 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.write.requests.rate_a_single_1a:
+ 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
- network.incoming.bytes_a_single_1a_1a_t2_port:
+ 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
- network.outgoing.bytes.rate_a_single_1a_1a_t1_port:
+ 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.b_single_1b_1:
+ org.openecomp.resource.abstract.nodes.b_single_1b:
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
- 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
@@ -2689,6 +3193,10 @@ node_types:
status: SUPPORTED
entry_schema:
type: json
+ port_1b_t1_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
port_1b_t2_port_vlan_requirements:
type: list
required: true
@@ -2701,10 +3209,32 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
+ 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_network_role_tag:
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_t1_port_subnetpoolid:
type: string
required: true
@@ -2719,35 +3249,51 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
+ 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_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- port_1b_t1_port_network:
+ 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
compute_b_single_1b_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
+ port_1b_t2_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1b_t2_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
attributes:
b_single_1b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
@@ -3162,24 +3708,26 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0:
+ org.openecomp.resource.abstract.nodes.1c1_scalling_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
+ port_1c1_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ port_1c1_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_1c1_scalling_instance_user_data_format:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3187,52 +3735,68 @@ node_types:
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:
+ port_1c1_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ compute_1c1_scalling_instance_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1c1_t1_port_name:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ entry_schema:
+ type: string
+ port_1c1_t2_port_fixed_ips:
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
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_1c1_t2_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: string
+ port_1c1_t1_port_fixed_ips:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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: string
+ 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
@@ -3241,497 +3805,491 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
+ port_1c1_t2_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c1_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
+ 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_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1c1_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1c1_t2_port_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
+ type: string
+ compute_1c1_scalling_instance_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
+ 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_1c2_t1_port_ip_requirements:
- type: list
+ port_1c1_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
+ port_1c1_t1_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_1c1_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: json
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ 1c1_scalling_instance_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ 1c1_scalling_instance_1c1_t2_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_1c1_scalling_instance_1c1_t1_port:
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_1c1_scalling_instance_1c1_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_1c1_scalling_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_1c1_scalling_instance:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_1c1_scalling_instance_1c1_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ disk.device.latency_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.ephemeral.size_1c1_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.bytes.rate_1c2_catalog_instance:
+ disk.root.size_1c1_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_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.
+ endpoint_1c1_scalling_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ disk.read.bytes_1c1_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_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ disk.usage_1c1_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_1c2_catalog_instance:
+ memory.resident_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.bytes.rate_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ cpu_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ disk.write.bytes_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ network.incoming.packets.rate_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes_1c1_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.requests_1c2_catalog_instance:
+ disk.write.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.allocation_1c1_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_1c2_catalog_instance:
+ network.incoming.bytes.rate_1c1_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_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.
+ feature_1c1_scalling_instance:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.resident_1c2_catalog_instance:
+ disk.device.write.requests.rate_1c1_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_1c2_catalog_instance:
+ disk.read.bytes.rate_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.outpoing.packets_1c1_scalling_instance_1c1_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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ scalable_1c1_scalling_instance:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c2_catalog_instance:
+ disk.device.read.bytes_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ binding_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ disk.device.write.bytes_1c1_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_1c2_catalog_instance:
+ disk.read.requests_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.packets_1c1_scalling_instance_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ vcpus_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes_1c1_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.packets.rate_1c2_catalog_instance_1c2_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.
+ host_1c1_scalling_instance:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
+ disk.write.requests_1c1_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
- 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.
+ feature_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ binding_1c1_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
+ disk.device.read.requests.rate_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ attachment_1c1_scalling_instance_1c1_t2_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ disk.device.read.bytes.rate_1c1_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.bytes_1c2_catalog_instance:
+ network.outgoing.packets.rate_1c1_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
- instance_1c2_catalog_instance:
+ disk.device.iops_1c1_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_1c2_catalog_instance:
+ disk.device.capacity_1c1_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_1c2_catalog_instance:
+ disk.capacity_1c1_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_1c2_catalog_instance:
+ disk.write.requests.rate_1c1_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_1c2_catalog_instance:
+ cpu_util_1c1_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_1c2_catalog_instance:
+ disk.device.read.requests_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.device.write.bytes.rate_1c1_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_1c2_catalog_instance:
+ disk.device.write.requests_1c1_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_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ network.outgoing.bytes_1c1_scalling_instance_1c1_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_1c2_catalog_instance:
+ disk.latency_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ binding_1c1_scalling_instance:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.root.size_1c2_catalog_instance:
+ disk.device.usage_1c1_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_1c2_catalog_instance:
+ network.incoming.packets_1c1_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_1c2_catalog_instance_1c2_t2_port:
+ disk.allocation_1c1_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_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.
+ feature_1c1_scalling_instance_1c1_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ memory.usage_1c1_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_1c2_catalog_instance_1c2_t1_port:
+ network.incoming.bytes_1c1_scalling_instance_1c1_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
- memory_1c2_catalog_instance:
+ network.outgoing.bytes.rate_1c1_scalling_instance_1c1_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.rate_1c2_catalog_instance:
+ os_1c1_scalling_instance:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_1c1_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_1c2_catalog_instance:
+ network.outpoing.packets_1c1_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_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ attachment_1c1_scalling_instance_1c1_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ cpu.delta_1c1_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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ memory_1c1_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_1c2_catalog_instance:
+ instance_1c1_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.1c2_catalog_instance_1:
+ org.openecomp.resource.abstract.nodes.a_single_1a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ port_1a_t1_port_ip_requirements:
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: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -3739,52 +4297,62 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role_tag:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_1a_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ port_1a_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
+ port_1a_t1_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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
@@ -3793,482 +4361,528 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
- type: list
+ port_1a_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_1a_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_1a_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
+ port_1a_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
+ port_1a_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_ip_requirements:
+ compute_a_single_1a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
+ type: string
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ a_single_1a_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_a_single_1a_1a_t1_port:
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_a_single_1a_1a_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_a_single_1a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_a_single_1a:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_a_single_1a_1a_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_a_single_1a_1a_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ 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:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- 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.
+ attachment_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_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_a_single_1a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
+ host_a_single_1a:
+ type: tosca.capabilities.Container
valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - tosca.nodes.SoftwareComponent
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- cpu_util_1c2_catalog_instance:
+ 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.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ 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
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ 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.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- cpu_1c2_catalog_instance:
+ 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
- disk.read.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ os_a_single_1a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c2_catalog_instance:
+ 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.resident_1c2_catalog_instance:
+ 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
- disk.device.write.requests.rate_1c2_catalog_instance:
+ 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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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.latency_1c2_catalog_instance:
+ 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.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
+ 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
- disk.iops_1c2_catalog_instance:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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
- 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.
+ binding_a_single_1a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ 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
- attachment_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.read.bytes_1c2_catalog_instance:
+ 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
- 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.
+ feature_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c2_catalog_instance:
+ 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.write.bytes_1c2_catalog_instance:
+ 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.device.read.bytes.rate_1c2_catalog_instance:
+ 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.device.allocation_1c2_catalog_instance:
+ 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
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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.read.requests_1c2_catalog_instance:
+ 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.write.bytes.rate_1c2_catalog_instance:
+ 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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ feature_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c2_catalog_instance:
+ 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
- host_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.root.size_1c2_catalog_instance:
+ 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.device.usage_1c2_catalog_instance:
+ feature_a_single_1a:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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.usage_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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:
- - 1
+ - 0
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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
- disk.write.requests.rate_1c2_catalog_instance:
+ 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.write.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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.read.requests.rate_1c2_catalog_instance:
+ 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.b_single_1b_0:
+ 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_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
@@ -4293,10 +4907,6 @@ node_types:
status: SUPPORTED
entry_schema:
type: json
- port_1b_t1_port_order:
- type: integer
- required: true
- status: SUPPORTED
port_1b_t2_port_vlan_requirements:
type: list
required: true
@@ -4309,32 +4919,10 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- 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_network_role_tag:
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_t1_port_subnetpoolid:
type: string
required: true
@@ -4349,55 +4937,31 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- 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_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_b_single_1b_user_data_format:
+ port_1b_t1_port_network:
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
compute_b_single_1b_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1b_t2_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_1b_t2_port_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
attributes:
b_single_1b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
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 286c01ca77..dd024c4607 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
@@ -83,48 +83,57 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ abstract_b_single_1b:
+ type: org.openecomp.resource.abstract.nodes.b_single_1b
directives:
- substitutable
properties:
- server_group: BE_Affinity_group
- port_pcm_port_1_network_role_tag: oam
- port_pcm_port_0_ip_requirements:
+ port_1b_t2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_b_single_1b_availability_zone:
+ - get_input: availabilityzone_name
+ compute_b_single_1b_scheduler_hints:
+ - group: BE_Affinity_group
+ port_1b_t2_port_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: true
- floating_ip_count_required:
is_required: false
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name: jsa_security_group
- port_pcm_port_1_mac_requirements:
- mac_count_required:
+ floating_ip_count_required:
is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- port_pcm_port_1_ip_requirements:
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_1b_t1_port_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: true
+ is_required: false
floating_ip_count_required:
is_required: false
- port_pcm_port_0_network_role_tag: cps
- port_pcm_port_0_mac_requirements:
+ vm_image_name:
+ get_input: pd_image_name
+ port_1b_t1_port_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
- get_input:
- - pcm_server_names
+ port_1b_t2_port_network:
+ - b_single_1b_network
+ compute_b_single_1b_user_data_format:
+ - RAW
+ compute_b_single_1b_name:
+ - get_input:
+ - b_single_1b_names
- 0
- cps_net_name: nested_network
+ service_template_filter:
+ substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
requirements:
- - link_pcm_port_0:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
- node: nested_network
+ node: b_single_1b_network
relationship: tosca.relationships.network.LinksTo
abstract_1c1_scalling_instance:
type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
@@ -203,65 +212,56 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: 1c1_scalling_instance_network
relationship: tosca.relationships.network.LinksTo
- abstract_b_single_1b_0:
- type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ b_single_1b_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: net_name
+ 4p_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
- port_1b_t2_port_mac_requirements:
- mac_count_required:
- is_required: false
- compute_b_single_1b_availability_zone:
- - get_input: availabilityzone_name
- compute_b_single_1b_scheduler_hints:
- - group: BE_Affinity_group
- port_1b_t2_port_ip_requirements:
+ server_group: BE_Affinity_group
+ port_pcm_port_1_network_role_tag: oam
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- vm_flavor_name:
- get_input: pd_flavor_name
- port_1b_t1_port_ip_requirements:
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name: jsa_security_group
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: false
+ is_required: true
floating_ip_count_required:
is_required: false
- vm_image_name:
- get_input: pd_image_name
- port_1b_t1_port_mac_requirements:
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- port_1b_t2_port_network:
- - b_single_1b_network
- compute_b_single_1b_user_data_format:
- - RAW
- compute_b_single_1b_name:
- - get_input:
- - b_single_1b_names
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
- 0
- service_template_filter:
- substitute_service_template: Nested_b_single_1b_0ServiceTemplate.yaml
- count: 1
- index_value:
- get_property:
- - SELF
- - service_template_filter
- - index_value
+ cps_net_name: nested_network
requirements:
- - link_b_single_1b_1b_t2_port:
+ - link_pcm_port_0:
capability: tosca.capabilities.network.Linkable
- node: b_single_1b_network
+ node: nested_network
relationship: tosca.relationships.network.LinksTo
- b_single_1b_network:
- type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
- properties:
- network_name:
- get_input: net_name
abstract_1c2_catalog_instance_0:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -303,7 +303,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -316,7 +316,7 @@ topology_template:
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_1:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -360,7 +360,7 @@ topology_template:
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -419,17 +419,17 @@ topology_template:
- nestedNoUnified
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
value_specs:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -446,7 +446,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_1c2_catalog_instance_1c2_t1_port
@@ -474,7 +474,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
@@ -482,7 +482,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
@@ -657,11 +657,11 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_0
+ node: 4p_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_0
@@ -752,6 +752,7 @@ topology_template:
description: heat template that creates MOG stack
members:
- b_single_1b_network
+ - 4p_nested
- 1c1_scalling_instance_network
- nodeGetAttIn_network
- dependsOn_network
@@ -761,17 +762,16 @@ topology_template:
- a_single_1a_network
- 1c2_catalog_instance_network
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
- abstract_1c2_catalog_instance_1
- - abstract_pcm_server_0
BE_Affinity_group:
type: tosca.groups.Root
members:
- abstract_a_single_1a
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- abstract_1c1_scalling_instance
- abstract_1c2_catalog_instance_0
@@ -808,13 +808,13 @@ topology_template:
out4:
value:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- abstract_b_single_1b_1
@@ -830,7 +830,7 @@ topology_template:
- nestedNoUnified
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested
- server_pcm_id
out6:
value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c1_scalling_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
index e318ce1578..f185172878 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c1_scalling_instanceServiceTemplate.yaml
@@ -224,21 +224,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c1_scalling_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance
- instance_name
- entry_schema:
- type: string
1c1_scalling_instance_1c1_t2_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c1_scalling_instance_1c1_t2_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
index a658c2b03c..8dc72b7a66 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_1c2_catalog_instance_0
+ template_name: Nested_1c2_catalog_instance
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -192,23 +192,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c2_catalog_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance
- instance_name
- entry_schema:
- type: string
1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance_1c2_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
capabilities:
disk.device.capacity_1c2_catalog_instance:
- 1c2_catalog_instance
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
deleted file mode 100644
index 2872bb61d3..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+++ /dev/null
@@ -1,420 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_1
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance_1c2_t1_port
- - tenant_id
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_a_single_1aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_a_single_1aServiceTemplate.yaml
index 9730b31935..1af4929af4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_a_single_1aServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_a_single_1aServiceTemplate.yaml
@@ -192,21 +192,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
a_single_1a_instance_name:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a
- instance_name
- entry_schema:
- type: string
a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a_1a_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.a_single_1a
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1bServiceTemplate.yaml
index 5c28d30768..5365519675 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1bServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_b_single_1b_0
+ template_name: Nested_b_single_1b
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -187,23 +187,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ node_type: org.openecomp.resource.abstract.nodes.b_single_1b
capabilities:
attachment_b_single_1b_1b_t2_port:
- b_single_1b_1b_t2_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_1ServiceTemplate.yaml
index 85181a63a8..3252bfe679 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_b_single_1b_1ServiceTemplate.yaml
@@ -192,21 +192,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.b_single_1b_1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4997938e90
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_serverServiceTemplate.yaml
@@ -0,0 +1,444 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_network_role:
+ type: string
+ required: true
+ port_pcm_port_2_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_3_network_role:
+ type: string
+ required: true
+ port_pcm_port_3_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_3_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_3_order:
+ type: integer
+ required: true
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_2_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_3_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_3_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_3_network_role_tag:
+ type: string
+ required: true
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_3_fixed_ips:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_order:
+ type: integer
+ required: true
+ port_pcm_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_2_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_3_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pcma_server_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_pcma_server_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_3:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_3_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_3_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_3_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_3_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_3_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_3_mac_requirements
+ order:
+ get_input: port_pcm_port_3_order
+ network_role:
+ get_input: port_pcm_port_3_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_3_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_3_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_3_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_2_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_2_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_2_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_2_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_2_mac_requirements
+ order:
+ get_input: port_pcm_port_2_order
+ network_role:
+ get_input: port_pcm_port_2_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_2_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_2_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_2_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes.rate
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ attachment_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - attachment
+ network.incoming.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes.rate
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.outgoing.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes
+ binding_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - binding
+ network.incoming.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes.rate
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets
+ binding_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - binding
+ os_pcma_server:
+ - pcma_server
+ - os
+ network.incoming.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets
+ network.incoming.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.packets.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - feature
+ feature_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes
+ network.incoming.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ network.outpoing.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outpoing.packets
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ network.outpoing.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outpoing.packets
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ requirements:
+ dependency_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - dependency
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - link
+ link_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_server_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..38f70ab8a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/Nested_pcma_server_1ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_0_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_0_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_0_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_0_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_0_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_0_mac_requirements
+ order:
+ get_input: port_pcm_port_0_order
+ network_role:
+ get_input: port_pcm_port_0_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_0_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_0_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_1_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_1_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_1_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_1_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_1_mac_requirements
+ order:
+ get_input: port_pcm_port_1_order
+ network_role:
+ get_input: port_pcm_port_1_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_1_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_1_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ attachment_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - attachment
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.incoming.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets
+ network.incoming.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets.rate
+ binding_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - binding
+ network.incoming.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets
+ os_pcma_server:
+ - pcma_server
+ - os
+ binding_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - binding
+ network.incoming.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ network.incoming.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.packets.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - feature
+ feature_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ network.incoming.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ network.outpoing.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outpoing.packets
+ requirements:
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - link
+ link_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - link
+ dependency_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/nested-no_vfc_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/nested-no_vfc_v0.1ServiceTemplate.yaml
index 587ee1d4a6..676798e9a3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/nested-no_vfc_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/nested-no_vfc_v0.1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pcma_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
server_group:
@@ -106,135 +103,127 @@ topology_template:
immutable: false
type: string
node_templates:
- pcm_port_2:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcma_server_1:
+ type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ directives:
+ - substitutable
properties:
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_network_role_tag: cps
+ port_pcm_port_0_fixed_ips:
- ip_address:
get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ vm_flavor_name:
+ get_input: pcma_flavor_name
+ port_pcm_port_0_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
+ get_input: pcma_image_name
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_1_network:
+ - get_input: oam_net_name
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_config_drive:
+ - true
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_0_network:
+ - get_input: cps_net_name
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pcm_port_1_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
- pcm_port_3:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: oam_net_ip
- mac_requirements:
+ service_template_filter:
+ substitute_service_template: Nested_pcma_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pcma_server:
+ type: org.openecomp.resource.abstract.nodes.pcma_server
+ directives:
+ - substitutable
+ properties:
+ port_pcm_port_3_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- server_pcma2:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
- get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- scheduler_hints:
- group:
- get_input: server_group
- server_pcma1:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
+ port_pcm_port_2_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ vm_flavor_name:
get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
+ port_pcm_port_3_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_2_security_groups:
+ - - get_input: security_group_name
+ port_pcm_port_3_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
+ port_pcm_port_2_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
+ port_pcm_port_3_network_role_tag: cps
+ compute_pcma_server_config_drive:
+ - true
+ port_pcm_port_3_fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_2_network:
+ - get_input: cps_net_name
+ port_pcm_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pcm_port_2_network_role_tag: cps
+ port_pcm_port_3_network:
+ - get_input: oam_net_name
+ compute_pcma_server_scheduler_hints:
+ - group:
+ get_input: server_group
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ service_template_filter:
+ substitute_service_template: Nested_pcma_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-no_vfc_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -242,12 +231,8 @@ topology_template:
heat_file: ../Artifacts/nested-no_vfc_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_2
- - pcm_port_1
- - pcm_port_3
- - server_pcma2
- - server_pcma1
- - pcm_port_0
+ - abstract_pcma_server
+ - abstract_pcma_server_1
outputs:
portId:
value: pcm_port_3
@@ -255,417 +240,417 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_0
network.incoming.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_3
network.incoming.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_2
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_1
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_1
disk.device.iops_server_pcma2:
- - server_pcma2
- - disk.device.iops
+ - abstract_pcma_server
+ - disk.device.iops_pcma_server
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_0
network.outpoing.packets_pcm_port_3:
- - pcm_port_3
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_3
network.outpoing.packets_pcm_port_2:
- - pcm_port_2
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_2
disk.device.iops_server_pcma1:
- - server_pcma1
- - disk.device.iops
+ - abstract_pcma_server_1
+ - disk.device.iops_pcma_server
disk.device.capacity_server_pcma2:
- - server_pcma2
- - disk.device.capacity
+ - abstract_pcma_server
+ - disk.device.capacity_pcma_server
disk.device.capacity_server_pcma1:
- - server_pcma1
- - disk.device.capacity
+ - abstract_pcma_server_1
+ - disk.device.capacity_pcma_server
disk.read.requests_server_pcma2:
- - server_pcma2
- - disk.read.requests
+ - abstract_pcma_server
+ - disk.read.requests_pcma_server
disk.read.requests_server_pcma1:
- - server_pcma1
- - disk.read.requests
+ - abstract_pcma_server_1
+ - disk.read.requests_pcma_server
disk.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.write.requests.rate_pcma_server
disk.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.write.requests.rate
+ - abstract_pcma_server
+ - disk.write.requests.rate_pcma_server
memory_server_pcma2:
- - server_pcma2
- - memory
+ - abstract_pcma_server
+ - memory_pcma_server
memory_server_pcma1:
- - server_pcma1
- - memory
+ - abstract_pcma_server_1
+ - memory_pcma_server
disk.device.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.read.bytes.rate_pcma_server
network.outgoing.bytes_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_3
disk.device.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes.rate
+ - abstract_pcma_server
+ - disk.device.read.bytes.rate_pcma_server
binding_pcm_port_3:
- - pcm_port_3
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_3
disk.device.latency_server_pcma2:
- - server_pcma2
- - disk.device.latency
+ - abstract_pcma_server
+ - disk.device.latency_pcma_server
disk.device.usage_server_pcma2:
- - server_pcma2
- - disk.device.usage
+ - abstract_pcma_server
+ - disk.device.usage_pcma_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_0
disk.device.latency_server_pcma1:
- - server_pcma1
- - disk.device.latency
+ - abstract_pcma_server_1
+ - disk.device.latency_pcma_server
network.incoming.bytes_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_1
disk.device.usage_server_pcma1:
- - server_pcma1
- - disk.device.usage
+ - abstract_pcma_server_1
+ - disk.device.usage_pcma_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_0
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_1
binding_pcm_port_2:
- - pcm_port_2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_3
network.outgoing.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_3
disk.device.read.requests_server_pcma1:
- - server_pcma1
- - disk.device.read.requests
+ - abstract_pcma_server_1
+ - disk.device.read.requests_pcma_server
disk.device.read.requests_server_pcma2:
- - server_pcma2
- - disk.device.read.requests
+ - abstract_pcma_server
+ - disk.device.read.requests_pcma_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_0
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_1
disk.write.bytes_server_pcma2:
- - server_pcma2
- - disk.write.bytes
+ - abstract_pcma_server
+ - disk.write.bytes_pcma_server
disk.device.read.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.read.requests.rate_pcma_server
network.outgoing.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_2
disk.device.read.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.requests.rate
+ - abstract_pcma_server
+ - disk.device.read.requests.rate_pcma_server
disk.write.bytes_server_pcma1:
- - server_pcma1
- - disk.write.bytes
+ - abstract_pcma_server_1
+ - disk.write.bytes_pcma_server
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_1
binding_server_pcma1:
- - server_pcma1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_0
binding_server_pcma2:
- - server_pcma2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_0
network.outgoing.bytes_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_2
feature_pcm_port_3:
- - pcm_port_3
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_3
feature_pcm_port_2:
- - pcm_port_2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_2
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_1
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_0
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_1
disk.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.write.bytes.rate
+ - abstract_pcma_server
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_2:
- - pcm_port_2
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_2
disk.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_3:
- - pcm_port_3
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_3
disk.root.size_server_pcma2:
- - server_pcma2
- - disk.root.size
+ - abstract_pcma_server
+ - disk.root.size_pcma_server
disk.root.size_server_pcma1:
- - server_pcma1
- - disk.root.size
+ - abstract_pcma_server_1
+ - disk.root.size_pcma_server
disk.iops_server_pcma2:
- - server_pcma2
- - disk.iops
+ - abstract_pcma_server
+ - disk.iops_pcma_server
disk.iops_server_pcma1:
- - server_pcma1
- - disk.iops
+ - abstract_pcma_server_1
+ - disk.iops_pcma_server
disk.device.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.write.bytes.rate_pcma_server
disk.device.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes.rate
+ - abstract_pcma_server
+ - disk.device.write.bytes.rate_pcma_server
disk.read.bytes_server_pcma1:
- - server_pcma1
- - disk.read.bytes
+ - abstract_pcma_server_1
+ - disk.read.bytes_pcma_server
disk.read.bytes_server_pcma2:
- - server_pcma2
- - disk.read.bytes
+ - abstract_pcma_server
+ - disk.read.bytes_pcma_server
cpu_util_server_pcma1:
- - server_pcma1
- - cpu_util
+ - abstract_pcma_server_1
+ - cpu_util_pcma_server
cpu_util_server_pcma2:
- - server_pcma2
- - cpu_util
+ - abstract_pcma_server
+ - cpu_util_pcma_server
feature_server_pcma2:
- - server_pcma2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server
memory.usage_server_pcma2:
- - server_pcma2
- - memory.usage
+ - abstract_pcma_server
+ - memory.usage_pcma_server
memory.usage_server_pcma1:
- - server_pcma1
- - memory.usage
+ - abstract_pcma_server_1
+ - memory.usage_pcma_server
feature_server_pcma1:
- - server_pcma1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server
disk.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.read.bytes.rate_pcma_server
disk.device.read.bytes_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes
+ - abstract_pcma_server
+ - disk.device.read.bytes_pcma_server
disk.device.read.bytes_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes
+ - abstract_pcma_server_1
+ - disk.device.read.bytes_pcma_server
endpoint_server_pcma2:
- - server_pcma2
- - endpoint
+ - abstract_pcma_server
+ - endpoint_pcma_server
disk.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.read.bytes.rate
+ - abstract_pcma_server
+ - disk.read.bytes.rate_pcma_server
endpoint_server_pcma1:
- - server_pcma1
- - endpoint
+ - abstract_pcma_server_1
+ - endpoint_pcma_server
cpu.delta_server_pcma1:
- - server_pcma1
- - cpu.delta
+ - abstract_pcma_server_1
+ - cpu.delta_pcma_server
cpu.delta_server_pcma2:
- - server_pcma2
- - cpu.delta
+ - abstract_pcma_server
+ - cpu.delta_pcma_server
host_server_pcma2:
- - server_pcma2
- - host
+ - abstract_pcma_server
+ - host_pcma_server
host_server_pcma1:
- - server_pcma1
- - host
+ - abstract_pcma_server_1
+ - host_pcma_server
disk.ephemeral.size_server_pcma1:
- - server_pcma1
- - disk.ephemeral.size
+ - abstract_pcma_server_1
+ - disk.ephemeral.size_pcma_server
disk.ephemeral.size_server_pcma2:
- - server_pcma2
- - disk.ephemeral.size
+ - abstract_pcma_server
+ - disk.ephemeral.size_pcma_server
disk.device.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.requests.rate
+ - abstract_pcma_server
+ - disk.device.write.requests.rate_pcma_server
disk.latency_server_pcma1:
- - server_pcma1
- - disk.latency
+ - abstract_pcma_server_1
+ - disk.latency_pcma_server
disk.latency_server_pcma2:
- - server_pcma2
- - disk.latency
+ - abstract_pcma_server
+ - disk.latency_pcma_server
disk.device.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.write.requests.rate_pcma_server
scalable_server_pcma2:
- - server_pcma2
- - scalable
+ - abstract_pcma_server
+ - scalable_pcma_server
scalable_server_pcma1:
- - server_pcma1
- - scalable
+ - abstract_pcma_server_1
+ - scalable_pcma_server
disk.device.write.requests_server_pcma1:
- - server_pcma1
- - disk.device.write.requests
+ - abstract_pcma_server_1
+ - disk.device.write.requests_pcma_server
disk.device.write.requests_server_pcma2:
- - server_pcma2
- - disk.device.write.requests
+ - abstract_pcma_server
+ - disk.device.write.requests_pcma_server
instance_server_pcma2:
- - server_pcma2
- - instance
+ - abstract_pcma_server
+ - instance_pcma_server
disk.device.allocation_server_pcma1:
- - server_pcma1
- - disk.device.allocation
+ - abstract_pcma_server_1
+ - disk.device.allocation_pcma_server
disk.device.allocation_server_pcma2:
- - server_pcma2
- - disk.device.allocation
+ - abstract_pcma_server
+ - disk.device.allocation_pcma_server
instance_server_pcma1:
- - server_pcma1
- - instance
+ - abstract_pcma_server_1
+ - instance_pcma_server
os_server_pcma1:
- - server_pcma1
- - os
+ - abstract_pcma_server_1
+ - os_pcma_server
os_server_pcma2:
- - server_pcma2
- - os
+ - abstract_pcma_server
+ - os_pcma_server
disk.capacity_server_pcma1:
- - server_pcma1
- - disk.capacity
+ - abstract_pcma_server_1
+ - disk.capacity_pcma_server
disk.capacity_server_pcma2:
- - server_pcma2
- - disk.capacity
+ - abstract_pcma_server
+ - disk.capacity_pcma_server
disk.write.requests_server_pcma1:
- - server_pcma1
- - disk.write.requests
+ - abstract_pcma_server_1
+ - disk.write.requests_pcma_server
disk.write.requests_server_pcma2:
- - server_pcma2
- - disk.write.requests
+ - abstract_pcma_server
+ - disk.write.requests_pcma_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_1
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_0
network.outgoing.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_0
network.incoming.packets_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_3
disk.usage_server_pcma2:
- - server_pcma2
- - disk.usage
+ - abstract_pcma_server
+ - disk.usage_pcma_server
network.incoming.packets_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_3
disk.usage_server_pcma1:
- - server_pcma1
- - disk.usage
+ - abstract_pcma_server_1
+ - disk.usage_pcma_server
vcpus_server_pcma1:
- - server_pcma1
- - vcpus
+ - abstract_pcma_server_1
+ - vcpus_pcma_server
memory.resident_server_pcma1:
- - server_pcma1
- - memory.resident
+ - abstract_pcma_server_1
+ - memory.resident_pcma_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_1
vcpus_server_pcma2:
- - server_pcma2
- - vcpus
+ - abstract_pcma_server
+ - vcpus_pcma_server
memory.resident_server_pcma2:
- - server_pcma2
- - memory.resident
+ - abstract_pcma_server
+ - memory.resident_pcma_server
disk.device.write.bytes_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes
+ - abstract_pcma_server
+ - disk.device.write.bytes_pcma_server
disk.allocation_server_pcma1:
- - server_pcma1
- - disk.allocation
+ - abstract_pcma_server_1
+ - disk.allocation_pcma_server
disk.allocation_server_pcma2:
- - server_pcma2
- - disk.allocation
+ - abstract_pcma_server
+ - disk.allocation_pcma_server
disk.device.write.bytes_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes
+ - abstract_pcma_server_1
+ - disk.device.write.bytes_pcma_server
cpu_server_pcma1:
- - server_pcma1
- - cpu
+ - abstract_pcma_server_1
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_0
cpu_server_pcma2:
- - server_pcma2
- - cpu
+ - abstract_pcma_server
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_3
network.incoming.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_2
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_1
requirements:
dependency_server_pcma2:
- - server_pcma2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server
local_storage_server_pcma2:
- - server_pcma2
- - local_storage
+ - abstract_pcma_server
+ - local_storage_pcma_server
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_0
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_1
dependency_server_pcma1:
- - server_pcma1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server
local_storage_server_pcma1:
- - server_pcma1
- - local_storage
+ - abstract_pcma_server_1
+ - local_storage_pcma_server
link_pcm_port_2:
- - pcm_port_2
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_2
link_pcm_port_3:
- - pcm_port_3
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_3
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_0
dependency_pcm_port_3:
- - pcm_port_3
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_3
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_1
dependency_pcm_port_2:
- - pcm_port_2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in/hot-mog-0108-bs1271.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in/hot-mog-0108-bs1271.yml
index 12bcc160fb..c063cfdd26 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in/hot-mog-0108-bs1271.yml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in/hot-mog-0108-bs1271.yml
@@ -39,6 +39,8 @@ parameters:
type: string
1c2_catalog_instance_names:
type: string
+ 2c2_catalog_instance_names:
+ type: string
pcm_server_names:
type: string
pcm_image_name:
@@ -70,9 +72,9 @@ resources:
connectivityTo1C1_T2_11 : {get_attr : [1c1_t2_port_11, tenant_id]},
connectivityTo1C1_T2_12 : {get_attr : [1c1_t2_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -98,9 +100,9 @@ resources:
connectivityTo1C1_T2_11 : {get_attr : [1c1_t2_port_11, tenant_id]},
connectivityTo1C1_T2_12 : {get_attr : [1c1_t2_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -149,9 +151,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -219,9 +221,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -291,9 +293,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -340,9 +342,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -384,9 +386,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -427,9 +429,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
@@ -460,8 +462,8 @@ resources:
flavor: {get_param: pd_flavor_name}
availability_zone: {get_param: availabilityzone_name}
networks:
- - port: {get_resource: 1c2_t1_port_02}
- - port: {get_resource: 1c2_t2_port_02}
+ - port: {get_resource: 1c201_port_02}
+ - port: {get_resource: 2c202_port_02}
user_data_format: RAW1
scheduler_hints: { group: { get_resource: BE_Affinity } }
metadata: { connectivityTo1A_1 : {get_attr : [1a_single_1A_1, instance_name]},
@@ -474,20 +476,22 @@ resources:
connectivityTo1C1_T1_02 : {get_attr : [1c1_t1_port_02, tenant_id]},
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
connectivityToNoUnifiedNested_2 : {get_attr : [nestedNoUnified_2, portId]}
}
+ diskConfig: {get_attr: [1c201_port_02, tenant_id]}
+ personality: {get_attr: [[1a_single_1A_1, instance_name]]}
- 1c2_t1_port_02:
+ 1c201_port_02:
type: OS::Neutron::Port
properties:
network: {get_param: oam_net_name}
- 1c2_t2_port_02:
+ 2c202_port_02:
type: OS::Neutron::Port
properties:
network: {get_resource: 1c2_catalog_instance_network}
@@ -498,7 +502,7 @@ resources:
name:
get_param: net_name
- 1c202_catalog_instance_1C21:
+ 1c201_catalog_instance_1C22:
type: OS::Nova::Server
properties:
name: {get_param: [1c2_catalog_instance_names, 2]}
@@ -506,30 +510,31 @@ resources:
flavor: {get_param: pd_flavor_name}
availability_zone: {get_param: availabilityzone_name}
networks:
- - port: {get_resource: 1c2_t1_port_11}
- - port: {get_resource: 1c2_t2_port_11}
+ - port: {get_resource: 1c201_port_11}
+ - port: {get_resource: 2c202_port_11}
user_data_format: {get_attr: [1c201_catalog_instance_1C21, instance_name]}
scheduler_hints: { group: { get_resource: BE_Affinity } }
+ diskConfig: {get_attr: [1c201_port_02, tenant_id]}
- 1c2_t1_port_11:
+ 1c201_port_11:
type: OS::Neutron::Port
properties:
network: {get_param: oam_net_name}
- 1c2_t2_port_11:
+ 2c202_port_11:
type: OS::Neutron::Port
properties:
network: {get_resource: 1c2_catalog_instance_network}
- 1c201_catalog_instance_1C22:
+ 2c202_catalog_instance_1C21:
type: OS::Nova::Server
properties:
- name: {get_param: [1c2_catalog_instance_names, 2]}
+ name: {get_param: [2c2_catalog_instance_names, 0]}
image: {get_param: pd_image_name}
flavor: {get_param: pd_flavor_name}
availability_zone: {get_param: availabilityzone_name}
networks:
- - port: {get_resource: 1c2_t1_port_022}
- - port: {get_resource: 1c2_t2_port_022}
+ - port: {get_resource: 1c201_port_022}
+ - port: {get_resource: 2c202_port_022}
user_data_format: RAW1
scheduler_hints: { group: { get_resource: BE_Affinity } }
metadata: { connectivityTo1A_1 : {get_attr : [1a_single_1A_1, instance_name]},
@@ -543,7 +548,7 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
@@ -551,33 +556,33 @@ resources:
connectivityToNoUnifiedNested_2 : {get_attr : [nestedNoUnified_2, portId]}
}
- 1c2_t1_port_022:
+ 1c201_port_022:
type: OS::Neutron::Port
properties:
network: {get_param: oam_net_name}
- 1c2_t2_port_022:
+ 2c202_port_022:
type: OS::Neutron::Port
properties:
network: {get_resource: 1c2_catalog_instance_network}
- 1c202_catalog_instance_1C22:
+ 2c202_catalog_instance_1C22:
type: OS::Nova::Server
properties:
- name: {get_param: [1c2_catalog_instance_names,3]}
+ name: {get_param: [2c2_catalog_instance_names,1]}
image: {get_param: pd_image_name}
flavor: {get_param: pd_flavor_name}
availability_zone: {get_param: availabilityzone_name}
networks:
- - port: {get_resource: 1c2_t1_port_12}
- - port: {get_resource: 1c2_t2_port_12}
+ - port: {get_resource: 1c201_port_12}
+ - port: {get_resource: 2c202_port_12}
user_data_format: {get_attr: [1c201_catalog_instance_1C22, instance_name]}
scheduler_hints: { group: { get_resource: BE_Affinity } }
- 1c2_t1_port_12:
+ 1c201_port_12:
type: OS::Neutron::Port
properties:
network: {get_param: oam_net_name}
- 1c2_t2_port_12:
+ 2c202_port_12:
type: OS::Neutron::Port
properties:
network: {get_resource: 1c2_catalog_instance_network}
@@ -604,9 +609,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
connectivityToNoUnifiedNested_2 : {get_attr : [nestedNoUnified_2, portId]}
@@ -639,9 +644,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]},
connectivityToNoUnifiedNested_2 : {get_attr : [nestedNoUnified_2, portId]}
@@ -668,9 +673,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_2 : {get_attr : [nestedNoUnified_2, portId]}
@@ -696,9 +701,9 @@ resources:
connectivityTo1C1_T1_11 : {get_attr : [1c1_t1_port_11, tenant_id]},
connectivityTo1C1_T1_12 : {get_attr : [1c1_t1_port_12, tenant_id]},
connectivityTo1C2_1_1 : {get_attr : [1c201_catalog_instance_1C21, instance_name]},
- connectivityTo1C2_2_1 : {get_attr : [1c202_catalog_instance_1C21, instance_name]},
+ connectivityTo1C2_2_1 : {get_attr : [2c202_catalog_instance_1C21, instance_name]},
connectivityTo1C2_1_2 : {get_attr : [1c201_catalog_instance_1C22, instance_name]},
- connectivityTo1C2_2_2 : {get_attr : [1c202_catalog_instance_1C22, instance_name]},
+ connectivityTo1C2_2_2 : {get_attr : [2c202_catalog_instance_1C22, instance_name]},
connectivityTo4PNested_1 : {get_attr : [4p_nested_1, server_pcm_id]},
connectivityTo4PNested_2 : {get_attr : [4p_nested_2, server_pcm_id]},
connectivityToNoUnifiedNested_1 : {get_attr : [nestedNoUnified_1, portId]}
@@ -730,12 +735,12 @@ resources:
- nestedNoUnified_2
- 4p_nested_1
- 4p_nested_2
- - 1c2_t1_port_11
- - 1c2_t1_port_02
+ - 1c201_port_11
+ - 1c201_port_02
- 1c201_catalog_instance_1C21
- - 1c202_catalog_instance_1C21
+ - 2c202_catalog_instance_1C21
- 1c201_catalog_instance_1C22
- - 1c202_catalog_instance_1C22
+ - 2c202_catalog_instance_1C22
- 1c101_scalling_instance_1C11
- 1c101_scalling_instance_1C12
- 1c102_scalling_instance_1C11
@@ -757,7 +762,7 @@ resources:
type: OS::Neutron::Net
properties:
name: { get_attr: [nestedNoUnified_1, portId, {get_attr: [4p_nested_2, server_pcm_id]}]}
- dhcp_agent_ids: { get_attr: [1c2_t1_port_11, tenant_id, {get_attr: [1c2_t1_port_02, tenant_id, {get_attr: [1c201_catalog_instance_1C22, instance_name, {get_attr: [1c202_catalog_instance_1C21,instance_name]}]}]}]}
+ dhcp_agent_ids: { get_attr: [1c201_port_11, tenant_id, {get_attr: [1c201_port_02, tenant_id, {get_attr: [1c201_catalog_instance_1C22, instance_name, {get_attr: [2c202_catalog_instance_1C21,instance_name]}]}]}]}
tenant_id: { get_attr:[1c101_scalling_instance_1C11, instance_name,
{get_attr:[1c102_scalling_instance_1C11, instance_name, {get_attr:[1c1_t2_port_02, tenant_id, {get_attr:[1c1_t2_port_11, tenant_id]}, {get_attr:[1c1_t2_port_12, tenant_id]}, {get_attr:[1c102_scalling_instance_1C12, instance_name]}]}]}]}
value_specs: {get_attr:[1b01_single_1B_1, instance_name, get_attr:[1b02_single_1B_1,instance_name, {get_attr:[1b_t1_port_01, tenant_id, {get_attr:[1b_t1_port_11, tenant_id]}]}]] }
@@ -774,7 +779,7 @@ outputs:
out1:
value: { get_attr: [nestedNoUnified_1, portId, {get_attr: [4p_nested_2, server_pcm_id]}]}
out2:
- value: { get_attr: [1c2_t1_port_11, tenant_id, {get_attr: [1c2_t1_port_02, tenant_id, {get_attr: [1c201_catalog_instance_1C22, instance_name, {get_attr: [1c202_catalog_instance_1C21,instance_name]}]}]}]}
+ value: { get_attr: [1c201_port_11, tenant_id, {get_attr: [1c201_port_02, tenant_id, {get_attr: [1c201_catalog_instance_1C22, instance_name, {get_attr: [2c202_catalog_instance_1C21,instance_name]}]}]}]}
out3:
value: { get_attr:[1c101_scalling_instance_1C11, instance_name, {get_attr:[1c102_scalling_instance_1C11, instance_name, {get_attr:[1c1_t2_port_02, tenant_id,{get_attr:[1c1_t2_port_11, tenant_id]}, {get_attr:[1c1_t2_port_12, tenant_id]}, {get_attr:[1c102_scalling_instance_1C12, instance_name]}]}]}]}
out4:
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 4dbd5cfbb6..40d6c556fa 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
@@ -1022,15 +1022,11 @@ node_types:
status: SUPPORTED
attributes:
1c12_scalling_instance_1c1_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
1c12_scalling_instance_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_1c12_scalling_instance_1c1_t1_port:
capability: tosca.capabilities.Node
@@ -1367,6 +1363,573 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
+ 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
+ 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.abstract.nodes.1c11_scalling_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1466,15 +2029,11 @@ node_types:
status: SUPPORTED
attributes:
1c11_scalling_instance_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
1c11_scalling_instance_1c1_t1_port_tenant_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_1c11_scalling_instance:
capability: tosca.capabilities.Node
@@ -1811,6 +2370,577 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ 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
+ - 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
+ 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
+ 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.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_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_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.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
+ 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
+ attachment_pcma_server_pcm_port_2:
+ 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
+ attachment_pcma_server_pcm_port_3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ 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
+ 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
+ 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:
+ type: org.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:
+ type: org.openecomp.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:
+ type: org.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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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.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.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
+ 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
+ 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
+ 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.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.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.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.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.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
+ 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:
+ type: org.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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:
+ type: org.openecomp.capabilities.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.
+ 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.
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.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_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_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_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.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.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
+ 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.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
+ 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.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
+ 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.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.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -2378,510 +3508,620 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.a_single_2a:
+ org.openecomp.resource.abstract.nodes.2c2_catalog_instance:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_a_single_2a_user_data_format:
+ compute_2c2_catalog_instance_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1c201_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
status: SUPPORTED
- constraints:
- - greater_or_equal: 0
- port_1a_t1_port_ip_requirements:
+ 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_1a_t1_port_network_role_tag:
+ 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_1a_t1_port_network_role:
+ port_2c202_port_network_role:
type: string
required: true
status: SUPPORTED
- compute_a_single_2a_scheduler_hints:
- type: list
+ vm_image_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_1a_t1_port_order:
+ port_2c202_port_order:
type: integer
required: true
status: SUPPORTED
- compute_a_single_2a_availability_zone:
+ 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: string
- vm_flavor_name:
- type: string
+ type: json
+ compute_2c2_catalog_instance_availability_zone:
+ type: list
required: true
status: SUPPORTED
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ entry_schema:
+ type: string
+ port_1c201_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1a_t1_port_network:
+ port_2c202_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1a_t1_port_subnetpoolid:
- type: string
- 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
- compute_a_single_2a_name:
+ constraints:
+ - greater_or_equal: 0
+ compute_2c2_catalog_instance_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- vm_image_name:
- type: string
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1a_t1_port_vlan_requirements:
+ port_2c202_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_a_single_2a_metadata:
+ type: string
+ port_1c201_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- attributes:
- a_single_2a_instance_name:
+ 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_a_single_2a:
+ - dependency_2c2_catalog_instance:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_2a:
+ - local_storage_2c2_catalog_instance:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_2a_1a_t1_port:
+ - dependency_2c2_catalog_instance_2c202_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_a_single_2a_1a_t1_port:
+ - link_2c2_catalog_instance_2c202_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_2c2_catalog_instance_1c201_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_2c2_catalog_instance_1c201_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.capacity_a_single_2a:
+ 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.ephemeral.size_a_single_2a:
+ 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
- disk.device.read.bytes_a_single_2a:
+ 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
- cpu_util_a_single_2a:
+ 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.write.requests_a_single_2a:
+ 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
- disk.read.requests_a_single_2a:
+ 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
- disk.device.iops_a_single_2a:
+ 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
- disk.device.usage_a_single_2a:
+ 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.rate_a_single_2a:
+ 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
- disk.device.write.requests.rate_a_single_2a:
+ scalable_2c2_catalog_instance:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
- network.incoming.bytes.rate_a_single_2a_1a_t1_port:
+ 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
- disk.write.requests.rate_a_single_2a:
+ 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.latency_a_single_2a:
+ 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.read.bytes_a_single_2a:
+ 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
- disk.device.read.requests_a_single_2a:
+ 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:
type: org.openecomp.capabilities.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:
+ os_2c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
- disk.latency_a_single_2a:
+ 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
- network.incoming.packets.rate_a_single_2a_1a_t1_port:
+ 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
- disk.usage_a_single_2a:
+ 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
- network.incoming.bytes_a_single_2a_1a_t1_port:
+ 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
- scalable_a_single_2a:
- type: tosca.capabilities.Scalable
+ 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
- feature_a_single_2a_1a_t1_port:
- type: tosca.capabilities.Node
+ endpoint_2c2_catalog_instance:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_a_single_2a:
+ 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.device.read.bytes.rate_a_single_2a:
+ 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
- endpoint_a_single_2a:
- type: tosca.capabilities.Endpoint.Admin
+ feature_2c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.root.size_a_single_2a:
+ 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.device.write.requests_a_single_2a:
+ 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
- attachment_a_single_2a_1a_t1_port:
+ attachment_2c2_catalog_instance_1c201_port:
type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.iops_a_single_2a:
+ 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
- vcpus_a_single_2a:
+ 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
- os_a_single_2a:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.write.bytes.rate_a_single_2a:
+ 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.capacity_a_single_2a:
+ 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
- cpu_a_single_2a:
+ 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.read.requests.rate_a_single_2a:
+ 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
- memory.usage_a_single_2a:
+ 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
- network.outgoing.packets.rate_a_single_2a_1a_t1_port:
+ 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
- network.outpoing.packets_a_single_2a_1a_t1_port:
+ 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
- binding_a_single_2a:
- type: tosca.capabilities.network.Bindable
+ 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
- instance_a_single_2a:
+ 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.outgoing.bytes_a_single_2a_1a_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.write.bytes_a_single_2a:
+ 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
- binding_a_single_2a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ 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:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.packets_a_single_2a_1a_t1_port:
+ 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
- host_a_single_2a:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.device.write.bytes.rate_a_single_2a:
+ 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
- memory_a_single_2a:
+ 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.allocation_a_single_2a:
+ 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_a_single_2a:
+ 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
- network.outgoing.bytes.rate_a_single_2a_1a_t1_port:
+ 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
- cpu.delta_a_single_2a:
+ 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
- feature_a_single_2a:
+ feature_2c2_catalog_instance_2c202_port:
type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_2:
+ 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_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
+ port_1c201_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
type: string
required: true
status: SUPPORTED
- vm_flavor_name:
- type: string
+ compute_1c2_catalog_instance_personality:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role_tag:
+ entry_schema:
+ type: json
+ port_2c202_port_subnetpoolid:
type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_2c202_port_ip_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.network.IpRequirements
+ port_1c201_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ port_2c202_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ port_2c202_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
- type: list
+ vm_image_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_2c202_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
+ port_1c201_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ port_1c201_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_2c202_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -2896,42 +4136,50 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
+ port_2c202_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c2_t2_port_mac_requirements:
+ 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_1c2_t2_port_vlan_requirements:
- type: list
+ 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
- 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:
+ port_1c201_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: string
compute_1c2_catalog_instance_scheduler_hints:
type: list
required: true
@@ -2940,10 +4188,11 @@ node_types:
type: json
attributes:
1c2_catalog_instance_instance_name:
- type: list
+ type: string
+ status: SUPPORTED
+ 1c2_catalog_instance_1c201_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_1c2_catalog_instance:
capability: tosca.capabilities.Node
@@ -2959,27 +4208,27 @@ node_types:
occurrences:
- 0
- UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - dependency_1c2_catalog_instance_1c201_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_1c2_catalog_instance_1c201_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - dependency_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
@@ -2992,78 +4241,61 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_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_1c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- memory.usage_1c2_catalog_instance:
+ 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
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ 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.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ binding_1c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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:
@@ -3081,14 +4313,7 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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:
@@ -3118,18 +4343,23 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ os_1c2_catalog_instance:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ feature_1c2_catalog_instance_2c202_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.iops_1c2_catalog_instance:
+ 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:
@@ -3152,54 +4382,55 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ 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.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- vcpus_1c2_catalog_instance:
+ 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
- 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.
+ attachment_1c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- attachment_1c2_catalog_instance_1c2_t2_port:
- 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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:
@@ -3235,19 +4466,19 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_1c2_catalog_instance:
+ 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
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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:
@@ -3289,13 +4520,30 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ feature_1c2_catalog_instance_1c201_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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
+ 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
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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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:
@@ -3312,13 +4560,13 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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:
@@ -3347,8 +4595,9 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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
@@ -3358,635 +4607,532 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.a_single_1a:
+ org.openecomp.resource.abstract.nodes.a_single_2a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_a_single_1a_metadata:
+ compute_a_single_2a_user_data_format:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ 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_t2_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- vm_flavor_name:
+ port_1a_t1_port_network_role_tag:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_network_role:
+ port_1a_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_network:
+ compute_a_single_2a_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1a_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: json
+ port_1a_t1_port_order:
+ type: integer
required: true
status: SUPPORTED
- port_1a_t1_port_network:
+ compute_a_single_2a_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1a_t1_port_subnetpoolid:
- type: string
- required: true
- status: SUPPORTED
- vm_image_name:
+ vm_flavor_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
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- compute_a_single_1a_availability_zone:
+ port_1a_t1_port_network:
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:
+ port_1a_t1_port_subnetpoolid:
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:
+ compute_a_single_2a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- port_1a_t2_port_subnetpoolid:
+ type: string
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1a_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_a_single_1a_user_data_format:
+ port_1a_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- compute_a_single_1a_name:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_a_single_2a_metadata:
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
+ type: json
attributes:
- a_single_1a_instance_name:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- a_single_1a_1a_t1_port_tenant_id:
- type: list
+ a_single_2a_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_a_single_1a_1a_t1_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
- occurrences:
- - 1
- - 1
- - dependency_a_single_1a:
+ - dependency_a_single_2a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_a_single_1a:
+ - local_storage_a_single_2a:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_a_single_1a_1a_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_a_single_1a_1a_t2_port:
+ - link_a_single_2a_1a_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.read.bytes_a_single_1a:
+ 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_a_single_1a_1a_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
- disk.usage_a_single_1a:
+ 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
- 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:
+ 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
- host_a_single_1a:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
- occurrences:
- - 1
- - UNBOUNDED
- endpoint_a_single_1a:
- type: tosca.capabilities.Endpoint.Admin
- occurrences:
- - 1
- - UNBOUNDED
- disk.root.size_a_single_1a:
+ 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
- memory.resident_a_single_1a:
+ 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
- network.incoming.packets.rate_a_single_1a_1a_t2_port:
+ 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
- cpu.delta_a_single_1a:
+ 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
- disk.device.write.requests_a_single_1a:
+ 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_a_single_1a_1a_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.iops_a_single_1a:
+ 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
- network.incoming.bytes_a_single_1a_1a_t1_port:
+ 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
- cpu_util_a_single_1a:
+ 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
- os_a_single_1a:
- type: tosca.capabilities.OperatingSystem
- occurrences:
- - 1
- - UNBOUNDED
- disk.device.usage_a_single_1a:
+ 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
- network.incoming.packets.rate_a_single_1a_1a_t1_port:
+ 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_a_single_1a_1a_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.read.requests_a_single_1a:
+ 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.read.bytes.rate_a_single_1a:
+ 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
- disk.write.bytes.rate_a_single_1a:
+ 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
- attachment_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Attachment
- occurrences:
- - 1
- - UNBOUNDED
- cpu_a_single_1a:
+ 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
- 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.
+ scalable_a_single_2a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- 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.
+ feature_a_single_2a_1a_t1_port:
+ type: tosca.capabilities.Node
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
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.packets_a_single_1a_1a_t2_port:
+ 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.device.read.requests_a_single_1a:
+ 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
- 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.
+ endpoint_a_single_2a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- instance_a_single_1a:
+ 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
- binding_a_single_1a:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- disk.latency_a_single_1a:
+ 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
- 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.
+ attachment_a_single_2a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.device.allocation_a_single_1a:
+ 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
- disk.write.bytes_a_single_1a:
+ 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
- feature_a_single_1a_1a_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- 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.
+ os_a_single_2a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_a_single_1a_1a_t1_port:
+ 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.rate_a_single_1a:
+ 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.write.bytes_a_single_1a:
+ 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
- disk.device.write.bytes.rate_a_single_1a:
+ 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
- memory_a_single_1a:
+ 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
- disk.allocation_a_single_1a:
+ 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
- network.outgoing.packets.rate_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a_1a_t2_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- 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.
+ binding_a_single_2a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_a_single_1a:
+ 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
- network.incoming.packets_a_single_1a_1a_t1_port:
+ 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
- feature_a_single_1a:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- network.outgoing.bytes_a_single_1a_1a_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
- 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.
+ 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:
- - 1
+ - 0
- UNBOUNDED
- vcpus_a_single_1a:
+ 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
- binding_a_single_1a_1a_t1_port:
- type: tosca.capabilities.network.Bindable
+ host_a_single_2a:
+ type: tosca.capabilities.Container
valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - tosca.nodes.SoftwareComponent
occurrences:
- - 0
+ - 1
- UNBOUNDED
- disk.device.iops_a_single_1a:
+ 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
- disk.write.requests_a_single_1a:
+ 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
- disk.device.read.requests.rate_a_single_1a:
+ 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.device.capacity_a_single_1a:
+ 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.write.requests.rate_a_single_1a:
+ 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
- network.incoming.bytes_a_single_1a_1a_t2_port:
+ 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
- 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.
+ feature_a_single_2a:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_3:
+ org.openecomp.resource.abstract.nodes.pcma_server_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
+ port_pcm_port_0_network_role:
+ type: string
required: true
status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
- type: list
+ port_pcm_port_1_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ port_pcm_port_0_fixed_ips:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
- type: string
+ 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_1c2_t2_port_network_role_tag:
- type: string
+ port_pcm_port_0_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ 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_1c2_t2_port_exCP_naming:
+ 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_1c2_t1_port_order:
- type: integer
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ port_pcm_port_1_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ port_pcm_port_1_network:
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
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: boolean
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -3995,480 +5141,469 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
+ compute_pcma_server_user_data_format:
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:
+ port_pcm_port_0_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_1c2_t2_port_mac_requirements:
+ port_pcm_port_1_mac_requirements:
type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ port_pcm_port_1_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
+ port_pcm_port_1_fixed_ips:
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: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: json
- attributes:
- 1c2_catalog_instance_instance_name:
+ port_pcm_port_1_ip_requirements:
type: list
+ required: true
status: SUPPORTED
entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_pcma_server:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c2_catalog_instance:
+ - local_storage_pcma_server:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - dependency_pcma_server_pcm_port_0:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_pcma_server_pcm_port_0:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - dependency_pcma_server_pcm_port_1:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_pcma_server_pcm_port_1:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_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.rate_1c2_catalog_instance_1c2_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.
+ scalable_pcma_server:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- 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.
+ host_pcma_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ 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.write.bytes.rate_1c2_catalog_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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ attachment_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Attachment
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- cpu_util_1c2_catalog_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
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ attachment_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ endpoint_pcma_server:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.bytes_1c2_catalog_instance_1c2_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_pcma_server:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- cpu_1c2_catalog_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.read.requests_1c2_catalog_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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.ephemeral.size_1c2_catalog_instance:
+ 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
- disk.device.write.bytes_1c2_catalog_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.resident_1c2_catalog_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
- disk.device.write.requests.rate_1c2_catalog_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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ binding_pcma_server_pcm_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
occurrences:
- - 1
+ - 0
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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
- 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.
+ os_pcma_server:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.iops_1c2_catalog_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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- vcpus_1c2_catalog_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
- disk.device.latency_1c2_catalog_instance:
+ 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
- attachment_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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.read.bytes_1c2_catalog_instance:
+ 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
- instance_1c2_catalog_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
- disk.capacity_1c2_catalog_instance:
+ 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.write.bytes_1c2_catalog_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
- 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.
+ feature_pcma_server_pcm_port_0:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- 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.
+ feature_pcma_server_pcm_port_1:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_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.
+ binding_pcma_server:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.read.requests_1c2_catalog_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.device.write.bytes.rate_1c2_catalog_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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ 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
- disk.device.write.requests_1c2_catalog_instance:
+ 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
- host_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.root.size_1c2_catalog_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.usage_1c2_catalog_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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- disk.usage_1c2_catalog_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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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_1c2_catalog_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
- disk.write.requests.rate_1c2_catalog_instance:
+ 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_1c2_catalog_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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ 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
- cpu.delta_1c2_catalog_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
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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.device.read.requests.rate_1c2_catalog_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.b_single_1b_1:
+ org.openecomp.resource.abstract.nodes.b_single_1b:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -4559,16 +5694,16 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
- port_1b_t1_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- compute_b_single_1b_metadata:
+ 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
@@ -4589,23 +5724,25 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- compute_b_single_1b_name:
+ port_1b_t1_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- attributes:
- b_single_1b_instance_name:
+ 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: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_1b:
capability: tosca.capabilities.Node
@@ -5020,24 +6157,22 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0:
+ org.openecomp.resource.abstract.nodes.a_single_1a:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
- type: integer
- required: true
- status: SUPPORTED
- compute_1c2_catalog_instance_availability_zone:
+ compute_a_single_1a_metadata:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
+ type: json
+ port_1a_t1_port_ip_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1a_t2_port_network_role_tag:
type: string
required: true
status: SUPPORTED
@@ -5045,52 +6180,62 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role_tag:
+ port_1a_t2_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_1a_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
+ type: string
+ port_1a_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1a_t1_port_network:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
- type: integer
+ entry_schema:
+ type: string
+ port_1a_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_subnetpoolid:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_ip_requirements:
+ port_1a_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
+ port_1a_t1_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
- type: string
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t1_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t2_port_network:
+ 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
@@ -5099,551 +6244,533 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_metadata:
- type: list
+ port_1a_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- compute_1c2_catalog_instance_name:
- type: list
+ port_1a_t1_port_network_role:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
+ 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_1c2_t1_port_network:
+ port_1a_t2_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1a_t2_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
- type: list
+ port_1a_t2_port_order:
+ type: integer
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
+ compute_a_single_1a_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:
+ compute_a_single_1a_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
+ type: string
+ port_1a_t2_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- entry_schema:
- type: json
attributes:
- 1c2_catalog_instance_instance_name:
- type: list
+ a_single_1a_instance_name:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ a_single_1a_1a_t1_port_tenant_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_a_single_1a_1a_t1_port:
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_a_single_1a_1a_t1_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
occurrences:
- - 0
- - UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - 1
+ - 1
+ - dependency_a_single_1a:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
- capability: tosca.capabilities.network.Linkable
- relationship: tosca.relationships.network.LinksTo
+ - local_storage_a_single_1a:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
occurrences:
- - 1
- - 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - 0
+ - UNBOUNDED
+ - dependency_a_single_1a_1a_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_a_single_1a_1a_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- disk.device.capacity_1c2_catalog_instance:
+ 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:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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
- UNBOUNDED
- disk.read.bytes.rate_1c2_catalog_instance:
+ 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
- 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.
+ attachment_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.outpoing.packets_1c2_catalog_instance_1c2_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_a_single_1a:
+ type: tosca.capabilities.Scalable
occurrences:
- 1
- UNBOUNDED
- disk.write.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
+ host_a_single_1a:
+ type: tosca.capabilities.Container
valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ - tosca.nodes.SoftwareComponent
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_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_1a:
+ type: tosca.capabilities.Endpoint.Admin
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
+ 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
- cpu_util_1c2_catalog_instance:
+ 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.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ 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
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ 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.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- cpu_1c2_catalog_instance:
+ 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
- disk.read.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
- occurrences:
- - 0
- - UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- 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.
+ os_a_single_1a:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- disk.device.write.bytes_1c2_catalog_instance:
+ 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.resident_1c2_catalog_instance:
+ 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
- disk.device.write.requests.rate_1c2_catalog_instance:
+ 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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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
- disk.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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.latency_1c2_catalog_instance:
+ 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.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
+ 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
- disk.iops_1c2_catalog_instance:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_t2_port:
+ 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
- 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.
+ binding_a_single_1a:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- disk.device.latency_1c2_catalog_instance:
+ 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
- attachment_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ 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
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.read.bytes_1c2_catalog_instance:
+ 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
- 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.
+ feature_a_single_1a_1a_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.capacity_1c2_catalog_instance:
+ 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.write.bytes_1c2_catalog_instance:
+ 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.device.read.bytes.rate_1c2_catalog_instance:
+ 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.device.allocation_1c2_catalog_instance:
+ 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
- disk.device.read.bytes_1c2_catalog_instance:
+ 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
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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.read.requests_1c2_catalog_instance:
+ 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.write.bytes.rate_1c2_catalog_instance:
+ 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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ feature_a_single_1a_1a_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- disk.device.write.requests_1c2_catalog_instance:
+ 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
- host_1c2_catalog_instance:
- type: tosca.capabilities.Container
- valid_source_types:
- - tosca.nodes.SoftwareComponent
+ 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.root.size_1c2_catalog_instance:
+ 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.device.usage_1c2_catalog_instance:
+ feature_a_single_1a:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ 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.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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.usage_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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:
- - 1
+ - 0
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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
- disk.write.requests.rate_1c2_catalog_instance:
+ 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.write.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
- occurrences:
- - 1
- - UNBOUNDED
- cpu.delta_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ 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.read.requests.rate_1c2_catalog_instance:
+ 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.1c2_catalog_instance_1:
+ org.openecomp.resource.abstract.nodes.b_single_1b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_1c2_t2_port_order:
+ port_1b_t1_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:
+ port_1b_t1_port_network_role:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_network_role:
- type: string
+ 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_1c2_t2_port_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_1c2_t1_port_vlan_requirements:
+ port_1b_t1_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
vm_image_name:
type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_1b_t2_port_network_role:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t1_port_order:
+ port_1b_t2_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:
+ compute_b_single_1b_user_data_format:
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
+ type: string
+ port_1b_t2_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
status: SUPPORTED
- port_1c2_t1_port_network_role:
+ 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_1c2_t2_port_network:
+ 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
@@ -5657,475 +6784,482 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_name:
+ compute_b_single_1b_scheduler_hints:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ type: json
+ port_1b_t2_port_vlan_requirements:
+ type: list
required: true
status: SUPPORTED
- port_1c2_t1_port_network:
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_1b_t2_port_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1b_t1_port_network_role_tag:
+ type: string
required: true
status: SUPPORTED
- port_1c2_t2_port_vlan_requirements:
+ compute_b_single_1b_metadata:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
+ type: json
+ port_1b_t1_port_subnetpoolid:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
+ port_1b_t1_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
- port_1c2_t1_port_ip_requirements:
+ port_1b_t2_port_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
+ type: string
+ port_1b_t1_port_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- attributes:
- 1c2_catalog_instance_instance_name:
+ 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
+ status: SUPPORTED
+ b_single_1b_1b_t1_port_tenant_id:
+ type: string
+ status: SUPPORTED
requirements:
- - dependency_1c2_catalog_instance:
+ - dependency_b_single_1b:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - local_storage_1c2_catalog_instance:
+ - local_storage_b_single_1b:
capability: tosca.capabilities.Attachment
node: tosca.nodes.BlockStorage
relationship: tosca.relationships.AttachesTo
occurrences:
- 0
- UNBOUNDED
- - dependency_1c2_catalog_instance_1c2_t2_port:
+ - dependency_b_single_1b_1b_t1_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_b_single_1b_1b_t1_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
- - dependency_1c2_catalog_instance_1c2_t1_port:
+ - dependency_b_single_1b_1b_t2_port:
capability: tosca.capabilities.Node
node: tosca.nodes.Root
relationship: tosca.relationships.DependsOn
occurrences:
- 0
- UNBOUNDED
- - link_1c2_catalog_instance_1c2_t1_port:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
relationship: tosca.relationships.network.LinksTo
occurrences:
- 1
- 1
capabilities:
- 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.
+ attachment_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- network.incoming.packets.rate_1c2_catalog_instance_1c2_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
- 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.
+ feature_b_single_1b:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- memory.usage_1c2_catalog_instance:
+ 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.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
+ 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.bytes.rate_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ scalable_b_single_1b:
+ type: tosca.capabilities.Scalable
occurrences:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
+ 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_1c2_catalog_instance_1c2_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.
+ os_b_single_1b:
+ type: tosca.capabilities.OperatingSystem
occurrences:
- 1
- UNBOUNDED
- cpu_util_1c2_catalog_instance:
+ 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
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
+ 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
- feature_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Node
+ 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
- attachment_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.Attachment
+ 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_1c2_catalog_instance_1c2_t2_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
- cpu_1c2_catalog_instance:
+ 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.read.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance_1c2_t1_port:
- type: tosca.capabilities.network.Bindable
- valid_source_types:
- - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ 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:
- - 0
+ - 1
- UNBOUNDED
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.ephemeral.size_1c2_catalog_instance:
+ 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.device.write.bytes_1c2_catalog_instance:
+ 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
- memory.resident_1c2_catalog_instance:
+ 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
- disk.device.write.requests.rate_1c2_catalog_instance:
+ 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
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
+ 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
- os_1c2_catalog_instance:
- type: tosca.capabilities.OperatingSystem
+ 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.device.iops_1c2_catalog_instance:
+ 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
- endpoint_1c2_catalog_instance:
- type: tosca.capabilities.Endpoint.Admin
+ attachment_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- disk.allocation_1c2_catalog_instance:
+ 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
- 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.
+ 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:
- - 1
+ - 0
- UNBOUNDED
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
+ 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.bytes_1c2_catalog_instance_1c2_t1_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.iops_1c2_catalog_instance:
+ 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.packets.rate_1c2_catalog_instance_1c2_t2_port:
+ 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.incoming.packets_1c2_catalog_instance_1c2_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
- vcpus_1c2_catalog_instance:
+ 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.device.latency_1c2_catalog_instance:
+ 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_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Attachment
+ feature_b_single_1b_1b_t1_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- disk.read.bytes_1c2_catalog_instance:
+ 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
- instance_1c2_catalog_instance:
+ 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.capacity_1c2_catalog_instance:
+ 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_1c2_catalog_instance:
+ 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.device.read.bytes.rate_1c2_catalog_instance:
+ 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.device.allocation_1c2_catalog_instance:
+ 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.read.bytes_1c2_catalog_instance:
+ 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.rate_1c2_catalog_instance_1c2_t2_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
- disk.device.read.requests_1c2_catalog_instance:
+ 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
- disk.device.write.bytes.rate_1c2_catalog_instance:
+ 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
- scalable_1c2_catalog_instance:
- type: tosca.capabilities.Scalable
+ 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.requests_1c2_catalog_instance:
+ 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_1c2_catalog_instance:
- 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
- disk.root.size_1c2_catalog_instance:
+ 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.usage_1c2_catalog_instance:
+ 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.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
+ 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
- disk.usage_1c2_catalog_instance:
+ 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
- feature_1c2_catalog_instance:
- type: tosca.capabilities.Node
+ 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.rate_1c2_catalog_instance_1c2_t1_port:
+ 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
- memory_1c2_catalog_instance:
+ 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.write.requests.rate_1c2_catalog_instance:
+ 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.write.requests_1c2_catalog_instance:
+ 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
- binding_1c2_catalog_instance:
- type: tosca.capabilities.network.Bindable
+ 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
- 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.
+ host_b_single_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
occurrences:
- 1
- UNBOUNDED
- feature_1c2_catalog_instance_1c2_t2_port:
- type: tosca.capabilities.Node
+ binding_b_single_1b:
+ type: tosca.capabilities.network.Bindable
occurrences:
- 1
- UNBOUNDED
- 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.
+ feature_b_single_1b_1b_t2_port:
+ type: tosca.capabilities.Node
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.b_single_2b_1:
+ org.openecomp.resource.abstract.nodes.b_single_2b:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -6144,12 +7278,6 @@ node_types:
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
@@ -6222,6 +7350,12 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
+ 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
@@ -6252,12 +7386,16 @@ node_types:
status: SUPPORTED
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
- attributes:
- b_single_2b_instance_name:
+ port_1b_t1_port_network:
type: list
+ required: true
status: SUPPORTED
entry_schema:
type: string
+ attributes:
+ b_single_2b_instance_name:
+ type: string
+ status: SUPPORTED
requirements:
- dependency_b_single_2b:
capability: tosca.capabilities.Node
@@ -6672,7 +7810,7 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.b_single_1b_0:
+ org.openecomp.resource.abstract.nodes.b_single_2b_1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_1b_t1_port_order:
@@ -6691,564 +7829,12 @@ node_types:
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:
+ compute_b_single_2b_metadata:
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: list
- status: SUPPORTED
- entry_schema:
- type: string
- b_single_1b_1b_t1_port_tenant_id:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- requirements:
- - dependency_b_single_1b:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - local_storage_b_single_1b:
- 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:
- capability: tosca.capabilities.Node
- node: tosca.nodes.Root
- relationship: tosca.relationships.DependsOn
- occurrences:
- - 0
- - UNBOUNDED
- - link_b_single_1b_1b_t2_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:
- type: org.openecomp.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:
- type: org.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:
- type: org.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:
- type: org.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:
- type: org.openecomp.capabilities.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:
- type: org.openecomp.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:
- type: org.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.
- 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.
- occurrences:
- - 1
- - UNBOUNDED
- 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.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.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_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.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
- 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
- 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
- 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
- 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.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
- attachment_b_single_1b_1b_t1_port:
- type: tosca.capabilities.Attachment
- 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.
- 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:
- type: org.openecomp.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:
- type: org.openecomp.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.
- occurrences:
- - 1
- - UNBOUNDED
- 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.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
- 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.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_1b_1b_t1_port:
- type: tosca.capabilities.Node
- occurrences:
- - 1
- - UNBOUNDED
- 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
- 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_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_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_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_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_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_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.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.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.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.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
- 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
- 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:
- type: org.openecomp.capabilities.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:
- type: org.openecomp.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.
- occurrences:
- - 1
- - UNBOUNDED
- 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.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
- 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.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.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
- 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
- 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.abstract.nodes.b_single_2b_0:
- 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
- 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
@@ -7321,12 +7907,6 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- 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
@@ -7357,18 +7937,10 @@ node_types:
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:
b_single_2b_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_b_single_2b:
capability: tosca.capabilities.Node
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 9407798da3..f12a9c2d2e 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
@@ -32,6 +32,10 @@ topology_template:
hidden: false
immutable: false
type: string
+ 2c2_catalog_instance_names:
+ hidden: false
+ immutable: false
+ type: string
pcm_server_names:
hidden: false
immutable: false
@@ -95,276 +99,111 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ abstract_b_single_1b:
+ type: org.openecomp.resource.abstract.nodes.b_single_1b
directives:
- substitutable
properties:
- server_group: BE_Affinity_group
- port_pcm_port_1_network_role_tag: oam
- connectivityChk:
- connectivityTo4PNested_2:
- get_attribute:
- - abstract_pcm_server_0
- - server_pcm_id
- connectivityTo1C1_T1_02:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_11:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_01:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_12:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1B01_1:
- get_attribute:
- - abstract_b_single_1b_1
- - b_single_1b_instance_name
- connectivityTo1B02_1:
- get_attribute:
- - abstract_b_single_1b_0
- - b_single_1b_instance_name
- connectivityTo1B01_2:
- get_attribute:
- - abstract_b_single_2b_1
- - b_single_2b_instance_name
- connectivityTo1C2_2_2:
- get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
- connectivityTo1A_2:
- get_attribute:
- - abstract_a_single_2a
- - a_single_2a_instance_name
- connectivityTo1B02_2:
- get_attribute:
- - abstract_b_single_2b_0
- - b_single_2b_instance_name
- connectivityToNoUnifiedNested_2:
- get_attribute:
- - nestedNoUnified_2
- - portId
- connectivityTo1A_1:
- get_attribute:
- - abstract_a_single_1a
- - a_single_1a_instance_name
- connectivityToNoUnifiedNested_1:
- get_attribute:
- - nestedNoUnified_1
- - portId
- connectivityTo1C2_1_1:
- get_attribute:
- - abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_2_1:
- get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_1_2:
- get_attribute:
- - abstract_1c2_catalog_instance_1
- - 1c2_catalog_instance_instance_name
- port_pcm_port_0_ip_requirements:
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_1b_t1_port_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name: jsa_security_group
- port_pcm_port_1_mac_requirements:
- mac_count_required:
is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- port_pcm_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:
+ vm_image_name:
+ get_input: pd_image_name
+ compute_b_single_1b_user_data_format:
+ - RAW
+ port_1b_t2_port_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
- get_input:
- - pcm_server_names
- - 0
- cps_net_name: nested_network
- requirements:
- - link_pcm_port_0:
- capability: tosca.capabilities.network.Linkable
- node: nested_network
- relationship: tosca.relationships.network.LinksTo
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
- directives:
- - substitutable
- properties:
- server_group: BE_Affinity_group
- port_pcm_port_1_network_role_tag: oam
- connectivityChk:
- connectivityTo1C1_T1_02:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_11:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo4PNested_1:
- get_attribute:
- - abstract_pcm_server_1
- - server_pcm_id
- connectivityTo1C1_T1_01:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_12:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1B01_1:
- get_attribute:
- - abstract_b_single_1b_1
- - b_single_1b_instance_name
- connectivityTo1B02_1:
- get_attribute:
- - abstract_b_single_1b_0
- - b_single_1b_instance_name
- connectivityTo1B01_2:
- get_attribute:
- - abstract_b_single_2b_1
- - b_single_2b_instance_name
- connectivityTo1C2_2_2:
- get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
- connectivityTo1A_2:
- get_attribute:
- - abstract_a_single_2a
- - a_single_2a_instance_name
- connectivityTo1B02_2:
- get_attribute:
- - abstract_b_single_2b_0
- - b_single_2b_instance_name
- connectivityToNoUnifiedNested_2:
- get_attribute:
- - nestedNoUnified_2
- - portId
- connectivityTo1A_1:
- get_attribute:
- - abstract_a_single_1a
- - a_single_1a_instance_name
- connectivityToNoUnifiedNested_1:
- get_attribute:
- - nestedNoUnified_1
- - portId
- connectivityTo1C2_1_1:
- get_attribute:
- - abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_2_1:
- get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_1_2:
- get_attribute:
- - abstract_1c2_catalog_instance_1
- - 1c2_catalog_instance_instance_name
- port_pcm_port_0_ip_requirements:
+ compute_b_single_1b_availability_zone:
+ - get_input: availabilityzone_name
+ compute_b_single_1b_scheduler_hints:
+ - group: BE_Affinity_group
+ port_1b_t2_port_ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name: jsa_security_group
- port_pcm_port_1_mac_requirements:
- mac_count_required:
is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- port_pcm_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_1b_t1_port_value_specs:
+ - get_attribute:
+ - abstract_a_single_1a
+ - a_single_1a_1a_t1_port_tenant_id
+ port_1b_t1_port_network_role_tag: oam
+ port_1b_t1_port_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
- get_input:
- - pcm_server_names
- - 0
- cps_net_name: nested_network
+ port_1b_t2_port_network:
+ - b_single_1b_network_1
+ port_1b_t1_port_network:
+ - get_input: oam_net_name
+ compute_b_single_1b_name:
+ - get_input:
+ - b_single_1b_names
+ - 1
+ service_template_filter:
+ substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
requirements:
- - link_pcm_port_0:
+ - link_b_single_1b_1b_t2_port:
capability: tosca.capabilities.network.Linkable
- node: nested_network
+ node: b_single_1b_network_1
relationship: tosca.relationships.network.LinksTo
- abstract_1c2_catalog_instance_2:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_2
+ abstract_2c2_catalog_instance_0:
+ type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance
directives:
- substitutable
properties:
- compute_1c2_catalog_instance_availability_zone:
- - get_input: availabilityzone_name
+ compute_2c2_catalog_instance_user_data_format:
+ - get_attribute:
+ - abstract_1c2_catalog_instance_1
+ - 1c2_catalog_instance_instance_name
vm_flavor_name:
get_input: pd_flavor_name
- vm_image_name:
- get_input: pd_image_name
- port_1c2_t2_port_ip_requirements:
+ port_2c202_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- port_1c2_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1c2_t2_port_network:
- - 1c2_catalog_instance_network
- compute_1c2_catalog_instance_name:
+ vm_image_name:
+ get_input: pd_image_name
+ port_1c201_port_network_role_tag: oam
+ compute_2c2_catalog_instance_scheduler_hints:
+ - group: BE_Affinity_group
+ compute_2c2_catalog_instance_availability_zone:
+ - get_input: availabilityzone_name
+ compute_2c2_catalog_instance_name:
- get_input:
- - 1c2_catalog_instance_names
- - 3
- port_1c2_t1_port_network:
- - get_input: oam_net_name
- port_1c2_t2_port_mac_requirements:
+ - 2c2_catalog_instance_names
+ - 1
+ port_2c202_port_mac_requirements:
mac_count_required:
is_required: false
- compute_1c2_catalog_instance_user_data_format:
- - get_attribute:
- - abstract_1c2_catalog_instance_1
- - 1c2_catalog_instance_instance_name
- port_1c2_t1_port_network_role_tag: oam
- port_1c2_t1_port_ip_requirements:
+ port_2c202_port_network:
+ - 1c2_catalog_instance_network
+ port_1c201_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- compute_1c2_catalog_instance_scheduler_hints:
- - group: BE_Affinity_group
+ port_1c201_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_1c201_port_network:
+ - get_input: oam_net_name
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_2ServiceTemplate.yaml
+ substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -372,56 +211,54 @@ topology_template:
- service_template_filter
- index_value
requirements:
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_2c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
- abstract_1c2_catalog_instance_3:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_3
+ abstract_2c2_catalog_instance_1:
+ type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance
directives:
- substitutable
properties:
- compute_1c2_catalog_instance_availability_zone:
- - get_input: availabilityzone_name
+ compute_2c2_catalog_instance_user_data_format:
+ - RAW1
vm_flavor_name:
get_input: pd_flavor_name
- vm_image_name:
- get_input: pd_image_name
- port_1c2_t2_port_ip_requirements:
+ port_2c202_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- port_1c2_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1c2_t2_port_network:
- - 1c2_catalog_instance_network
- compute_1c2_catalog_instance_name:
+ vm_image_name:
+ get_input: pd_image_name
+ port_1c201_port_network_role_tag: oam
+ compute_2c2_catalog_instance_scheduler_hints:
+ - group: BE_Affinity_group
+ compute_2c2_catalog_instance_availability_zone:
+ - get_input: availabilityzone_name
+ compute_2c2_catalog_instance_name:
- get_input:
- - 1c2_catalog_instance_names
- - 2
- port_1c2_t1_port_network:
- - get_input: oam_net_name
- port_1c2_t2_port_mac_requirements:
+ - 2c2_catalog_instance_names
+ - 0
+ port_2c202_port_mac_requirements:
mac_count_required:
is_required: false
- compute_1c2_catalog_instance_user_data_format:
- - get_attribute:
- - abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_instance_name
- port_1c2_t1_port_network_role_tag: oam
- port_1c2_t1_port_ip_requirements:
+ port_2c202_port_network:
+ - 1c2_catalog_instance_network
+ port_1c201_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- compute_1c2_catalog_instance_scheduler_hints:
- - group: BE_Affinity_group
+ port_1c201_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_1c201_port_network:
+ - get_input: oam_net_name
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_3ServiceTemplate.yaml
+ substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -429,12 +266,12 @@ topology_template:
- service_template_filter
- index_value
requirements:
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_2c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_0:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -442,110 +279,43 @@ topology_template:
- get_input: availabilityzone_name
vm_flavor_name:
get_input: pd_flavor_name
- vm_image_name:
- get_input: pd_image_name
- port_1c2_t2_port_ip_requirements:
+ compute_1c2_catalog_instance_personality:
+ - - UNSUPPORTED_RESOURCE_[1a_single_1A_1, instance_name]
+ port_2c202_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- port_1c2_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1c2_t2_port_network:
- - 1c2_catalog_instance_network
- compute_1c2_catalog_instance_metadata:
- - connectivityTo4PNested_2:
- get_attribute:
- - abstract_pcm_server_0
- - server_pcm_id
- connectivityTo1C1_T1_02:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_11:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo4PNested_1:
- get_attribute:
- - abstract_pcm_server_1
- - server_pcm_id
- connectivityTo1C1_T1_01:
- get_attribute:
- - abstract_1c11_scalling_instance
- - 1c11_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1C1_T1_12:
- get_attribute:
- - abstract_1c12_scalling_instance
- - 1c12_scalling_instance_1c1_t1_port_tenant_id
- connectivityTo1B01_1:
- get_attribute:
- - abstract_b_single_1b_1
- - b_single_1b_instance_name
- connectivityTo1B02_1:
- get_attribute:
- - abstract_b_single_1b_0
- - b_single_1b_instance_name
- connectivityTo1B01_2:
- get_attribute:
- - abstract_b_single_2b_1
- - b_single_2b_instance_name
- connectivityTo1C2_2_2:
- get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
- connectivityTo1A_2:
- get_attribute:
- - abstract_a_single_2a
- - a_single_2a_instance_name
- connectivityTo1B02_2:
- get_attribute:
- - abstract_b_single_2b_0
- - b_single_2b_instance_name
- connectivityToNoUnifiedNested_2:
- get_attribute:
- - nestedNoUnified_2
- - portId
- connectivityTo1A_1:
- get_attribute:
- - abstract_a_single_1a
- - a_single_1a_instance_name
- connectivityToNoUnifiedNested_1:
- get_attribute:
- - nestedNoUnified_1
- - portId
- connectivityTo1C2_2_1:
- get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
- connectivityTo1C2_1_2:
- get_attribute:
- - abstract_1c2_catalog_instance_1
- - 1c2_catalog_instance_instance_name
+ vm_image_name:
+ get_input: pd_image_name
+ port_1c201_port_network_role_tag: oam
compute_1c2_catalog_instance_name:
- get_input:
- 1c2_catalog_instance_names
- 1
- port_1c2_t1_port_network:
- - get_input: oam_net_name
- port_1c2_t2_port_mac_requirements:
+ port_2c202_port_mac_requirements:
mac_count_required:
is_required: false
- compute_1c2_catalog_instance_user_data_format:
- - RAW1
- port_1c2_t1_port_network_role_tag: oam
- port_1c2_t1_port_ip_requirements:
+ port_2c202_port_network:
+ - 1c2_catalog_instance_network
+ port_1c201_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
+ port_1c201_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_1c2_catalog_instance_user_data_format:
+ - RAW1
+ port_1c201_port_network:
+ - get_input: oam_net_name
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -553,12 +323,12 @@ topology_template:
- service_template_filter
- index_value
requirements:
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
abstract_1c2_catalog_instance_1:
- type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
+ type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
directives:
- substitutable
properties:
@@ -566,41 +336,43 @@ topology_template:
- get_input: availabilityzone_name
vm_flavor_name:
get_input: pd_flavor_name
- vm_image_name:
- get_input: pd_image_name
- port_1c2_t2_port_ip_requirements:
+ port_2c202_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- port_1c2_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1c2_t2_port_network:
- - 1c2_catalog_instance_network
+ vm_image_name:
+ get_input: pd_image_name
+ port_1c201_port_network_role_tag: oam
compute_1c2_catalog_instance_name:
- get_input:
- 1c2_catalog_instance_names
- 2
- port_1c2_t1_port_network:
- - get_input: oam_net_name
- port_1c2_t2_port_mac_requirements:
+ port_2c202_port_mac_requirements:
mac_count_required:
is_required: false
- compute_1c2_catalog_instance_user_data_format:
- - RAW1
- port_1c2_t1_port_network_role_tag: oam
- port_1c2_t1_port_ip_requirements:
+ port_2c202_port_network:
+ - 1c2_catalog_instance_network
+ port_1c201_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
+ port_1c201_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_1c2_catalog_instance_user_data_format:
+ - get_attribute:
+ - abstract_1c2_catalog_instance_0
+ - 1c2_catalog_instance_instance_name
+ port_1c201_port_network:
+ - get_input: oam_net_name
compute_1c2_catalog_instance_scheduler_hints:
- group: BE_Affinity_group
service_template_filter:
- substitute_service_template: Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+ substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
count: 1
index_value:
get_property:
@@ -608,7 +380,7 @@ topology_template:
- service_template_filter
- index_value
requirements:
- - link_1c2_catalog_instance_1c2_t2_port:
+ - link_1c2_catalog_instance_2c202_port:
capability: tosca.capabilities.network.Linkable
node: 1c2_catalog_instance_network
relationship: tosca.relationships.network.LinksTo
@@ -617,17 +389,17 @@ topology_template:
properties:
dhcp_agent_ids:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_1c2_t1_port_tenant_id
+ - abstract_1c2_catalog_instance_1
+ - 1c2_catalog_instance_1c201_port_tenant_id
- get_attribute:
- abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_1c2_t1_port_tenant_id
+ - 1c2_catalog_instance_1c201_port_tenant_id
- get_attribute:
- abstract_1c2_catalog_instance_1
- 1c2_catalog_instance_instance_name
- get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
tenant_id:
get_attribute:
- abstract_1c11_scalling_instance
@@ -660,20 +432,20 @@ topology_template:
- nestedNoUnified_1
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
value_specs:
get_attribute:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
abstract_a_single_1a:
type: org.openecomp.resource.abstract.nodes.a_single_1a
@@ -683,7 +455,7 @@ topology_template:
compute_a_single_1a_metadata:
- connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1A:
get_attribute:
@@ -691,7 +463,7 @@ topology_template:
- a_single_2a_instance_name
connectivityTo1B02:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
@@ -710,7 +482,7 @@ topology_template:
- tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T2_02:
get_attribute:
@@ -722,8 +494,8 @@ topology_template:
- tenant_id
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityToNoUnifiedNested_2:
get_attribute:
- nestedNoUnified_2
@@ -738,8 +510,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -807,7 +579,7 @@ topology_template:
connectivityChk:
connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1C1_T1_02:
get_attribute:
@@ -819,7 +591,7 @@ topology_template:
- 1c12_scalling_instance_1c1_t1_port_tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T1_01:
get_attribute:
@@ -835,7 +607,7 @@ topology_template:
- b_single_1b_instance_name
connectivityTo1B02_1:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1B01_2:
get_attribute:
@@ -843,15 +615,15 @@ topology_template:
- b_single_2b_instance_name
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityTo1A_2:
get_attribute:
- abstract_a_single_2a
- a_single_2a_instance_name
connectivityTo1B02_2:
get_attribute:
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- b_single_2b_instance_name
connectivityToNoUnifiedNested_2:
get_attribute:
@@ -867,8 +639,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -890,65 +662,6 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: nested_network
relationship: tosca.relationships.network.LinksTo
- abstract_b_single_2b_0:
- type: org.openecomp.resource.abstract.nodes.b_single_2b_0
- directives:
- - substitutable
- properties:
- vm_flavor_name:
- get_input: pd_flavor_name
- port_1b_t1_port_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: false
- floating_ip_count_required:
- is_required: false
- vm_image_name:
- get_input: pd_image_name
- compute_b_single_2b_scheduler_hints:
- - group: BE_Affinity_group
- compute_b_single_2b_availability_zone:
- - get_input: availabilityzone_name
- port_1b_t2_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1b_t2_port_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: false
- floating_ip_count_required:
- is_required: false
- compute_b_single_2b_name:
- - get_input:
- - b_single_2b_names
- - 1
- port_1b_t1_port_value_specs:
- - get_attribute:
- - abstract_a_single_1a
- - a_single_1a_1a_t1_port_tenant_id
- compute_b_single_2b_user_data_format:
- - RAW
- port_1b_t1_port_network_role_tag: oam
- port_1b_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1b_t2_port_network:
- - b_single_1b_network_2
- port_1b_t1_port_network:
- - get_input: oam_net_name
- service_template_filter:
- substitute_service_template: Nested_b_single_2b_0ServiceTemplate.yaml
- count: 1
- index_value:
- get_property:
- - SELF
- - service_template_filter
- - index_value
- requirements:
- - link_b_single_2b_1b_t2_port:
- capability: tosca.capabilities.network.Linkable
- node: b_single_1b_network_2
- relationship: tosca.relationships.network.LinksTo
nestedNoUnified_2:
type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
directives:
@@ -962,7 +675,7 @@ topology_template:
connectivityChk:
connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1C1_T1_02:
get_attribute:
@@ -974,7 +687,7 @@ topology_template:
- 1c12_scalling_instance_1c1_t1_port_tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T1_01:
get_attribute:
@@ -990,7 +703,7 @@ topology_template:
- b_single_1b_instance_name
connectivityTo1B02_1:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1B01_2:
get_attribute:
@@ -998,15 +711,15 @@ topology_template:
- b_single_2b_instance_name
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityTo1A_2:
get_attribute:
- abstract_a_single_2a
- a_single_2a_instance_name
connectivityTo1B02_2:
get_attribute:
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- b_single_2b_instance_name
connectivityTo1A_1:
get_attribute:
@@ -1022,8 +735,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -1112,7 +825,7 @@ topology_template:
compute_b_single_2b_metadata:
- connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1C1_T1_02:
get_attribute:
@@ -1124,7 +837,7 @@ topology_template:
- 1c12_scalling_instance_1c1_t1_port_tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T1_01:
get_attribute:
@@ -1140,12 +853,12 @@ topology_template:
- b_single_1b_instance_name
connectivityTo1B02_1:
get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityTo1A_2:
get_attribute:
- abstract_a_single_2a
@@ -1168,8 +881,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -1360,19 +1073,19 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_1
+ node: 4p_nested_1
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_1
+ node: 4p_nested_1
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: 4p_nested_2
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_0
+ node: 4p_nested_2
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_0
@@ -1449,7 +1162,7 @@ topology_template:
compute_a_single_2a_metadata:
- connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1A:
get_attribute:
@@ -1457,7 +1170,7 @@ topology_template:
- a_single_1a_instance_name
connectivityTo1B02:
get_attribute:
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- b_single_2b_instance_name
- get_attribute:
- abstract_b_single_2b_1
@@ -1476,7 +1189,7 @@ topology_template:
- tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T2_02:
get_attribute:
@@ -1488,8 +1201,8 @@ topology_template:
- tenant_id
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityToNoUnifiedNested_2:
get_attribute:
- nestedNoUnified_2
@@ -1504,8 +1217,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -1523,65 +1236,6 @@ topology_template:
capability: tosca.capabilities.network.Linkable
node: a_single_1a_network
relationship: tosca.relationships.network.LinksTo
- abstract_b_single_1b_0:
- type: org.openecomp.resource.abstract.nodes.b_single_1b_0
- directives:
- - substitutable
- properties:
- vm_flavor_name:
- get_input: pd_flavor_name
- port_1b_t1_port_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: false
- floating_ip_count_required:
- is_required: false
- vm_image_name:
- get_input: pd_image_name
- compute_b_single_1b_user_data_format:
- - RAW
- port_1b_t2_port_mac_requirements:
- mac_count_required:
- is_required: false
- compute_b_single_1b_availability_zone:
- - get_input: availabilityzone_name
- compute_b_single_1b_scheduler_hints:
- - group: BE_Affinity_group
- port_1b_t2_port_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: false
- floating_ip_count_required:
- is_required: false
- port_1b_t1_port_value_specs:
- - get_attribute:
- - abstract_a_single_1a
- - a_single_1a_1a_t1_port_tenant_id
- port_1b_t1_port_network_role_tag: oam
- port_1b_t1_port_mac_requirements:
- mac_count_required:
- is_required: false
- port_1b_t2_port_network:
- - b_single_1b_network_1
- port_1b_t1_port_network:
- - get_input: oam_net_name
- compute_b_single_1b_name:
- - get_input:
- - b_single_1b_names
- - 1
- service_template_filter:
- substitute_service_template: Nested_b_single_1b_0ServiceTemplate.yaml
- count: 1
- index_value:
- get_property:
- - SELF
- - service_template_filter
- - index_value
- requirements:
- - link_b_single_1b_1b_t2_port:
- capability: tosca.capabilities.network.Linkable
- node: b_single_1b_network_1
- relationship: tosca.relationships.network.LinksTo
1c1_t2_port_02:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -1629,6 +1283,65 @@ topology_template:
properties:
network_name:
get_input: net_name
+ abstract_b_single_2b:
+ type: org.openecomp.resource.abstract.nodes.b_single_2b
+ directives:
+ - substitutable
+ properties:
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_1b_t1_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ compute_b_single_2b_scheduler_hints:
+ - group: BE_Affinity_group
+ compute_b_single_2b_availability_zone:
+ - get_input: availabilityzone_name
+ port_1b_t2_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_1b_t2_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ compute_b_single_2b_name:
+ - get_input:
+ - b_single_2b_names
+ - 1
+ port_1b_t1_port_value_specs:
+ - get_attribute:
+ - abstract_a_single_1a
+ - a_single_1a_1a_t1_port_tenant_id
+ compute_b_single_2b_user_data_format:
+ - RAW
+ port_1b_t1_port_network_role_tag: oam
+ port_1b_t1_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_1b_t2_port_network:
+ - b_single_1b_network_2
+ port_1b_t1_port_network:
+ - get_input: oam_net_name
+ service_template_filter:
+ substitute_service_template: Nested_b_single_2bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_b_single_2b_1b_t2_port:
+ capability: tosca.capabilities.network.Linkable
+ node: b_single_1b_network_2
+ relationship: tosca.relationships.network.LinksTo
dependsOn_network:
type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
properties:
@@ -1645,18 +1358,18 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_1
+ node: 4p_nested_1
relationship: tosca.relationships.DependsOn
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: 4p_nested_2
relationship: tosca.relationships.DependsOn
- dependency:
- capability: feature_1c2_catalog_instance_1c2_t1_port
- node: abstract_1c2_catalog_instance_3
+ capability: feature_1c2_catalog_instance_1c201_port
+ node: abstract_1c2_catalog_instance_1
relationship: tosca.relationships.DependsOn
- dependency:
- capability: feature_1c2_catalog_instance_1c2_t1_port
+ capability: feature_1c2_catalog_instance_1c201_port
node: abstract_1c2_catalog_instance_0
relationship: tosca.relationships.DependsOn
- dependency:
@@ -1664,16 +1377,16 @@ topology_template:
node: abstract_1c2_catalog_instance_0
relationship: tosca.relationships.DependsOn
- dependency:
- capability: feature_1c2_catalog_instance
- node: abstract_1c2_catalog_instance_3
+ capability: feature_2c2_catalog_instance
+ node: abstract_2c2_catalog_instance_1
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_1c2_catalog_instance
node: abstract_1c2_catalog_instance_1
relationship: tosca.relationships.DependsOn
- dependency:
- capability: feature_1c2_catalog_instance
- node: abstract_1c2_catalog_instance_2
+ capability: feature_2c2_catalog_instance
+ node: abstract_2c2_catalog_instance_0
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_1c11_scalling_instance
@@ -1697,7 +1410,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
@@ -1705,7 +1418,7 @@ topology_template:
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_b_single_1b_1b_t1_port
- node: abstract_b_single_1b_0
+ node: abstract_b_single_1b
relationship: tosca.relationships.DependsOn
- dependency:
capability: feature_a_single_1a
@@ -1719,6 +1432,118 @@ topology_template:
capability: feature_a_single_1a_1a_t1_port
node: abstract_a_single_1a
relationship: tosca.relationships.DependsOn
+ 4p_nested_2:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ server_group: BE_Affinity_group
+ port_pcm_port_1_network_role_tag: oam
+ connectivityChk:
+ connectivityTo1C1_T1_02:
+ get_attribute:
+ - 1c1_t1_port_02
+ - tenant_id
+ connectivityTo1C1_T1_11:
+ get_attribute:
+ - 1c1_t1_port_11
+ - tenant_id
+ connectivityTo4PNested_1:
+ get_attribute:
+ - 4p_nested_1
+ - server_pcm_id
+ connectivityTo1C1_T1_01:
+ get_attribute:
+ - 1c1_t1_port_01
+ - tenant_id
+ connectivityTo1C1_T1_12:
+ get_attribute:
+ - 1c1_t1_port_12
+ - tenant_id
+ connectivityTo1B01_1:
+ get_attribute:
+ - 1b01_single_1B_1
+ - instance_name
+ connectivityTo1B02_1:
+ get_attribute:
+ - 1b02_single_1B_1
+ - instance_name
+ connectivityTo1B01_2:
+ get_attribute:
+ - 1b01_single_1B_2
+ - instance_name
+ connectivityTo1C2_2_2:
+ get_attribute:
+ - 2c202_catalog_instance_1C22
+ - instance_name
+ connectivityTo1A_2:
+ get_attribute:
+ - 2a_single_1A_2
+ - instance_name
+ connectivityTo1B02_2:
+ get_attribute:
+ - 1b02_single_1B_2
+ - instance_name
+ connectivityToNoUnifiedNested_2:
+ get_attribute:
+ - nestedNoUnified_2
+ - portId
+ connectivityTo1A_1:
+ get_attribute:
+ - 1a_single_1A_1
+ - instance_name
+ connectivityToNoUnifiedNested_1:
+ get_attribute:
+ - nestedNoUnified_1
+ - portId
+ connectivityTo1C2_1_1:
+ get_attribute:
+ - 1c201_catalog_instance_1C21
+ - instance_name
+ connectivityTo1C2_2_1:
+ get_attribute:
+ - 2c202_catalog_instance_1C21
+ - instance_name
+ connectivityTo1C2_1_2:
+ get_attribute:
+ - 1c201_catalog_instance_1C22
+ - instance_name
+ port_pcm_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name: jsa_security_group
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ port_pcm_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:
+ mac_count_required:
+ is_required: false
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ cps_net_name: nested_network
+ requirements:
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: nested_network
+ relationship: tosca.relationships.network.LinksTo
1c1_t2_port_12:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -1740,6 +1565,118 @@ topology_template:
network_role_tag: ppds
network:
get_input: ppds_net_name
+ 4p_nested_1:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ server_group: BE_Affinity_group
+ port_pcm_port_1_network_role_tag: oam
+ connectivityChk:
+ connectivityTo4PNested_2:
+ get_attribute:
+ - 4p_nested_2
+ - server_pcm_id
+ connectivityTo1C1_T1_02:
+ get_attribute:
+ - 1c1_t1_port_02
+ - tenant_id
+ connectivityTo1C1_T1_11:
+ get_attribute:
+ - 1c1_t1_port_11
+ - tenant_id
+ connectivityTo1C1_T1_01:
+ get_attribute:
+ - 1c1_t1_port_01
+ - tenant_id
+ connectivityTo1C1_T1_12:
+ get_attribute:
+ - 1c1_t1_port_12
+ - tenant_id
+ connectivityTo1B01_1:
+ get_attribute:
+ - 1b01_single_1B_1
+ - instance_name
+ connectivityTo1B02_1:
+ get_attribute:
+ - 1b02_single_1B_1
+ - instance_name
+ connectivityTo1B01_2:
+ get_attribute:
+ - 1b01_single_1B_2
+ - instance_name
+ connectivityTo1C2_2_2:
+ get_attribute:
+ - 2c202_catalog_instance_1C22
+ - instance_name
+ connectivityTo1A_2:
+ get_attribute:
+ - 2a_single_1A_2
+ - instance_name
+ connectivityTo1B02_2:
+ get_attribute:
+ - 1b02_single_1B_2
+ - instance_name
+ connectivityToNoUnifiedNested_2:
+ get_attribute:
+ - nestedNoUnified_2
+ - portId
+ connectivityTo1A_1:
+ get_attribute:
+ - 1a_single_1A_1
+ - instance_name
+ connectivityToNoUnifiedNested_1:
+ get_attribute:
+ - nestedNoUnified_1
+ - portId
+ connectivityTo1C2_1_1:
+ get_attribute:
+ - 1c201_catalog_instance_1C21
+ - instance_name
+ connectivityTo1C2_2_1:
+ get_attribute:
+ - 2c202_catalog_instance_1C21
+ - instance_name
+ connectivityTo1C2_1_2:
+ get_attribute:
+ - 1c201_catalog_instance_1C22
+ - instance_name
+ port_pcm_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name: jsa_security_group
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ port_pcm_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:
+ mac_count_required:
+ is_required: false
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ cps_net_name: nested_network
+ requirements:
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: nested_network
+ relationship: tosca.relationships.network.LinksTo
1c1_t2_port_11:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -1799,7 +1736,7 @@ topology_template:
compute_b_single_1b_metadata:
- connectivityTo4PNested_2:
get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
connectivityTo1C1_T1_02:
get_attribute:
@@ -1811,7 +1748,7 @@ topology_template:
- 1c12_scalling_instance_1c1_t1_port_tenant_id
connectivityTo4PNested_1:
get_attribute:
- - abstract_pcm_server_1
+ - 4p_nested_1
- server_pcm_id
connectivityTo1C1_T1_01:
get_attribute:
@@ -1827,15 +1764,15 @@ topology_template:
- b_single_2b_instance_name
connectivityTo1C2_2_2:
get_attribute:
- - abstract_1c2_catalog_instance_2
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_0
+ - 2c2_catalog_instance_instance_name
connectivityTo1A_2:
get_attribute:
- abstract_a_single_2a
- a_single_2a_instance_name
connectivityTo1B02_2:
get_attribute:
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- b_single_2b_instance_name
connectivityToNoUnifiedNested_2:
get_attribute:
@@ -1855,8 +1792,8 @@ topology_template:
- 1c2_catalog_instance_instance_name
connectivityTo1C2_2_1:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
connectivityTo1C2_1_2:
get_attribute:
- abstract_1c2_catalog_instance_1
@@ -1902,53 +1839,53 @@ topology_template:
- 1c1_t2_port_01
- 1c1_scalling_instance_network
- dependsOn_network
+ - 4p_nested_2
- 1c1_t2_port_12
+ - 4p_nested_1
- 1c1_t2_port_11
- nested_network
- abstract_a_single_2a
- abstract_a_single_1a
- abstract_1c11_scalling_instance
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- abstract_b_single_2b_1
- abstract_1c12_scalling_instance
+ - abstract_2c2_catalog_instance_0
+ - abstract_2c2_catalog_instance_1
- abstract_1c2_catalog_instance_0
- abstract_1c2_catalog_instance_1
- - abstract_1c2_catalog_instance_2
- - abstract_1c2_catalog_instance_3
- - abstract_pcm_server_0
- - abstract_pcm_server_1
BE_Affinity_group:
type: tosca.groups.Root
members:
- abstract_a_single_2a
- abstract_a_single_1a
- abstract_1c11_scalling_instance
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- abstract_b_single_1b_1
- - abstract_b_single_2b_0
+ - abstract_b_single_2b
- abstract_b_single_2b_1
- abstract_1c12_scalling_instance
+ - abstract_2c2_catalog_instance_0
+ - abstract_2c2_catalog_instance_1
- abstract_1c2_catalog_instance_0
- abstract_1c2_catalog_instance_1
- - abstract_1c2_catalog_instance_2
- - abstract_1c2_catalog_instance_3
outputs:
out2:
value:
get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_1c2_t1_port_tenant_id
+ - abstract_1c2_catalog_instance_1
+ - 1c2_catalog_instance_1c201_port_tenant_id
- get_attribute:
- abstract_1c2_catalog_instance_0
- - 1c2_catalog_instance_1c2_t1_port_tenant_id
+ - 1c2_catalog_instance_1c201_port_tenant_id
- get_attribute:
- abstract_1c2_catalog_instance_1
- 1c2_catalog_instance_instance_name
- get_attribute:
- - abstract_1c2_catalog_instance_3
- - 1c2_catalog_instance_instance_name
+ - abstract_2c2_catalog_instance_1
+ - 2c2_catalog_instance_instance_name
out3:
value:
get_attribute:
@@ -1975,13 +1912,13 @@ topology_template:
- abstract_b_single_1b_1
- b_single_1b_instance_name
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_instance_name
- get_attribute:
- abstract_b_single_1b_1
- b_single_1b_1b_t1_port_tenant_id
- get_attribute:
- - abstract_b_single_1b_0
+ - abstract_b_single_1b
- b_single_1b_1b_t1_port_tenant_id
out5:
value:
@@ -1994,7 +1931,7 @@ topology_template:
- nestedNoUnified_1
- portId
- get_attribute:
- - abstract_pcm_server_0
+ - 4p_nested_2
- server_pcm_id
out6:
value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c11_scalling_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c11_scalling_instanceServiceTemplate.yaml
index 4b6aed7260..ea0b9e4324 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c11_scalling_instanceServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c11_scalling_instanceServiceTemplate.yaml
@@ -147,21 +147,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c11_scalling_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c11_scalling_instance
- instance_name
- entry_schema:
- type: string
1c11_scalling_instance_1c1_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c11_scalling_instance_1c1_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.1c11_scalling_instance
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c12_scalling_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c12_scalling_instanceServiceTemplate.yaml
index 101a1fdbd6..344939e8f9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c12_scalling_instanceServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c12_scalling_instanceServiceTemplate.yaml
@@ -147,21 +147,17 @@ topology_template:
- index_value
outputs:
1c12_scalling_instance_1c1_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- 1c12_scalling_instance_1c1_t1_port
- tenant_id
- entry_schema:
- type: string
1c12_scalling_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c12_scalling_instance
- instance_name
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.1c12_scalling_instance
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
index f09ccb2ad5..06355d2ab6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/Nested_1c2_catalog_instance_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instanceServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_1c2_catalog_instance_0
+ template_name: Nested_1c2_catalog_instance
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -11,59 +11,58 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
compute_1c2_catalog_instance_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
+ port_1c201_port_vlan_requirements:
+ type: list
required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
vm_flavor_name:
type: string
required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
+ compute_1c2_catalog_instance_personality:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
+ type: json
+ port_2c202_port_subnetpoolid:
type: string
required: true
- port_1c2_t2_port_exCP_naming:
+ port_2c202_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_exCP_naming:
type: org.openecomp.datatypes.Naming
required: true
- port_1c2_t1_port_order:
- type: integer
+ port_2c202_port_network_role_tag:
+ type: string
required: true
- port_1c2_t1_port_subnetpoolid:
+ port_2c202_port_network_role:
type: string
required: true
- port_1c2_t2_port_ip_requirements:
- type: list
+ vm_image_name:
+ type: string
required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_2c202_port_order:
+ type: integer
required: true
- port_1c2_t1_port_network_role:
+ port_1c201_port_network_role_tag:
type: string
required: true
- port_1c2_t2_port_network:
+ port_1c201_port_order:
+ type: integer
+ required: true
+ port_2c202_port_vlan_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -71,45 +70,46 @@ topology_template:
default: 0
constraints:
- greater_or_equal: 0
- compute_1c2_catalog_instance_metadata:
- type: list
- required: true
- entry_schema:
- type: json
compute_1c2_catalog_instance_name:
type: list
required: true
entry_schema:
type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
- port_1c2_t1_port_network:
+ port_2c202_port_network:
type: list
required: true
entry_schema:
type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
+ port_1c201_port_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_2c202_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_1c201_port_subnetpoolid:
+ type: string
+ required: true
+ port_1c201_port_network_role:
+ type: string
+ required: true
compute_1c2_catalog_instance_user_data_format:
type: list
required: true
entry_schema:
type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
+ port_1c201_port_network:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: string
compute_1c2_catalog_instance_scheduler_hints:
type: list
required: true
@@ -119,18 +119,22 @@ topology_template:
1c2_catalog_instance:
type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
properties:
+ personality:
+ get_input:
+ - compute_1c2_catalog_instance_personality
+ - index_value
availability_zone:
get_input:
- compute_1c2_catalog_instance_availability_zone
- index_value
flavor:
get_input: vm_flavor_name
- metadata:
- get_input:
- - compute_1c2_catalog_instance_metadata
- - index_value
image:
get_input: vm_image_name
+ diskConfig:
+ get_attribute:
+ - 1c2_catalog_instance_1c201_port
+ - tenant_id
name:
get_input:
- compute_1c2_catalog_instance_name
@@ -143,56 +147,56 @@ topology_template:
get_input:
- compute_1c2_catalog_instance_user_data_format
- index_value
- 1c2_catalog_instance_1c2_t2_port:
+ 1c2_catalog_instance_1c201_port:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
+ get_input: port_1c201_port_exCP_naming
vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
+ get_input: port_1c201_port_vlan_requirements
ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
+ get_input: port_1c201_port_ip_requirements
network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
+ get_input: port_1c201_port_network_role_tag
mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
+ get_input: port_1c201_port_mac_requirements
order:
- get_input: port_1c2_t2_port_order
+ get_input: port_1c201_port_order
network_role:
- get_input: port_1c2_t2_port_network_role
+ get_input: port_1c201_port_network_role
subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
+ get_input: port_1c201_port_subnetpoolid
network:
get_input:
- - port_1c2_t2_port_network
+ - port_1c201_port_network
- index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
node: 1c2_catalog_instance
relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
+ 1c2_catalog_instance_2c202_port:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
+ get_input: port_2c202_port_exCP_naming
vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
+ get_input: port_2c202_port_vlan_requirements
ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
+ get_input: port_2c202_port_ip_requirements
network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
+ get_input: port_2c202_port_network_role_tag
mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
+ get_input: port_2c202_port_mac_requirements
order:
- get_input: port_1c2_t1_port_order
+ get_input: port_2c202_port_order
network_role:
- get_input: port_1c2_t1_port_network_role
+ get_input: port_2c202_port_network_role
subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
+ get_input: port_2c202_port_subnetpoolid
network:
get_input:
- - port_1c2_t1_port_network
+ - port_2c202_port_network
- index_value
requirements:
- binding:
@@ -201,78 +205,62 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
1c2_catalog_instance_instance_name:
- type: list
+ type: string
value:
get_attribute:
- 1c2_catalog_instance
- instance_name
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
+ 1c2_catalog_instance_1c201_port_tenant_id:
+ type: string
value:
get_attribute:
- - 1c2_catalog_instance_1c2_t1_port
+ - 1c2_catalog_instance_1c201_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_0
+ node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
capabilities:
disk.device.capacity_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
+ attachment_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - attachment
+ network.incoming.bytes.rate_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.incoming.packets
+ network.incoming.packets.rate_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
- network.incoming.packets.rate
disk.read.bytes.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.read.bytes.rate
+ network.incoming.bytes_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.incoming.bytes
memory.usage_1c2_catalog_instance:
- 1c2_catalog_instance
- memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
+ binding_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - binding
disk.write.bytes.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
cpu_util_1c2_catalog_instance:
- 1c2_catalog_instance
- cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
cpu_1c2_catalog_instance:
- 1c2_catalog_instance
- cpu
disk.read.requests_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
+ network.outpoing.packets_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.outpoing.packets
disk.ephemeral.size_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.ephemeral.size
@@ -285,15 +273,18 @@ topology_template:
disk.device.write.requests.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
os_1c2_catalog_instance:
- 1c2_catalog_instance
- os
disk.device.iops_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.iops
+ feature_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - feature
+ network.outgoing.packets.rate_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.outgoing.packets.rate
endpoint_1c2_catalog_instance:
- 1c2_catalog_instance
- endpoint
@@ -303,33 +294,33 @@ topology_template:
disk.latency_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
+ network.outgoing.bytes.rate_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
- network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
disk.iops_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
+ binding_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - binding
vcpus_1c2_catalog_instance:
- 1c2_catalog_instance
- vcpus
disk.device.latency_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
+ network.outgoing.bytes_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.outgoing.bytes
+ attachment_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
- attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
+ network.incoming.bytes.rate_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.incoming.packets
disk.read.bytes_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.read.bytes
@@ -345,15 +336,15 @@ topology_template:
disk.device.read.bytes.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.read.bytes.rate
+ network.incoming.bytes_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.incoming.bytes
disk.device.allocation_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.allocation
disk.device.read.bytes_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
disk.device.read.requests_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.read.requests
@@ -372,24 +363,33 @@ topology_template:
disk.root.size_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.root.size
+ feature_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - feature
+ network.outpoing.packets_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.outpoing.packets
+ network.incoming.packets.rate_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.incoming.packets.rate
disk.device.usage_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
+ network.outgoing.packets.rate_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.outgoing.packets.rate
disk.usage_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.usage
feature_1c2_catalog_instance:
- 1c2_catalog_instance
- feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
memory_1c2_catalog_instance:
- 1c2_catalog_instance
- memory
+ network.outgoing.bytes.rate_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - network.outgoing.bytes.rate
disk.write.requests.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.write.requests.rate
@@ -402,28 +402,28 @@ topology_template:
cpu.delta_1c2_catalog_instance:
- 1c2_catalog_instance
- cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
+ network.outgoing.bytes_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - network.outgoing.bytes
disk.device.read.requests.rate_1c2_catalog_instance:
- 1c2_catalog_instance
- disk.device.read.requests.rate
requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
+ dependency_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
+ - dependency
dependency_1c2_catalog_instance:
- 1c2_catalog_instance
- dependency
local_storage_1c2_catalog_instance:
- 1c2_catalog_instance
- local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
+ link_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - link
+ link_1c2_catalog_instance_2c202_port:
+ - 1c2_catalog_instance_2c202_port
- link
+ dependency_1c2_catalog_instance_1c201_port:
+ - 1c2_catalog_instance_1c201_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
deleted file mode 100644
index ac0d816705..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_1ServiceTemplate.yaml
+++ /dev/null
@@ -1,412 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_1
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_1
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_2ServiceTemplate.yaml
deleted file mode 100644
index 576a555e41..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_2ServiceTemplate.yaml
+++ /dev/null
@@ -1,412 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_2
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_2
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_3ServiceTemplate.yaml
deleted file mode 100644
index 32a9dee48c..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_1c2_catalog_instance_3ServiceTemplate.yaml
+++ /dev/null
@@ -1,420 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_1c2_catalog_instance_3
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- port_1c2_t2_port_order:
- type: integer
- required: true
- compute_1c2_catalog_instance_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_network_role:
- type: string
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_1c2_t2_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- vm_image_name:
- type: string
- required: true
- port_1c2_t2_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_order:
- type: integer
- required: true
- port_1c2_t1_port_subnetpoolid:
- type: string
- required: true
- port_1c2_t2_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_1c2_t1_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t1_port_network_role:
- type: string
- required: true
- port_1c2_t2_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_1c2_catalog_instance_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- port_1c2_t1_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t2_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_1c2_t2_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_1c2_catalog_instance_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- port_1c2_t1_port_network_role_tag:
- type: string
- required: true
- port_1c2_t1_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- compute_1c2_catalog_instance_scheduler_hints:
- type: list
- required: true
- entry_schema:
- type: json
- node_templates:
- 1c2_catalog_instance:
- type: org.openecomp.resource.vfc.nodes.heat.1c2_catalog_instance
- properties:
- availability_zone:
- get_input:
- - compute_1c2_catalog_instance_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_1c2_catalog_instance_name
- - index_value
- scheduler_hints:
- get_input:
- - compute_1c2_catalog_instance_scheduler_hints
- - index_value
- user_data_format:
- get_input:
- - compute_1c2_catalog_instance_user_data_format
- - index_value
- 1c2_catalog_instance_1c2_t2_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t2_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t2_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t2_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t2_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t2_port_mac_requirements
- order:
- get_input: port_1c2_t2_port_order
- network_role:
- get_input: port_1c2_t2_port_network_role
- subnetpoolid:
- get_input: port_1c2_t2_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t2_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- 1c2_catalog_instance_1c2_t1_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_1c2_t1_port_exCP_naming
- vlan_requirements:
- get_input: port_1c2_t1_port_vlan_requirements
- ip_requirements:
- get_input: port_1c2_t1_port_ip_requirements
- network_role_tag:
- get_input: port_1c2_t1_port_network_role_tag
- mac_requirements:
- get_input: port_1c2_t1_port_mac_requirements
- order:
- get_input: port_1c2_t1_port_order
- network_role:
- get_input: port_1c2_t1_port_network_role
- subnetpoolid:
- get_input: port_1c2_t1_port_subnetpoolid
- network:
- get_input:
- - port_1c2_t1_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: 1c2_catalog_instance
- relationship: tosca.relationships.network.BindsTo
- outputs:
- 1c2_catalog_instance_instance_name:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance
- - instance_name
- entry_schema:
- type: string
- 1c2_catalog_instance_1c2_t1_port_tenant_id:
- type: list
- value:
- get_attribute:
- - 1c2_catalog_instance_1c2_t1_port
- - tenant_id
- entry_schema:
- type: string
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance_3
- capabilities:
- disk.device.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.capacity
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets.rate
- disk.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes.rate
- memory.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.usage
- network.outpoing.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outpoing.packets
- disk.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes.rate
- binding_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets
- cpu_util_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu_util
- network.outpoing.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outpoing.packets
- feature_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - feature
- attachment_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - attachment
- network.incoming.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.bytes
- cpu_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu
- disk.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.requests
- binding_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - binding
- network.incoming.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes.rate
- disk.ephemeral.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.ephemeral.size
- disk.device.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes
- memory.resident_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory.resident
- disk.device.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests.rate
- network.incoming.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.bytes
- os_1c2_catalog_instance:
- - 1c2_catalog_instance
- - os
- disk.device.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.iops
- endpoint_1c2_catalog_instance:
- - 1c2_catalog_instance
- - endpoint
- disk.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.allocation
- disk.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.latency
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes.rate
- network.outgoing.bytes_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.bytes
- disk.iops_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.iops
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.packets.rate
- network.incoming.packets_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.incoming.packets
- vcpus_1c2_catalog_instance:
- - 1c2_catalog_instance
- - vcpus
- disk.device.latency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.latency
- attachment_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - attachment
- network.outgoing.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.outgoing.packets.rate
- disk.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.read.bytes
- instance_1c2_catalog_instance:
- - 1c2_catalog_instance
- - instance
- disk.capacity_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.capacity
- disk.write.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.bytes
- disk.device.read.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes.rate
- disk.device.allocation_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.allocation
- disk.device.read.bytes_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.bytes
- network.outgoing.bytes.rate_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes.rate
- disk.device.read.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests
- disk.device.write.bytes.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.bytes.rate
- scalable_1c2_catalog_instance:
- - 1c2_catalog_instance
- - scalable
- disk.device.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.write.requests
- host_1c2_catalog_instance:
- - 1c2_catalog_instance
- - host
- disk.root.size_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.root.size
- disk.device.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.usage
- network.outgoing.bytes_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - network.outgoing.bytes
- disk.usage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.usage
- feature_1c2_catalog_instance:
- - 1c2_catalog_instance
- - feature
- network.incoming.packets.rate_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - network.incoming.packets.rate
- memory_1c2_catalog_instance:
- - 1c2_catalog_instance
- - memory
- disk.write.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests.rate
- disk.write.requests_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.write.requests
- binding_1c2_catalog_instance:
- - 1c2_catalog_instance
- - binding
- cpu.delta_1c2_catalog_instance:
- - 1c2_catalog_instance
- - cpu.delta
- feature_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - feature
- disk.device.read.requests.rate_1c2_catalog_instance:
- - 1c2_catalog_instance
- - disk.device.read.requests.rate
- requirements:
- link_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - link
- dependency_1c2_catalog_instance:
- - 1c2_catalog_instance
- - dependency
- local_storage_1c2_catalog_instance:
- - 1c2_catalog_instance
- - local_storage
- dependency_1c2_catalog_instance_1c2_t1_port:
- - 1c2_catalog_instance_1c2_t1_port
- - dependency
- dependency_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - dependency
- link_1c2_catalog_instance_1c2_t2_port:
- - 1c2_catalog_instance_1c2_t2_port
- - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_2c2_catalog_instanceServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_2c2_catalog_instanceServiceTemplate.yaml
new file mode 100644
index 0000000000..b551a750c3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_2c2_catalog_instanceServiceTemplate.yaml
@@ -0,0 +1,410 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_2c2_catalog_instance
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.2c2_catalog_instance:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ compute_2c2_catalog_instance_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_1c201_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_2c202_port_subnetpoolid:
+ type: string
+ required: true
+ port_2c202_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_2c202_port_network_role_tag:
+ type: string
+ required: true
+ port_2c202_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_2c202_port_order:
+ type: integer
+ required: true
+ port_1c201_port_network_role_tag:
+ type: string
+ required: true
+ compute_2c2_catalog_instance_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_2c2_catalog_instance_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_1c201_port_order:
+ type: integer
+ required: true
+ port_2c202_port_vlan_requirements:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ compute_2c2_catalog_instance_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_2c202_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_2c202_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_1c201_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_1c201_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_2c202_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_1c201_port_subnetpoolid:
+ type: string
+ required: true
+ port_1c201_port_network_role:
+ type: string
+ required: true
+ port_1c201_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ 2c2_catalog_instance:
+ type: org.openecomp.resource.vfc.nodes.heat.2c2_catalog_instance
+ properties:
+ availability_zone:
+ get_input:
+ - compute_2c2_catalog_instance_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_2c2_catalog_instance_name
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_2c2_catalog_instance_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_2c2_catalog_instance_user_data_format
+ - index_value
+ 2c2_catalog_instance_2c202_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_2c202_port_exCP_naming
+ vlan_requirements:
+ get_input: port_2c202_port_vlan_requirements
+ ip_requirements:
+ get_input: port_2c202_port_ip_requirements
+ network_role_tag:
+ get_input: port_2c202_port_network_role_tag
+ mac_requirements:
+ get_input: port_2c202_port_mac_requirements
+ order:
+ get_input: port_2c202_port_order
+ network_role:
+ get_input: port_2c202_port_network_role
+ subnetpoolid:
+ get_input: port_2c202_port_subnetpoolid
+ network:
+ get_input:
+ - port_2c202_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: 2c2_catalog_instance
+ relationship: tosca.relationships.network.BindsTo
+ 2c2_catalog_instance_1c201_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_1c201_port_exCP_naming
+ vlan_requirements:
+ get_input: port_1c201_port_vlan_requirements
+ ip_requirements:
+ get_input: port_1c201_port_ip_requirements
+ network_role_tag:
+ get_input: port_1c201_port_network_role_tag
+ mac_requirements:
+ get_input: port_1c201_port_mac_requirements
+ order:
+ get_input: port_1c201_port_order
+ network_role:
+ get_input: port_1c201_port_network_role
+ subnetpoolid:
+ get_input: port_1c201_port_subnetpoolid
+ network:
+ get_input:
+ - port_1c201_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: 2c2_catalog_instance
+ relationship: tosca.relationships.network.BindsTo
+ outputs:
+ 2c2_catalog_instance_instance_name:
+ type: string
+ value:
+ get_attribute:
+ - 2c2_catalog_instance
+ - instance_name
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance
+ capabilities:
+ network.outgoing.packets.rate_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.outgoing.packets.rate
+ instance_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - instance
+ disk.write.bytes_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.write.bytes
+ disk.capacity_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.capacity
+ disk.device.read.bytes.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.read.bytes.rate
+ disk.read.bytes_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.read.bytes
+ disk.write.requests.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.write.requests.rate
+ disk.device.read.bytes_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.read.bytes
+ disk.device.allocation_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.allocation
+ scalable_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - scalable
+ disk.device.read.requests_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.read.requests
+ network.outgoing.bytes_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.outgoing.bytes
+ disk.root.size_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.root.size
+ disk.device.write.requests_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.write.requests
+ host_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - host
+ disk.allocation_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.allocation
+ binding_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - binding
+ disk.device.write.requests.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.write.requests.rate
+ os_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - os
+ network.outpoing.packets_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.outpoing.packets
+ disk.device.write.bytes.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.write.bytes.rate
+ network.outgoing.bytes.rate_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.outgoing.bytes.rate
+ network.incoming.packets.rate_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.incoming.packets.rate
+ disk.latency_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.latency
+ disk.iops_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.iops
+ endpoint_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - endpoint
+ vcpus_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - vcpus
+ network.incoming.bytes_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.incoming.bytes
+ feature_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - feature
+ network.incoming.bytes.rate_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.incoming.bytes.rate
+ disk.device.iops_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.iops
+ attachment_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - attachment
+ network.incoming.packets_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.incoming.packets
+ disk.device.latency_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.latency
+ network.outgoing.packets.rate_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.outgoing.packets.rate
+ disk.read.bytes.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.read.bytes.rate
+ memory.usage_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - memory.usage
+ disk.write.bytes.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.write.bytes.rate
+ disk.device.capacity_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.capacity
+ disk.read.requests_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.read.requests
+ network.outgoing.bytes_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.outgoing.bytes
+ cpu_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - cpu
+ disk.ephemeral.size_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.ephemeral.size
+ disk.device.write.bytes_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.write.bytes
+ memory.resident_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - memory.resident
+ disk.device.usage_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.usage
+ network.outgoing.bytes.rate_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.outgoing.bytes.rate
+ network.outpoing.packets_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.outpoing.packets
+ cpu_util_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - cpu_util
+ network.incoming.bytes.rate_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.incoming.bytes.rate
+ disk.usage_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.usage
+ binding_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - binding
+ feature_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - feature
+ disk.write.requests_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.write.requests
+ cpu.delta_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - cpu.delta
+ network.incoming.packets.rate_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.incoming.packets.rate
+ binding_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - binding
+ attachment_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - attachment
+ network.incoming.packets_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - network.incoming.packets
+ feature_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - feature
+ memory_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - memory
+ network.incoming.bytes_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - network.incoming.bytes
+ disk.device.read.requests.rate_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - disk.device.read.requests.rate
+ requirements:
+ dependency_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - dependency
+ link_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - link
+ dependency_2c2_catalog_instance_1c201_port:
+ - 2c2_catalog_instance_1c201_port
+ - dependency
+ local_storage_2c2_catalog_instance:
+ - 2c2_catalog_instance
+ - local_storage
+ dependency_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - dependency
+ link_2c2_catalog_instance_2c202_port:
+ - 2c2_catalog_instance_2c202_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_1aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_1aServiceTemplate.yaml
index 15e3f83de9..de031b7692 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_1aServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_1aServiceTemplate.yaml
@@ -201,21 +201,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
a_single_1a_instance_name:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a
- instance_name
- entry_schema:
- type: string
a_single_1a_1a_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- a_single_1a_1a_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.a_single_1a
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_2aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_2aServiceTemplate.yaml
index 364ee2a7b5..22c56df0ae 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_2aServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_a_single_2aServiceTemplate.yaml
@@ -140,13 +140,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
a_single_2a_instance_name:
- type: list
+ type: string
value:
get_attribute:
- a_single_2a
- instance_name
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.a_single_2a
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1bServiceTemplate.yaml
index 3c27b07ed6..92ed051461 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1bServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_b_single_1b_0
+ template_name: Nested_b_single_1b
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -201,23 +201,19 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.b_single_1b_0
+ node_type: org.openecomp.resource.abstract.nodes.b_single_1b
capabilities:
attachment_b_single_1b_1b_t2_port:
- b_single_1b_1b_t2_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_1ServiceTemplate.yaml
index d49088c237..a1792fe9c7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_1b_1ServiceTemplate.yaml
@@ -196,21 +196,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_1b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b
- instance_name
- entry_schema:
- type: string
b_single_1b_1b_t1_port_tenant_id:
- type: list
+ type: string
value:
get_attribute:
- b_single_1b_1b_t1_port
- tenant_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.b_single_1b_1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2bServiceTemplate.yaml
index c268a091cb..f76ed569f1 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2bServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_b_single_2b_0
+ template_name: Nested_b_single_2b
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -201,15 +201,13 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_2b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_2b
- instance_name
- entry_schema:
- type: string
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.b_single_2b_0
+ node_type: org.openecomp.resource.abstract.nodes.b_single_2b
capabilities:
disk.usage_b_single_2b:
- b_single_2b
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_1ServiceTemplate.yaml
index c894808e8e..2d0c7cce39 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_b_single_2b_1ServiceTemplate.yaml
@@ -196,13 +196,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
b_single_2b_instance_name:
- type: list
+ type: string
value:
get_attribute:
- b_single_2b
- instance_name
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.b_single_2b_1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4997938e90
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_serverServiceTemplate.yaml
@@ -0,0 +1,444 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_network_role:
+ type: string
+ required: true
+ port_pcm_port_2_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_3_network_role:
+ type: string
+ required: true
+ port_pcm_port_3_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_3_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_3_order:
+ type: integer
+ required: true
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_2_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pcm_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_3_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_3_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_3_network_role_tag:
+ type: string
+ required: true
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_3_fixed_ips:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_order:
+ type: integer
+ required: true
+ port_pcm_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_2_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_3_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pcma_server_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_pcma_server_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_3:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_3_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_3_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_3_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_3_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_3_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_3_mac_requirements
+ order:
+ get_input: port_pcm_port_3_order
+ network_role:
+ get_input: port_pcm_port_3_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_3_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_3_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_3_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_2_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_2_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_2_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_2_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_2_mac_requirements
+ order:
+ get_input: port_pcm_port_2_order
+ network_role:
+ get_input: port_pcm_port_2_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_2_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_2_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_2_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ network.outgoing.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes.rate
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ attachment_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - attachment
+ network.incoming.bytes.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes.rate
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.outgoing.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.bytes
+ binding_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - binding
+ network.incoming.bytes.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes.rate
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets
+ binding_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - binding
+ os_pcma_server:
+ - pcma_server
+ - os
+ network.incoming.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets
+ network.incoming.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.packets.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outgoing.packets.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - feature
+ feature_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.incoming.bytes
+ network.incoming.bytes_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ network.outpoing.packets_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - network.outpoing.packets
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ network.outpoing.packets_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - network.outpoing.packets
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ requirements:
+ dependency_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - dependency
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_2:
+ - pcma_server_pcm_port_2
+ - link
+ link_pcma_server_pcm_port_3:
+ - pcma_server_pcm_port_3
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_server_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..38f70ab8a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/Nested_pcma_server_1ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcma_server_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcma_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_0_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_0_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_order:
+ type: integer
+ required: true
+ port_pcm_port_0_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_0_network_role_tag:
+ type: string
+ required: true
+ port_pcm_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_1_network_role:
+ type: string
+ required: true
+ port_pcm_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pcma_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcma_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_1_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ compute_pcma_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pcm_port_1_order:
+ type: integer
+ required: true
+ node_templates:
+ pcma_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcma_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcma_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcma_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcma_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcma_server_user_data_format
+ - index_value
+ pcma_server_pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_0_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_0_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_0_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_0_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_0_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_0_mac_requirements
+ order:
+ get_input: port_pcm_port_0_order
+ network_role:
+ get_input: port_pcm_port_0_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_0_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_0_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_0_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ pcma_server_pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_1_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_1_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_1_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_1_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_1_mac_requirements
+ order:
+ get_input: port_pcm_port_1_order
+ network_role:
+ get_input: port_pcm_port_1_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_1_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_1_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcma_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ capabilities:
+ cpu.delta_pcma_server:
+ - pcma_server
+ - cpu.delta
+ scalable_pcma_server:
+ - pcma_server
+ - scalable
+ vcpus_pcma_server:
+ - pcma_server
+ - vcpus
+ host_pcma_server:
+ - pcma_server
+ - host
+ disk.device.read.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.requests.rate
+ disk.usage_pcma_server:
+ - pcma_server
+ - disk.usage
+ attachment_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - attachment
+ disk.read.bytes_pcma_server:
+ - pcma_server
+ - disk.read.bytes
+ disk.iops_pcma_server:
+ - pcma_server
+ - disk.iops
+ network.outgoing.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes.rate
+ attachment_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - attachment
+ endpoint_pcma_server:
+ - pcma_server
+ - endpoint
+ feature_pcma_server:
+ - pcma_server
+ - feature
+ memory.usage_pcma_server:
+ - pcma_server
+ - memory.usage
+ network.incoming.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets
+ network.incoming.bytes.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.bytes
+ memory_pcma_server:
+ - pcma_server
+ - memory
+ network.outgoing.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.bytes
+ cpu_pcma_server:
+ - pcma_server
+ - cpu
+ disk.device.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes.rate
+ disk.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.read.bytes.rate
+ network.incoming.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.packets.rate
+ binding_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - binding
+ network.incoming.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets
+ os_pcma_server:
+ - pcma_server
+ - os
+ binding_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - binding
+ network.incoming.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.packets.rate
+ disk.device.read.requests_pcma_server:
+ - pcma_server
+ - disk.device.read.requests
+ disk.write.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.write.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.device.write.requests.rate
+ network.incoming.bytes.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outgoing.packets.rate
+ cpu_util_pcma_server:
+ - pcma_server
+ - cpu_util
+ disk.device.write.bytes_pcma_server:
+ - pcma_server
+ - disk.device.write.bytes
+ disk.device.read.bytes.rate_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes.rate
+ disk.device.usage_pcma_server:
+ - pcma_server
+ - disk.device.usage
+ disk.read.requests_pcma_server:
+ - pcma_server
+ - disk.read.requests
+ disk.allocation_pcma_server:
+ - pcma_server
+ - disk.allocation
+ feature_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - feature
+ feature_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - feature
+ disk.ephemeral.size_pcma_server:
+ - pcma_server
+ - disk.ephemeral.size
+ binding_pcma_server:
+ - pcma_server
+ - binding
+ disk.latency_pcma_server:
+ - pcma_server
+ - disk.latency
+ disk.device.write.requests_pcma_server:
+ - pcma_server
+ - disk.device.write.requests
+ disk.device.read.bytes_pcma_server:
+ - pcma_server
+ - disk.device.read.bytes
+ disk.device.allocation_pcma_server:
+ - pcma_server
+ - disk.device.allocation
+ memory.resident_pcma_server:
+ - pcma_server
+ - memory.resident
+ disk.root.size_pcma_server:
+ - pcma_server
+ - disk.root.size
+ disk.write.bytes_pcma_server:
+ - pcma_server
+ - disk.write.bytes
+ network.incoming.bytes_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.incoming.bytes
+ disk.write.requests_pcma_server:
+ - pcma_server
+ - disk.write.requests
+ network.incoming.bytes_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.incoming.bytes
+ disk.write.requests.rate_pcma_server:
+ - pcma_server
+ - disk.write.requests.rate
+ disk.device.iops_pcma_server:
+ - pcma_server
+ - disk.device.iops
+ instance_pcma_server:
+ - pcma_server
+ - instance
+ disk.device.latency_pcma_server:
+ - pcma_server
+ - disk.device.latency
+ disk.capacity_pcma_server:
+ - pcma_server
+ - disk.capacity
+ disk.device.capacity_pcma_server:
+ - pcma_server
+ - disk.device.capacity
+ network.outpoing.packets_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - network.outpoing.packets
+ requirements:
+ dependency_pcma_server:
+ - pcma_server
+ - dependency
+ dependency_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - dependency
+ local_storage_pcma_server:
+ - pcma_server
+ - local_storage
+ link_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - link
+ link_pcma_server_pcm_port_1:
+ - pcma_server_pcm_port_1
+ - link
+ dependency_pcma_server_pcm_port_0:
+ - pcma_server_pcm_port_0
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/nested-no_vfc_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/nested-no_vfc_v0.1ServiceTemplate.yaml
index 934dada392..2d854439a6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/nested-no_vfc_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/nested-no_vfc_v0.1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pcma_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
server_group:
@@ -110,135 +107,127 @@ topology_template:
immutable: false
type: string
node_templates:
- pcm_port_2:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcma_server_1:
+ type: org.openecomp.resource.abstract.nodes.pcma_server_1
+ directives:
+ - substitutable
properties:
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_network_role_tag: cps
+ port_pcm_port_0_fixed_ips:
- ip_address:
get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ vm_flavor_name:
+ get_input: pcma_flavor_name
+ port_pcm_port_0_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
+ get_input: pcma_image_name
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_port_1_network:
+ - get_input: oam_net_name
+ port_pcm_port_0_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ port_pcm_port_1_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_config_drive:
+ - true
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_0_network:
+ - get_input: cps_net_name
+ port_pcm_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pcm_port_1_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
- pcm_port_3:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: oam_net_ip
- mac_requirements:
+ service_template_filter:
+ substitute_service_template: Nested_pcma_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pcma_server:
+ type: org.openecomp.resource.abstract.nodes.pcma_server
+ directives:
+ - substitutable
+ properties:
+ port_pcm_port_3_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma2
- relationship: tosca.relationships.network.BindsTo
- server_pcma2:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
- get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- scheduler_hints:
- group:
- get_input: server_group
- server_pcma1:
- type: org.openecomp.resource.vfc.nodes.heat.pcma_server
- properties:
- flavor:
+ port_pcm_port_2_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ vm_flavor_name:
get_input: pcma_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
+ port_pcm_port_3_security_groups:
+ - - get_input: security_group_name
+ compute_pcma_server_availability_zone:
+ - get_input: availabilityzone_name
+ vm_image_name:
get_input: pcma_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcma_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_2_security_groups:
+ - - get_input: security_group_name
+ port_pcm_port_3_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
+ port_pcm_port_2_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcma1
- relationship: tosca.relationships.network.BindsTo
+ port_pcm_port_3_network_role_tag: cps
+ compute_pcma_server_config_drive:
+ - true
+ port_pcm_port_3_fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ compute_pcma_server_user_data_format:
+ - RAW
+ port_pcm_port_2_network:
+ - get_input: cps_net_name
+ port_pcm_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pcm_port_2_network_role_tag: cps
+ port_pcm_port_3_network:
+ - get_input: oam_net_name
+ compute_pcma_server_scheduler_hints:
+ - group:
+ get_input: server_group
+ compute_pcma_server_name:
+ - get_input: pcma_server_name
+ service_template_filter:
+ substitute_service_template: Nested_pcma_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-no_vfc_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -246,12 +235,8 @@ topology_template:
heat_file: ../Artifacts/nested-no_vfc_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_2
- - pcm_port_1
- - pcm_port_3
- - server_pcma2
- - server_pcma1
- - pcm_port_0
+ - abstract_pcma_server
+ - abstract_pcma_server_1
outputs:
portId:
value: pcm_port_3
@@ -259,417 +244,417 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_0
network.incoming.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_3
network.incoming.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets.rate
+ - abstract_pcma_server
+ - network.incoming.packets.rate_pcma_server_pcm_port_2
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pcma_server_1
+ - network.incoming.packets.rate_pcma_server_pcm_port_1
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_1
disk.device.iops_server_pcma2:
- - server_pcma2
- - disk.device.iops
+ - abstract_pcma_server
+ - disk.device.iops_pcma_server
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcma_server_1
+ - network.outpoing.packets_pcma_server_pcm_port_0
network.outpoing.packets_pcm_port_3:
- - pcm_port_3
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_3
network.outpoing.packets_pcm_port_2:
- - pcm_port_2
- - network.outpoing.packets
+ - abstract_pcma_server
+ - network.outpoing.packets_pcma_server_pcm_port_2
disk.device.iops_server_pcma1:
- - server_pcma1
- - disk.device.iops
+ - abstract_pcma_server_1
+ - disk.device.iops_pcma_server
disk.device.capacity_server_pcma2:
- - server_pcma2
- - disk.device.capacity
+ - abstract_pcma_server
+ - disk.device.capacity_pcma_server
disk.device.capacity_server_pcma1:
- - server_pcma1
- - disk.device.capacity
+ - abstract_pcma_server_1
+ - disk.device.capacity_pcma_server
disk.read.requests_server_pcma2:
- - server_pcma2
- - disk.read.requests
+ - abstract_pcma_server
+ - disk.read.requests_pcma_server
disk.read.requests_server_pcma1:
- - server_pcma1
- - disk.read.requests
+ - abstract_pcma_server_1
+ - disk.read.requests_pcma_server
disk.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.write.requests.rate_pcma_server
disk.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.write.requests.rate
+ - abstract_pcma_server
+ - disk.write.requests.rate_pcma_server
memory_server_pcma2:
- - server_pcma2
- - memory
+ - abstract_pcma_server
+ - memory_pcma_server
memory_server_pcma1:
- - server_pcma1
- - memory
+ - abstract_pcma_server_1
+ - memory_pcma_server
disk.device.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.read.bytes.rate_pcma_server
network.outgoing.bytes_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_3
disk.device.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes.rate
+ - abstract_pcma_server
+ - disk.device.read.bytes.rate_pcma_server
binding_pcm_port_3:
- - pcm_port_3
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_3
disk.device.latency_server_pcma2:
- - server_pcma2
- - disk.device.latency
+ - abstract_pcma_server
+ - disk.device.latency_pcma_server
disk.device.usage_server_pcma2:
- - server_pcma2
- - disk.device.usage
+ - abstract_pcma_server
+ - disk.device.usage_pcma_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_0
disk.device.latency_server_pcma1:
- - server_pcma1
- - disk.device.latency
+ - abstract_pcma_server_1
+ - disk.device.latency_pcma_server
network.incoming.bytes_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pcma_server_1
+ - network.incoming.bytes_pcma_server_pcm_port_1
disk.device.usage_server_pcma1:
- - server_pcma1
- - disk.device.usage
+ - abstract_pcma_server_1
+ - disk.device.usage_pcma_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_0
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server_pcm_port_1
binding_pcm_port_2:
- - pcm_port_2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server_pcm_port_2
network.incoming.bytes_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes
+ - abstract_pcma_server
+ - network.incoming.bytes_pcma_server_pcm_port_3
network.outgoing.packets.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_3
disk.device.read.requests_server_pcma1:
- - server_pcma1
- - disk.device.read.requests
+ - abstract_pcma_server_1
+ - disk.device.read.requests_pcma_server
disk.device.read.requests_server_pcma2:
- - server_pcma2
- - disk.device.read.requests
+ - abstract_pcma_server
+ - disk.device.read.requests_pcma_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_0
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pcma_server_1
+ - network.outgoing.packets.rate_pcma_server_pcm_port_1
disk.write.bytes_server_pcma2:
- - server_pcma2
- - disk.write.bytes
+ - abstract_pcma_server
+ - disk.write.bytes_pcma_server
disk.device.read.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.read.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.read.requests.rate_pcma_server
network.outgoing.packets.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.packets.rate
+ - abstract_pcma_server
+ - network.outgoing.packets.rate_pcma_server_pcm_port_2
disk.device.read.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.read.requests.rate
+ - abstract_pcma_server
+ - disk.device.read.requests.rate_pcma_server
disk.write.bytes_server_pcma1:
- - server_pcma1
- - disk.write.bytes
+ - abstract_pcma_server_1
+ - disk.write.bytes_pcma_server
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_1
binding_server_pcma1:
- - server_pcma1
- - binding
+ - abstract_pcma_server_1
+ - binding_pcma_server
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_0
binding_server_pcma2:
- - server_pcma2
- - binding
+ - abstract_pcma_server
+ - binding_pcma_server
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server_pcm_port_0
network.outgoing.bytes_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes
+ - abstract_pcma_server
+ - network.outgoing.bytes_pcma_server_pcm_port_2
feature_pcm_port_3:
- - pcm_port_3
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_3
feature_pcm_port_2:
- - pcm_port_2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server_pcm_port_2
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pcma_server_1
+ - network.outgoing.bytes_pcma_server_pcm_port_1
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_0
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pcma_server_1
+ - attachment_pcma_server_pcm_port_1
disk.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.write.bytes.rate
+ - abstract_pcma_server
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_2:
- - pcm_port_2
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_2
disk.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.write.bytes.rate_pcma_server
attachment_pcm_port_3:
- - pcm_port_3
- - attachment
+ - abstract_pcma_server
+ - attachment_pcma_server_pcm_port_3
disk.root.size_server_pcma2:
- - server_pcma2
- - disk.root.size
+ - abstract_pcma_server
+ - disk.root.size_pcma_server
disk.root.size_server_pcma1:
- - server_pcma1
- - disk.root.size
+ - abstract_pcma_server_1
+ - disk.root.size_pcma_server
disk.iops_server_pcma2:
- - server_pcma2
- - disk.iops
+ - abstract_pcma_server
+ - disk.iops_pcma_server
disk.iops_server_pcma1:
- - server_pcma1
- - disk.iops
+ - abstract_pcma_server_1
+ - disk.iops_pcma_server
disk.device.write.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes.rate
+ - abstract_pcma_server_1
+ - disk.device.write.bytes.rate_pcma_server
disk.device.write.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes.rate
+ - abstract_pcma_server
+ - disk.device.write.bytes.rate_pcma_server
disk.read.bytes_server_pcma1:
- - server_pcma1
- - disk.read.bytes
+ - abstract_pcma_server_1
+ - disk.read.bytes_pcma_server
disk.read.bytes_server_pcma2:
- - server_pcma2
- - disk.read.bytes
+ - abstract_pcma_server
+ - disk.read.bytes_pcma_server
cpu_util_server_pcma1:
- - server_pcma1
- - cpu_util
+ - abstract_pcma_server_1
+ - cpu_util_pcma_server
cpu_util_server_pcma2:
- - server_pcma2
- - cpu_util
+ - abstract_pcma_server
+ - cpu_util_pcma_server
feature_server_pcma2:
- - server_pcma2
- - feature
+ - abstract_pcma_server
+ - feature_pcma_server
memory.usage_server_pcma2:
- - server_pcma2
- - memory.usage
+ - abstract_pcma_server
+ - memory.usage_pcma_server
memory.usage_server_pcma1:
- - server_pcma1
- - memory.usage
+ - abstract_pcma_server_1
+ - memory.usage_pcma_server
feature_server_pcma1:
- - server_pcma1
- - feature
+ - abstract_pcma_server_1
+ - feature_pcma_server
disk.read.bytes.rate_server_pcma1:
- - server_pcma1
- - disk.read.bytes.rate
+ - abstract_pcma_server_1
+ - disk.read.bytes.rate_pcma_server
disk.device.read.bytes_server_pcma2:
- - server_pcma2
- - disk.device.read.bytes
+ - abstract_pcma_server
+ - disk.device.read.bytes_pcma_server
disk.device.read.bytes_server_pcma1:
- - server_pcma1
- - disk.device.read.bytes
+ - abstract_pcma_server_1
+ - disk.device.read.bytes_pcma_server
endpoint_server_pcma2:
- - server_pcma2
- - endpoint
+ - abstract_pcma_server
+ - endpoint_pcma_server
disk.read.bytes.rate_server_pcma2:
- - server_pcma2
- - disk.read.bytes.rate
+ - abstract_pcma_server
+ - disk.read.bytes.rate_pcma_server
endpoint_server_pcma1:
- - server_pcma1
- - endpoint
+ - abstract_pcma_server_1
+ - endpoint_pcma_server
cpu.delta_server_pcma1:
- - server_pcma1
- - cpu.delta
+ - abstract_pcma_server_1
+ - cpu.delta_pcma_server
cpu.delta_server_pcma2:
- - server_pcma2
- - cpu.delta
+ - abstract_pcma_server
+ - cpu.delta_pcma_server
host_server_pcma2:
- - server_pcma2
- - host
+ - abstract_pcma_server
+ - host_pcma_server
host_server_pcma1:
- - server_pcma1
- - host
+ - abstract_pcma_server_1
+ - host_pcma_server
disk.ephemeral.size_server_pcma1:
- - server_pcma1
- - disk.ephemeral.size
+ - abstract_pcma_server_1
+ - disk.ephemeral.size_pcma_server
disk.ephemeral.size_server_pcma2:
- - server_pcma2
- - disk.ephemeral.size
+ - abstract_pcma_server
+ - disk.ephemeral.size_pcma_server
disk.device.write.requests.rate_server_pcma2:
- - server_pcma2
- - disk.device.write.requests.rate
+ - abstract_pcma_server
+ - disk.device.write.requests.rate_pcma_server
disk.latency_server_pcma1:
- - server_pcma1
- - disk.latency
+ - abstract_pcma_server_1
+ - disk.latency_pcma_server
disk.latency_server_pcma2:
- - server_pcma2
- - disk.latency
+ - abstract_pcma_server
+ - disk.latency_pcma_server
disk.device.write.requests.rate_server_pcma1:
- - server_pcma1
- - disk.device.write.requests.rate
+ - abstract_pcma_server_1
+ - disk.device.write.requests.rate_pcma_server
scalable_server_pcma2:
- - server_pcma2
- - scalable
+ - abstract_pcma_server
+ - scalable_pcma_server
scalable_server_pcma1:
- - server_pcma1
- - scalable
+ - abstract_pcma_server_1
+ - scalable_pcma_server
disk.device.write.requests_server_pcma1:
- - server_pcma1
- - disk.device.write.requests
+ - abstract_pcma_server_1
+ - disk.device.write.requests_pcma_server
disk.device.write.requests_server_pcma2:
- - server_pcma2
- - disk.device.write.requests
+ - abstract_pcma_server
+ - disk.device.write.requests_pcma_server
instance_server_pcma2:
- - server_pcma2
- - instance
+ - abstract_pcma_server
+ - instance_pcma_server
disk.device.allocation_server_pcma1:
- - server_pcma1
- - disk.device.allocation
+ - abstract_pcma_server_1
+ - disk.device.allocation_pcma_server
disk.device.allocation_server_pcma2:
- - server_pcma2
- - disk.device.allocation
+ - abstract_pcma_server
+ - disk.device.allocation_pcma_server
instance_server_pcma1:
- - server_pcma1
- - instance
+ - abstract_pcma_server_1
+ - instance_pcma_server
os_server_pcma1:
- - server_pcma1
- - os
+ - abstract_pcma_server_1
+ - os_pcma_server
os_server_pcma2:
- - server_pcma2
- - os
+ - abstract_pcma_server
+ - os_pcma_server
disk.capacity_server_pcma1:
- - server_pcma1
- - disk.capacity
+ - abstract_pcma_server_1
+ - disk.capacity_pcma_server
disk.capacity_server_pcma2:
- - server_pcma2
- - disk.capacity
+ - abstract_pcma_server
+ - disk.capacity_pcma_server
disk.write.requests_server_pcma1:
- - server_pcma1
- - disk.write.requests
+ - abstract_pcma_server_1
+ - disk.write.requests_pcma_server
disk.write.requests_server_pcma2:
- - server_pcma2
- - disk.write.requests
+ - abstract_pcma_server
+ - disk.write.requests_pcma_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_1
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_0
network.outgoing.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcma_server_1
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_0
network.incoming.packets_pcm_port_3:
- - pcm_port_3
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_3
disk.usage_server_pcma2:
- - server_pcma2
- - disk.usage
+ - abstract_pcma_server
+ - disk.usage_pcma_server
network.incoming.packets_pcm_port_2:
- - pcm_port_2
- - network.incoming.packets
+ - abstract_pcma_server
+ - network.incoming.packets_pcma_server_pcm_port_2
network.outgoing.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.outgoing.bytes.rate
+ - abstract_pcma_server
+ - network.outgoing.bytes.rate_pcma_server_pcm_port_3
disk.usage_server_pcma1:
- - server_pcma1
- - disk.usage
+ - abstract_pcma_server_1
+ - disk.usage_pcma_server
vcpus_server_pcma1:
- - server_pcma1
- - vcpus
+ - abstract_pcma_server_1
+ - vcpus_pcma_server
memory.resident_server_pcma1:
- - server_pcma1
- - memory.resident
+ - abstract_pcma_server_1
+ - memory.resident_pcma_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pcma_server_1
+ - network.incoming.packets_pcma_server_pcm_port_1
vcpus_server_pcma2:
- - server_pcma2
- - vcpus
+ - abstract_pcma_server
+ - vcpus_pcma_server
memory.resident_server_pcma2:
- - server_pcma2
- - memory.resident
+ - abstract_pcma_server
+ - memory.resident_pcma_server
disk.device.write.bytes_server_pcma2:
- - server_pcma2
- - disk.device.write.bytes
+ - abstract_pcma_server
+ - disk.device.write.bytes_pcma_server
disk.allocation_server_pcma1:
- - server_pcma1
- - disk.allocation
+ - abstract_pcma_server_1
+ - disk.allocation_pcma_server
disk.allocation_server_pcma2:
- - server_pcma2
- - disk.allocation
+ - abstract_pcma_server
+ - disk.allocation_pcma_server
disk.device.write.bytes_server_pcma1:
- - server_pcma1
- - disk.device.write.bytes
+ - abstract_pcma_server_1
+ - disk.device.write.bytes_pcma_server
cpu_server_pcma1:
- - server_pcma1
- - cpu
+ - abstract_pcma_server_1
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_0
cpu_server_pcma2:
- - server_pcma2
- - cpu
+ - abstract_pcma_server
+ - cpu_pcma_server
network.incoming.bytes.rate_pcm_port_3:
- - pcm_port_3
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_3
network.incoming.bytes.rate_pcm_port_2:
- - pcm_port_2
- - network.incoming.bytes.rate
+ - abstract_pcma_server
+ - network.incoming.bytes.rate_pcma_server_pcm_port_2
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pcma_server_1
+ - network.incoming.bytes.rate_pcma_server_pcm_port_1
requirements:
dependency_server_pcma2:
- - server_pcma2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server
local_storage_server_pcma2:
- - server_pcma2
- - local_storage
+ - abstract_pcma_server
+ - local_storage_pcma_server
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_0
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pcma_server_1
+ - link_pcma_server_pcm_port_1
dependency_server_pcma1:
- - server_pcma1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server
local_storage_server_pcma1:
- - server_pcma1
- - local_storage
+ - abstract_pcma_server_1
+ - local_storage_pcma_server
link_pcm_port_2:
- - pcm_port_2
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_2
link_pcm_port_3:
- - pcm_port_3
- - link
+ - abstract_pcma_server
+ - link_pcma_server_pcm_port_3
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_0
dependency_pcm_port_3:
- - pcm_port_3
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_3
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pcma_server_1
+ - dependency_pcma_server_pcm_port_1
dependency_pcm_port_2:
- - pcm_port_2
- - dependency
+ - abstract_pcma_server
+ - dependency_pcma_server_pcm_port_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/MANIFEST.json
new file mode 100644
index 0000000000..aaea329b69
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/MANIFEST.json
@@ -0,0 +1,42 @@
+{
+ "name": "Port to Network multi nested test",
+ "description": "HOT template to create multi nested of 4 levels",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1-no-compute.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-pattern-4.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-pattern-4-same-type.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested3.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/main.yml
new file mode 100644
index 0000000000..e138b3d4cd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/main.yml
@@ -0,0 +1,176 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: security_group_name
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+ pd_server_main_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_main_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_main_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_main_1b_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_main_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_main_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_main_1b_ips:
+ type: string
+ ps_server_main_1b_ips:
+ type: string
+ cmaui_1c1_main_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_main_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ cmaui_1c1_main_flavor:
+ type: string
+ description: Flavor for CMAUI server
+
+resources:
+ test_nested1Level:
+ type: nested1.yml
+ depends_on:
+ - test_nested_no_compute
+ properties:
+ name: { get_param: security_group_name}
+
+ test_nested1Level_duplicate_same_file:
+ type: nested1.yml
+ depends_on:
+ - test_nested1Level
+ properties:
+ name: { get_param: security_group_name}
+
+ test_nested_no_compute:
+ type: nested1-no-compute.yml
+ depends_on:
+ - server_main_pd_1b
+ properties:
+ name: { get_param: jsa_net_name}
+
+ ########### PATTERN 1B ##################
+
+ pd_server_main_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_main_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_main_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_main_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_main_pd_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - test_nested1Level
+ properties:
+ name: { get_param: [pd_server_main_1b_names, 0]}
+ image: { get_param: pd_server_main_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_main_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_main_1b_port }
+
+ server_main_ps_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ - test_nested_no_compute
+ properties:
+ name: { get_param: [ps_server_main_1b_names, 1]}
+ image: { get_param: ps_server_main_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_main_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_main_1b_port }
+
+ ########### PATTERN 1C1 #################
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_main_1c1_cmaui_1:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ - server_main_ps_1b
+ - test_nested_no_compute
+ properties:
+ name: { get_param: [cmaui_1c1_main_names, 0]}
+ image: { get_param: cmaui_1c1_main_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_main_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_main_1c1_cmaui_2:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ - server_main_ps_1b
+ - test_nested_no_compute
+ properties:
+ name: { get_param: [cmaui_1c1_main_names, 1]}
+ image: { get_param: cmaui_1c1_main_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_main_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ ########### PATTERN 4 #################
+
+ test_nested_pattern_4_main_0:
+ type: nested-pattern-4.yml
+ depends_on:
+ - server_main_1c1_cmaui_1
+ - server_main_1c1_cmaui_2
+ - server_main_pd_1b
+ - server_main_ps_1b
+ - test_nested1Level
+ - test_nested_no_compute
+ properties:
+ p1: { get_param: jsa_name} \ 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/in/nested-pattern-4-same-type.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4-same-type.yml
new file mode 100644
index 0000000000..a90a5ca88e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4-same-type.yml
@@ -0,0 +1,66 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_pattern4_names:
+ type: comma_delimited_list
+ description: PD server names
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_pattern4_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_pattern4_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_pattern4_ips, 0]}}]
+ replacement_policy: AUTO
+
+ pd_server_pattern4_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_pattern4_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_pd_pattern4:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_pattern4_names, 0]}
+ image: { get_param: pd_server_pattern4_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_pattern4_flavor }
+ networks:
+ - port: { get_resource: pd_server_pattern4_port_1 }
+ - port: { get_resource: pd_server_pattern4_port_2 }
+
+outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: { get_resource: server_pd_pattern4 }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4.yml
new file mode 100644
index 0000000000..a90a5ca88e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested-pattern-4.yml
@@ -0,0 +1,66 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_pattern4_names:
+ type: comma_delimited_list
+ description: PD server names
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_pattern4_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_pattern4_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_pattern4_ips, 0]}}]
+ replacement_policy: AUTO
+
+ pd_server_pattern4_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_pattern4_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_pd_pattern4:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_pattern4_names, 0]}
+ image: { get_param: pd_server_pattern4_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_pattern4_flavor }
+ networks:
+ - port: { get_resource: pd_server_pattern4_port_1 }
+ - port: { get_resource: pd_server_pattern4_port_2 }
+
+outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: { get_resource: server_pd_pattern4 }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1-no-compute.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1-no-compute.yml
new file mode 100644
index 0000000000..19e3cde33f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1-no-compute.yml
@@ -0,0 +1,29 @@
+heat_template_version: 2013-05-23
+
+description: nested1-no-compute
+
+parameters:
+ pd_server_ips:
+ type: string
+ ps_server_ips:
+ type: string
+ net:
+ type: string
+ name:
+ type: string
+ description: nested parameter
+
+resources:
+ pd_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_ips, 0]}}]
+ replacement_policy: AUTO
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1.yml
new file mode 100644
index 0000000000..9b397c6fd7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested1.yml
@@ -0,0 +1,162 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ name:
+ type: string
+ description: nested parameter
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: security_group_name
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+ pd_server_main_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_main_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_main_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_main_1b_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_main_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_main_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_main_1b_ips:
+ type: string
+ ps_server_main_1b_ips:
+ type: string
+ cmaui_1c1_main_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_main_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ cmaui_1c1_main_flavor:
+ type: string
+ description: Flavor for CMAUI server
+
+resources:
+ test_nested2Level:
+ type: nested2.yml
+ depends_on:
+ - test_nested_pattern_4_main_1
+ properties:
+ name: { get_param: security_group_name}
+
+ ########### PATTERN 1B (same type as main) ##################
+
+ pd_server_main_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_main_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_main_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_main_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_main_pd_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - test_nested2Level
+ properties:
+ name: { get_param: [pd_server_main_1b_names, 0]}
+ image: { get_param: pd_server_main_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_main_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_main_1b_port }
+
+ server_main_ps_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ properties:
+ name: { get_param: [ps_server_main_1b_names, 1]}
+ image: { get_param: ps_server_main_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_main_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_main_1b_port }
+
+ ########### PATTERN 1C1 (same type as main) #################
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_main_1c1_cmaui_1:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ - server_main_ps_1b
+ - test_nested2Level
+ properties:
+ name: { get_param: [cmaui_1c1_main_names, 0]}
+ image: { get_param: cmaui_1c1_main_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_main_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_main_1c1_cmaui_2:
+ type: OS::Nova::Server
+ depends_on:
+ - server_main_pd_1b
+ - server_main_ps_1b
+ - test_nested2Level
+ properties:
+ name: { get_param: [cmaui_1c1_main_names, 1]}
+ image: { get_param: cmaui_1c1_main_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_main_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ ########### PATTERN 4 (same type as main) #################
+
+ test_nested_pattern_4_main_1:
+ type: nested-pattern-4.yml
+ depends_on:
+ - server_main_1c1_cmaui_1
+ - server_main_1c1_cmaui_2
+ - server_main_pd_1b
+ - server_main_ps_1b
+ properties:
+ p1: { get_param: jsa_name} \ 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/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested2.yml
new file mode 100644
index 0000000000..930b165ed3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested2.yml
@@ -0,0 +1,180 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ name:
+ type: string
+ description: nested parameter
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: security_group_name
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+ pd_server_nested2_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_nested2_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_nested2_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_nested2_1b_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_nested2_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_nested2_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_nested2_1b_ips:
+ type: string
+ ps_server_nested2_1b_ips:
+ type: string
+ cmaui_1c1_nested2_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_nested2_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ cmaui_1c1_nested2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+
+resources:
+ test_nested3Level:
+ type: nested3.yml
+ depends_on:
+ - test_nested_pattern_4_nested2
+ - server_nested2_ps_1b
+ properties:
+ name: { get_param: security_group_name}
+
+ test_resourceGroup:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 9
+ resource_def:
+ type: nested3.yml
+ properties:
+ p1: { get_param: name}
+ indx: "%index%"
+
+ ########### PATTERN 1B ##################
+
+ pd_server_nested2_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_nested2_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_nested2_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: jsa_name }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_nested2_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_nested2_pd_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - test_nested3Level
+ - test_nested_pattern_4_nested2
+ properties:
+ name: { get_param: [pd_server_nested2_1b_names, 0]}
+ image: { get_param: pd_server_nested2_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_nested2_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_nested2_1b_port }
+
+ server_nested2_ps_1b:
+ type: OS::Nova::Server
+ depends_on:
+ - server_nested2_1c1_cmaui_1
+ - server_nested2_1c1_cmaui_2
+ - test_nested_pattern_4_nested2
+ properties:
+ name: { get_param: [ps_server_nested2_1b_names, 1]}
+ image: { get_param: ps_server_nested2_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_nested2_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_nested2_1b_port }
+
+ ########### PATTERN 1C1 #################
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: contrail_net_name}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_nested2_1c1_cmaui_1:
+ type: OS::Nova::Server
+ depends_on:
+ - server_nested2_pd_1b
+ - server_nested2_ps_1b
+ - test_nested_pattern_4_nested2
+ - test_nested3Level
+ properties:
+ name: { get_param: [cmaui_1c1_nested2_names, 0]}
+ image: { get_param: cmaui_1c1_nested2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_nested2_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_nested2_1c1_cmaui_2:
+ type: OS::Nova::Server
+ depends_on:
+ - server_nested2_pd_1b
+ - server_nested2_ps_1b
+ - test_nested_pattern_4_nested2
+ - test_nested3Level
+ properties:
+ name: { get_param: [cmaui_1c1_nested2_names, 1]}
+ image: { get_param: cmaui_1c1_nested2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_nested2_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ ########### PATTERN 4 #################
+
+ test_nested_pattern_4_same_type_diff_file:
+ type: nested-pattern-4-same-type.yml
+ properties:
+ p1: { get_param: jsa_name}
+
+ test_nested_pattern_4_nested2:
+ type: nested-pattern-4.yml
+ depends_on:
+ - test_resourceGroup
+ properties:
+ p1: { get_param: jsa_name} \ 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/in/nested3.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested3.yml
new file mode 100644
index 0000000000..1d4f9d1055
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/in/nested3.yml
@@ -0,0 +1,34 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ security_group_name:
+ type: string
+ description: security_group_name
+ name:
+ type: string
+ description: nested parameter
+ p1:
+ type: string
+ description: nested parameter
+ indx:
+ type: string
+ description: nested parameter
+resources:
+ jsa_security_group1:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+
+ jsa_security_group2:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}]
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/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..b41b4dece5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,12765 @@
+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.pd_server_nested2_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_nested_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_nested_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
+ port_pd_server_nested_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_nested_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_nested_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_pd_server_nested2_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_pd_server_nested2_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_nested_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_nested_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_nested_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_nested_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_nested_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_nested_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ requirements:
+ - dependency_pd_server_nested2_1b_pd_server_nested_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_nested2_1b_pd_server_nested_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_nested2_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_nested2_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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
+ endpoint_pd_server_nested2_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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.rate_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server_nested2_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.usage_pd_server_nested2_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_pd_server_nested2_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.root.size_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ attachment_pd_server_nested2_1b_pd_server_nested_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_1b_pd_server_nested_b_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_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_pd_server_nested2_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_pd_server_nested2_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_pd_server_nested2_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
+ host_pd_server_nested2_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested1-no-compute:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ ps_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - binding_ps_server_port:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - binding_pd_server_port:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ feature_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_ps_server_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_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_ps_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_ps_server_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_ps_server_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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_pd_server_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_pd_server_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_pd_server_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_ps_server_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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_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_pd_server_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_pd_server_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.pd_server_pattern4_2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ pd_server_pattern4_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_pattern4_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_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
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_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
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ pattern4_attr_1:
+ type: string
+ description: pattern4_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.allocation_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_pattern4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_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_pd_server_pattern4_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_pattern4_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_pattern4_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_server_pd_pattern4:
+ type: org.openecomp.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_pattern4_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_pd_server_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_pd_server_pattern4_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.usage_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pd_pattern4:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_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.rate_pd_server_pattern4_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.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pd_pattern4:
+ type: org.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_pattern4_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_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_pd_server_pattern4_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.requests_server_pd_pattern4:
+ type: org.openecomp.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_pd_server_pattern4_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_pd_server_pattern4_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_pd_server_pattern4_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.capacity_server_pd_pattern4:
+ type: org.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.pd_server_pattern4_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ pd_server_pattern4_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_pattern4_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_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
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_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: &id001
+ type: string
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema: &id002
+ type: string
+ attributes:
+ pattern4_attr_1:
+ type: string
+ description: pattern4_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.allocation_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_pattern4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_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_pd_server_pattern4_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_pattern4_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_pattern4_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_server_pd_pattern4:
+ type: org.openecomp.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_pattern4_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_pd_server_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_pd_server_pattern4_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.usage_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pd_pattern4:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_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.rate_pd_server_pattern4_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.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pd_pattern4:
+ type: org.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_pattern4_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_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_pd_server_pattern4_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.requests_server_pd_pattern4:
+ type: org.openecomp.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_pd_server_pattern4_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_pd_server_pattern4_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_pd_server_pattern4_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.capacity_server_pd_pattern4:
+ type: org.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.pd_server_pattern4:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ pd_server_pattern4_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_pattern4_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_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
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_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: *id001
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema: *id002
+ attributes:
+ pattern4_attr_1:
+ type: string
+ description: pattern4_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.allocation_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_pattern4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_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_pd_server_pattern4_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_pattern4_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_pattern4_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_server_pd_pattern4:
+ type: org.openecomp.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_pattern4_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_pd_server_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_pd_server_pattern4_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.usage_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pd_pattern4:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_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.rate_pd_server_pattern4_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.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pd_pattern4:
+ type: org.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_pattern4_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_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_pd_server_pattern4_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.requests_server_pd_pattern4:
+ type: org.openecomp.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_pd_server_pattern4_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_pd_server_pattern4_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_pd_server_pattern4_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.capacity_server_pd_pattern4:
+ type: org.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_1c1_main_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_main_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_cmaui_1c1_main_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_1c1_main_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_main_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1_main:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1_main:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.iops_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_cmaui_1c1_main:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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.resident_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.usage_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_cmaui_1c1_main:
+ type: org.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:
+ ps_server_main_1b_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: security_group_name
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_main_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+ required: true
+ status: SUPPORTED
+ ps_server_main_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ ps_server_main_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ required: true
+ status: SUPPORTED
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ required: true
+ status: SUPPORTED
+ pd_server_main_1b_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ cmaui_1c1_main_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ pd_server_main_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_main_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_main_1b_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ name:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_main_1b_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ pd_server_main_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server_main_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_main_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_pattern4_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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_main_1c1_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_main_1c1_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_main_1c1_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_main_1c1_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_main_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_main_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_main_pd_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_main_pd_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_main_ps_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_main_ps_1b:
+ 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_2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_2_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_nested2_ps_1b_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_ps_1b_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_nested2_1c1_cmaui_2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_1c1_cmaui_2_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_jsa_security_group1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_nested2_1b_port_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_nested2_1b_port_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_nested2_1c1_cmaui_1_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_1c1_cmaui_1_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_nested2_pd_1b_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_pd_1b_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_nested2_1b_port_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_nested2_1b_port_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_1_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_1_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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:
+ feature_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pd_pattern4_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_main_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.root.size_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_pd_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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_main_1c1_cmaui_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
+ feature_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2_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_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_pd_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_main_1c1_cmaui_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_main_pd_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_main_1c1_cmaui_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_pd_pattern4_test_nested_pattern_4_main_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_nested2_1c1_cmaui_2_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_main_1c1_cmaui_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
+ memory.usage_server_main_1c1_cmaui_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.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_ps_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_server_main_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_main_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.requests_server_main_1c1_cmaui_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_server_nested2_pd_1b_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_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_pd_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_nested2_1c1_cmaui_2_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_main_pd_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_nested2_1c1_cmaui_1_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_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_main_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.capacity_server_main_1c1_cmaui_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.requests_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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_main_pd_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_nested2_pd_1b_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_main_1c1_cmaui_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.usage_server_main_1c1_cmaui_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.requests_server_nested2_ps_1b_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_main_1c1_cmaui_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_main_ps_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_main_pd_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_nested2_pd_1b_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_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_nested2_1c1_cmaui_1_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_nested2_ps_1b_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_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_nested2_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_main_ps_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_main_1b_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_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
+ feature_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_main_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_nested2_ps_1b_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_main_pd_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_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.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_main_ps_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_main_1c1_cmaui_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.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_pd_1b_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_nested2_ps_1b_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
+ network.outgoing.packets.rate_ps_server_nested2_1b_port_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
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_2_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_util_server_main_1c1_cmaui_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_server_main_1c1_cmaui_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
+ host_server_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_main_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2_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_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_main_pd_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_main_1c1_cmaui_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.requests_server_main_1c1_cmaui_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
+ feature_server_main_1c1_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_main_1c1_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_main_1c1_cmaui_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_server_main_1c1_cmaui_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.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_ps_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_cmaui_port_1_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_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_nested2_1b_port_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_1c1_cmaui_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_main_1c1_cmaui_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_2_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_main_pd_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_main_pd_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_server_main_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server_main_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_nested2_1c1_cmaui_1_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_nested2_pd_1b_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_nested2_ps_1b_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_ps_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_main_pd_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_ps_server_main_1b_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_server_main_pd_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_server_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_ps_server_nested2_1b_port_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_main_pd_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_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_pd_pattern4_test_nested_pattern_4_main_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_nested2_1c1_cmaui_1_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_nested2_1c1_cmaui_1_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_main_pd_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_main_ps_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_pd_server_nested2_1b_port_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_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_1_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_main_1c1_cmaui_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.requests.rate_server_main_1c1_cmaui_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_nested2_1c1_cmaui_1_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_ps_server_main_1b_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_nested2_1c1_cmaui_1_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_2_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_ps_server_main_1b_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_server_main_pd_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.usage_server_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_main_pd_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_main_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_1_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.capacity_server_main_ps_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_1c1_cmaui_1_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_main_1c1_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_server_main_1c1_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_1_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_server_nested2_1b_port_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_nested2_ps_1b_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_pd_server_nested2_1b_port_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_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ 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
+ memory.resident_server_main_pd_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_pd_pattern4_test_nested_pattern_4_nested2_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.write.requests_server_pd_pattern4_test_nested_pattern_4_main_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.allocation_server_main_ps_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_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_pd_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_nested2_1c1_cmaui_2_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_ps_server_nested2_1b_port_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_2_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_main_ps_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_pd_1b_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_ps_server_nested2_1b_port_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_pd_server_nested2_1b_port_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_main_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_nested2_1c1_cmaui_1_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_main_pd_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_main_pd_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps_server_main_1b_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.rate_server_main_ps_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_main_ps_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_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.capacity_server_nested2_ps_1b_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
+ network.outpoing.packets_ps_server_nested2_1b_port_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_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_main_pd_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_main_pd_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_nested2_1c1_cmaui_2_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_main_1c1_cmaui_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.requests_server_main_1c1_cmaui_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_main_pd_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_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_main_1b_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_main_ps_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_nested2_1c1_cmaui_1_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_jsa_security_group1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_main_pd_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_main_1c1_cmaui_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_main_1c1_cmaui_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_server_main_pd_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_nested2_pd_1b_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.requests_server_nested2_ps_1b_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_nested2_ps_1b_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_main_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_pd_server_main_1b_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_1_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_main_1c1_cmaui_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_server_main_1c1_cmaui_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
+ instance_server_pd_pattern4_test_nested_pattern_4_main_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_main_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_server_main_1c1_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_nested2_pd_1b_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_main_1c1_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_nested2_1c1_cmaui_2_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_main_pd_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_main_pd_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_nested2_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.ephemeral.size_server_nested2_1c1_cmaui_2_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_main_pd_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
+ host_server_main_pd_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_nested2_pd_1b_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_main_ps_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_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.requests_server_pd_pattern4_test_nested_pattern_4_main_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.requests.rate_server_nested2_1c1_cmaui_2_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_nested2_pd_1b_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_nested2_1c1_cmaui_2_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_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_nested2_pd_1b_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_nested2_1c1_cmaui_1_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_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_main_pd_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_nested2_1c1_cmaui_1_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_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_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.requests.rate_server_main_ps_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
+ endpoint_server_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_nested2_pd_1b_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_nested2_pd_1b_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_main_ps_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_cmaui_port_2_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_main_ps_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_pd_pattern4_test_nested_pattern_4_main_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_1c1_cmaui_1_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_nested2_ps_1b_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_pd_server_main_1b_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_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_main_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_main_pd_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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.requests_server_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_nested2_1b_port_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_main_1c1_cmaui_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_nested2_ps_1b_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_main_1c1_cmaui_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_main_1c1_cmaui_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.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_nested2_pd_1b_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_main_ps_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.delta_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_1_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_2_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_pd_pattern4_test_nested_pattern_4_nested2_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_nested2_pd_1b_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_main_ps_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_main_1c1_cmaui_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_main_1c1_cmaui_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_pattern4_port_2_test_nested_pattern_4_nested2_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_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_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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.delta_server_main_1c1_cmaui_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_pd_server_nested2_1b_port_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_main_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_main_1c1_cmaui_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.usage_server_main_ps_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_main_1c1_cmaui_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.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_main_1c1_cmaui_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_server_main_1c1_cmaui_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.resident_server_nested2_1c1_cmaui_2_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_nested2_pd_1b_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_main_pd_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_server_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_main_1b_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_ps_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_main_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_nested2_1c1_cmaui_1_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_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_main_1c1_cmaui_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
+ host_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_nested2_1c1_cmaui_1_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_server_nested2_1b_port_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_pd_pattern4_test_nested_pattern_4_main_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_server_main_pd_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_main_ps_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_2_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_ps_server_main_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_nested2_pd_1b_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_nested2_pd_1b_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_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_main_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_nested2_ps_1b_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_main_pd_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_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_ps_server_main_1b_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_server_main_ps_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_nested2_ps_1b_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_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_main_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_jsa_security_group2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_ps_server_nested2_1b_port_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_pd_pattern4_test_nested_pattern_4_main_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.requests.rate_server_main_1c1_cmaui_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.requests.rate_server_main_1c1_cmaui_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_main_ps_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_nested2_ps_1b_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_2_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_main_pd_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_cmaui_port_1_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_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_main_pd_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_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
+ vcpus_server_nested2_1c1_cmaui_2_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.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_ps_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_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_ps_server_nested2_1b_port_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_nested2_1c1_cmaui_1_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_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_main_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_nested2_ps_1b_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_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_nested2_pd_1b_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.ephemeral.size_server_main_1c1_cmaui_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_pattern4_port_2_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_main_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.requests.rate_server_main_1c1_cmaui_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.rate_server_main_1c1_cmaui_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_main_ps_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
+ instance_server_main_pd_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
+ instance_server_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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.ephemeral.size_server_main_1c1_cmaui_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.capacity_server_main_1c1_cmaui_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_nested2_ps_1b_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_nested2_pd_1b_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_pd_pattern4_test_nested_pattern_4_main_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.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_1_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_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_main_1c1_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_main_1c1_cmaui_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2_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_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_main_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_pd_server_main_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_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.rate_server_nested2_1c1_cmaui_1_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_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_nested2_1c1_cmaui_2_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_nested2_1c1_cmaui_1_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_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_main_pd_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_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_main_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.rate_server_nested2_ps_1b_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_nested2_1c1_cmaui_1_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_main_pd_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_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_main_1b_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_server_pd_pattern4_test_nested_pattern_4_nested2_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_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_main_pd_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
+ endpoint_server_nested2_pd_1b_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_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_nested2_pd_1b_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_pd_server_main_1b_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_pd_pattern4_test_nested_pattern_4_main_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_main_1c1_cmaui_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
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_main_1c1_cmaui_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_server_nested2_ps_1b_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_main_1c1_cmaui_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
+ memory.usage_server_nested2_1c1_cmaui_2_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_1_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_nested2_pd_1b_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_nested2_ps_1b_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_pd_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_main_1b_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_cmaui_port_2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pd_server_main_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_server_main_1c1_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_nested2_pd_1b_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_main_1c1_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_main_ps_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_main_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_server_pd_pattern4_test_nested_pattern_4_nested2_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_main_1c1_cmaui_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
+ feature_server_pd_pattern4_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_main_1c1_cmaui_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
+ scalable_server_nested2_1c1_cmaui_2_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_main_1b_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_nested2_pd_1b_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_pd_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ host_server_main_ps_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_main_ps_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_main_1c1_cmaui_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.root.size_server_main_1c1_cmaui_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_main_1c1_cmaui_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_main_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_nested2_1b_port_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_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_1c1_cmaui_2_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_nested2_pd_1b_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_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_pattern4_test_nested_pattern_4_main_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
+ disk.device.write.requests.rate_server_nested2_pd_1b_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.rate_server_main_1c1_cmaui_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_server_main_ps_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_main_1c1_cmaui_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
+ binding_ps_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_util_server_nested2_pd_1b_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_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_main_1c1_cmaui_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_server_main_ps_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_main_ps_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_nested2_1c1_cmaui_1_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_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.requests.rate_server_nested2_1c1_cmaui_2_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_ps_server_main_1b_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_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_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_pd_pattern4_test_nested_pattern_4_main_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_server_nested2_ps_1b_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_1c1_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_main_1c1_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_nested2_ps_1b_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_nested2_pd_1b_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_nested2_1c1_cmaui_1_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_nested2_ps_1b_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_main_ps_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_ps_server_nested2_1b_port_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_nested2_1c1_cmaui_1_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_main_1c1_cmaui_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_server_main_1c1_cmaui_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.latency_server_main_1c1_cmaui_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_main_1c1_cmaui_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_main_ps_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_nested2_1c1_cmaui_1_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_nested2_1c1_cmaui_2_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_pd_pattern4_test_nested_pattern_4_main_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_ps_server_main_1b_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_server_nested2_pd_1b_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_main_ps_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file_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_main_1c1_cmaui_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_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_nested2_1c1_cmaui_1_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_main_1c1_cmaui_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_main_ps_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_server_main_1c1_cmaui_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_pd_pattern4_test_nested_pattern_4_nested2_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_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_nested2_1c1_cmaui_1_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_nested2_ps_1b_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_nested2_ps_1b_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_pd_server_pattern4_port_2_test_nested_pattern_4_main_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_ps_server_main_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_main_ps_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_main_ps_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_pd_pattern4_test_nested_pattern_4_nested2_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_main_ps_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_cmaui_port_1_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_main_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.delta_server_nested2_1c1_cmaui_1_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_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_pd_pattern4_test_nested_pattern_4_nested2_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.ps_server_main_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_main_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_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
+ port_ps_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_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_ps_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_main_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_main_1b_ps_server_main_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_main_1b_ps_server_main_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server_main_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server_main_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.write.requests_ps_server_main_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_ps_server_main_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.capacity_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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
+ instance_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_ps_server_main_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_ps_server_main_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_ps_server_main_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
+ endpoint_ps_server_main_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server_main_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_ps_server_main_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_ps_server_main_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.rate_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_ps_server_main_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_ps_server_main_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests_ps_server_main_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_ps_server_main_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.delta_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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.root.size_ps_server_main_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_ps_server_main_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
+ org.openecomp.resource.abstract.nodes.heat.nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_1c1_nested2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_nested2_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ ps_server_nested2_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: security_group_name
+ required: true
+ status: SUPPORTED
+ pd_server_nested2_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+ required: true
+ status: SUPPORTED
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ required: true
+ status: SUPPORTED
+ ps_server_nested2_1b_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_nested2_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_nested2_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_nested2_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ pd_server_nested2_1b_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ name:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ pd_server_nested2_1b_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ ps_server_nested2_1b_image:
+ type: string
+ description: Ps Image server
+ 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_nested2_ps_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_ps_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group1_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group1_test_resourceGroup:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group2_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group2_test_resourceGroup:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_nested2_1c1_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_1c1_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_pattern4_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ 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_jsa_security_group1_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group1_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group2_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group2_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_nested2_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_nested2_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_nested2_1c1_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_1c1_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_nested2_pd_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_nested2_pd_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_nested2_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_nested2_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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:
+ instance_server_nested2_1c1_cmaui_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.allocation_server_nested2_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1b_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_nested2_pd_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_nested2_pd_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_pd_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_server_nested2_1c1_cmaui_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.latency_server_nested2_1c1_cmaui_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
+ memory.usage_server_nested2_1c1_cmaui_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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_1c1_cmaui_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.latency_server_nested2_1c1_cmaui_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_server_nested2_ps_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_server_nested2_pd_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_ps_server_nested2_1b_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.resident_server_nested2_ps_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_pd_server_nested2_1b_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_server_nested2_1c1_cmaui_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.bytes_server_nested2_1c1_cmaui_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_server_nested2_pd_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_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_nested2_pd_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_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.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_ps_server_nested2_1b_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1c1_cmaui_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.rate_server_nested2_1c1_cmaui_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_ps_server_nested2_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.iops_server_nested2_ps_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_nested2_pd_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_pd_server_nested2_1b_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_nested2_pd_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
+ host_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_nested2_1c1_cmaui_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.capacity_server_nested2_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_ps_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_nested2_pd_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_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
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_ps_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_ps_server_nested2_1b_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_pd_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_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.write.requests.rate_server_nested2_pd_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_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_nested2_1c1_cmaui_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.usage_server_nested2_ps_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_nested2_1c1_cmaui_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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_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
+ disk.device.write.bytes.rate_server_nested2_1c1_cmaui_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_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_nested2_ps_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_ps_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_server_nested2_pd_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_jsa_security_group1_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_nested2_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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.rate_server_nested2_1c1_cmaui_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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_nested2_1c1_cmaui_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.root.size_server_nested2_pd_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_ps_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_nested2_1c1_cmaui_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.rate_server_nested2_1c1_cmaui_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_server_nested2_ps_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_nested2_1b_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_1c1_cmaui_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
+ vcpus_server_nested2_ps_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_nested2_1c1_cmaui_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.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_ps_server_nested2_1b_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_nested2_pd_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_nested2_ps_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_nested2_ps_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_nested2_1c1_cmaui_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_nested2_ps_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_nested2_pd_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_nested2_pd_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_pd_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.capacity_server_nested2_ps_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_server_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_nested2_ps_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_server_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_nested2_1b_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_pd_server_nested2_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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
+ disk.ephemeral.size_server_nested2_pd_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_nested2_pd_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_pd_server_nested2_1b_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_server_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_ps_server_nested2_1b_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_server_nested2_ps_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_nested2_1c1_cmaui_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.latency_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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_nested2_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_pd_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_nested2_1b_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_ps_server_nested2_1b_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_server_nested2_1c1_cmaui_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
+ binding_ps_server_nested2_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ host_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_nested2_pd_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_nested2_ps_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.delta_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_nested2_1c1_cmaui_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.delta_server_nested2_1c1_cmaui_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_nested2_pd_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_nested2_ps_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.capacity_server_nested2_pd_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_server_nested2_pd_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.root.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_nested2_1c1_cmaui_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
+ feature_jsa_security_group1_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_1c1_cmaui_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_nested2_ps_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_nested2_pd_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_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_1c1_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ 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.requests.rate_server_nested2_ps_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_ps_server_nested2_1b_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_nested2_pd_1b:
+ type: tosca.capabilities.network.Bindable
+ 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
+ feature_jsa_security_group2_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested_pattern_4_nested2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_nested2_ps_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
+ endpoint_server_nested2_1c1_cmaui_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_nested2_pd_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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_nested2_pd_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_pd_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_ps_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_jsa_security_group2_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_nested2_pd_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_ps_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_nested2_1c1_cmaui_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.rate_server_nested2_1c1_cmaui_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.requests_server_nested2_1c1_cmaui_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_1c1_cmaui_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
+ instance_server_nested2_pd_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_nested2_1c1_cmaui_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_nested2_1c1_cmaui_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_nested2_1c1_cmaui_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_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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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
+ disk.device.write.bytes_server_nested2_1c1_cmaui_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_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_nested2_1c1_cmaui_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_nested2_1c1_cmaui_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.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1c1_cmaui_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.requests_server_nested2_1c1_cmaui_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
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_nested2_ps_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_test_nested_pattern_4_nested2:
+ type: org.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.allocation_server_nested2_pd_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_server_nested2_ps_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_nested2_ps_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.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_1c1_cmaui_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.root.size_server_nested2_1c1_cmaui_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_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_pd_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_nested2_1c1_cmaui_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_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.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_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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
+ feature_ps_server_nested2_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_nested2_1c1_cmaui_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_nested2_pd_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_nested2_1c1_cmaui_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_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ 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_nested2_1c1_cmaui_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_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1c1_cmaui_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
+ vcpus_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.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.requests_server_nested2_ps_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
+ endpoint_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_nested2_pd_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_server_nested2_ps_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_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ type: org.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_nested2_1c1_cmaui_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.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_pd_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_nested2_1c1_cmaui_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_server_nested2_1c1_cmaui_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_nested2_ps_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_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
+ host_server_nested2_pd_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_nested2_pd_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_nested2_pd_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_pd_server_nested2_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_ps_server_nested2_1b_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_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.capabilities.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_nested2_pd_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_nested2_ps_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
+ type: org.openecomp.capabilities.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_nested2_ps_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_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_nested2_pd_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ type: org.openecomp.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_nested2_1b_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_server_nested2_1c1_cmaui_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.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ type: org.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_nested2_ps_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_nested2_1c1_cmaui_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
+ org.openecomp.resource.abstract.nodes.pd_server_main_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_main_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
+ port_pd_server_main_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pd_server_main_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_main_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_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_pd_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_pd_server_main_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pd_server_main_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_main_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_main_1b_pd_server_main_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_main_1b_pd_server_main_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_pd_server_main_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_pd_server_main_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_pd_server_main_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.capacity_pd_server_main_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_pd_server_main_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_server_main_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_pd_server_main_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_pd_server_main_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_server_main_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
+ host_pd_server_main_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_main_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server_main_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.root.size_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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.iops_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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
+ org.openecomp.resource.abstract.nodes.pd_server_main_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_main_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
+ port_pd_server_main_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pd_server_main_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_main_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_main_b_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_pd_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_pd_server_main_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pd_server_main_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_main_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_main_1b_pd_server_main_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_main_1b_pd_server_main_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_pd_server_main_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_pd_server_main_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_pd_server_main_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.capacity_pd_server_main_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_pd_server_main_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_server_main_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_pd_server_main_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_pd_server_main_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_server_main_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
+ host_pd_server_main_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_main_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b_pd_server_main_b_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_pd_server_main_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server_main_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.root.size_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_1b_pd_server_main_b_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.iops_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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_pd_server_main_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
+ org.openecomp.resource.abstract.nodes.heat.nested3:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ p1:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ indx:
+ type: string
+ description: nested parameter
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: string
+ description: security_group_name
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_jsa_security_group1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group1:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_jsa_security_group2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - port_jsa_security_group2:
+ capability: tosca.capabilities.Attachment
+ node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ relationship: org.openecomp.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ feature_jsa_security_group2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_jsa_security_group1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.ps_server_main_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_server_main_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_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
+ port_ps_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_ps_server_main_b_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_ps_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_main_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_main_1b_ps_server_main_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_main_1b_ps_server_main_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server_main_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server_main_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.write.requests_ps_server_main_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_ps_server_main_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.capacity_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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
+ instance_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_ps_server_main_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_ps_server_main_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_ps_server_main_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
+ endpoint_ps_server_main_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server_main_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_ps_server_main_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_ps_server_main_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.rate_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_ps_server_main_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_ps_server_main_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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_ps_server_main_1b_ps_server_main_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests_ps_server_main_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_ps_server_main_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.delta_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_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_ps_server_main_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_server_main_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_1b_ps_server_main_b_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_ps_server_main_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.root.size_ps_server_main_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_ps_server_main_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
+ org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_nested2_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_cmaui_1c1_nested2_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_cmaui_1c1_nested2_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_nested2_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1_nested2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1_nested2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ feature_cmaui_1c1_nested2_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_cmaui_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_cmaui_1c1_nested2:
+ type: org.openecomp.capabilities.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_cmaui_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_1c1_nested2_cmaui_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_cmaui_1c1_nested2:
+ type: org.openecomp.capabilities.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.openecomp.capabilities.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_cmaui_1c1_nested2:
+ type: org.openecomp.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_1c1_nested2:
+ type: org.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_1c1_nested2_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_cmaui_1c1_nested2:
+ type: org.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_1c1_nested2_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_cmaui_1c1_nested2:
+ type: org.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_1c1_nested2:
+ type: org.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.ps_server_nested2_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_nested_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_nested_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_nested_b_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_ps_server_nested2_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_nested_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_ps_server_nested2_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_nested_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_ps_server_nested_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_nested_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_nested_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_nested_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_nested_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_nested_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_nested2_1b_ps_server_nested_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_nested2_1b_ps_server_nested_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server_nested2_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server_nested2_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.read.bytes.rate_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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.iops_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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.delta_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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
+ host_ps_server_nested2_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.requests.rate_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_ps_server_nested2_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
+ endpoint_ps_server_nested2_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_ps_server_nested2_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_ps_server_nested2_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server_nested2_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_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_ps_server_nested2_1b_ps_server_nested_b_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.cmaui_1c1_main:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_main_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_cmaui_1c1_main_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_1c1_main_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_main_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1_main:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1_main:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.iops_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_cmaui_1c1_main:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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.resident_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main_cmaui_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_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_cmaui_1c1_main:
+ type: org.openecomp.capabilities.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_cmaui_1c1_main:
+ type: org.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_1c1_main_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.usage_cmaui_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_cmaui_1c1_main:
+ type: org.openecomp.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_1c1_main:
+ type: org.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_1c1_main:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_cmaui_1c1_main:
+ type: org.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.pd_server_pattern4_3:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ pd_server_pattern4_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_pattern4_port_2_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_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
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_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: *id001
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_image:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_pattern4_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema: *id002
+ attributes:
+ pattern4_attr_1:
+ type: string
+ description: pattern4_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_server_pd_pattern4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_pattern4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pattern4_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.allocation_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pd_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pattern4_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_pattern4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.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_pattern4:
+ type: org.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_pattern4:
+ type: org.openecomp.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_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pattern4_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_pd_server_pattern4_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_pattern4_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_pattern4_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_server_pd_pattern4:
+ type: org.openecomp.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_pattern4_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_pd_server_pattern4_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.bytes.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pattern4:
+ type: org.openecomp.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_pattern4_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.bytes.rate_pd_server_pattern4_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.usage_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pattern4:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_pattern4:
+ type: org.openecomp.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_pd_pattern4:
+ type: org.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_pd_pattern4:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pattern4_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.rate_pd_server_pattern4_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.rate_server_pd_pattern4:
+ type: org.openecomp.capabilities.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_pd_pattern4:
+ type: org.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_pattern4_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pattern4_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_pd_server_pattern4_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.requests_server_pd_pattern4:
+ type: org.openecomp.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_pd_server_pattern4_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_pd_server_pattern4_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_pd_server_pattern4_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.capacity_server_pd_pattern4:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
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
new file mode 100644
index 0000000000..ff988d4835
--- /dev/null
+++ 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
@@ -0,0 +1,322 @@
+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:
+ ps_server_main_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ cmaui_1c1_main_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ contrail_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of contrail v2 network
+ ps_server_main_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ ps_server_main_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa network
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ pd_server_main_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ cmaui_1c1_main_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ pd_server_main_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ cmaui_1c1_main_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_main_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_main_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ pd_server_main_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server_main_1b_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server_main_1b_1
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_main_1b_availability_zone:
+ - get_input: availability_zone_0
+ port_pd_server_main_b_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: pd_server_main_1b_flavor
+ port_pd_server_main_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_main_1b_ips
+ - 0
+ port_pd_server_main_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_server_main_1b_image
+ port_pd_server_main_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_pd_server_main_1b_name:
+ - get_input:
+ - pd_server_main_1b_names
+ - 0
+ port_pd_server_main_b_port_network:
+ - get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_main_1b_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server_main_1b_1:
+ type: org.openecomp.resource.abstract.nodes.ps_server_main_1b_1
+ directives:
+ - substitutable
+ properties:
+ compute_ps_server_main_1b_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_main_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_main_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: ps_server_main_1b_flavor
+ port_ps_server_main_b_port_network:
+ - get_input: jsa_name
+ port_ps_server_main_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_ps_server_main_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_main_1b_ips
+ - 0
+ vm_image_name:
+ get_input: ps_server_main_1b_image
+ compute_ps_server_main_1b_name:
+ - get_input:
+ - ps_server_main_1b_names
+ - 1
+ service_template_filter:
+ substitute_service_template: Nested_ps_server_main_1b_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - dependency_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:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ name:
+ get_input: security_group_name
+ test_nested_no_compute:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1-no-compute
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested1-no-computeServiceTemplate.yaml
+ name:
+ get_input: jsa_net_name
+ requirements:
+ - dependency:
+ capability: feature_pd_server_main_1b
+ node: abstract_pd_server_main_1b_1
+ relationship: tosca.relationships.DependsOn
+ abstract_cmaui_1c1_main_1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main_1
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - get_input: contrail_net_name
+ port_cmaui_port_network_role_tag: contrail
+ vm_flavor_name:
+ get_input: cmaui_1c1_main_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_main_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_main_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ compute_cmaui_1c1_main_name:
+ - get_input:
+ - cmaui_1c1_main_names
+ - 1
+ - get_input:
+ - cmaui_1c1_main_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1_main_1ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - dependency_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.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ port_pd_server_pattern4_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ name:
+ get_input: security_group_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
+ - test_nested1Level_duplicate_same_file
+ - test_nested_no_compute
+ - test_nested_pattern_4_main_0
+ - abstract_pd_server_main_1b_1
+ - abstract_ps_server_main_1b_1
+ - abstract_cmaui_1c1_main_1
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/Nested_cmaui_1c1_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/Nested_cmaui_1c1_mainServiceTemplate.yaml
new file mode 100644
index 0000000000..fa347fbf57
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_cmaui_1c1_mainServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1_main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_main:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_main_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_cmaui_1c1_main_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_1c1_main_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1_main
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1_main:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_main
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_main_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_main_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main
+ capabilities:
+ disk.device.iops_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.iops
+ disk.device.write.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.bytes.rate
+ binding_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - binding
+ cpu_util_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu_util
+ disk.write.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.requests
+ disk.latency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.latency
+ network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.bytes.rate
+ disk.read.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.requests
+ endpoint_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - endpoint
+ disk.device.read.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.bytes.rate
+ disk.iops_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.iops
+ disk.device.read.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.requests.rate
+ disk.write.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.bytes
+ disk.device.read.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.requests
+ attachment_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - attachment
+ instance_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - instance
+ disk.device.write.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.bytes
+ vcpus_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - vcpus
+ disk.read.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.bytes.rate
+ disk.device.capacity_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.capacity
+ disk.device.write.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.requests
+ disk.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.usage
+ network.incoming.bytes_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.bytes
+ disk.device.read.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.bytes
+ network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.bytes.rate
+ memory.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory.usage
+ network.outpoing.packets_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outpoing.packets
+ memory.resident_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory.resident
+ cpu.delta_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu.delta
+ disk.capacity_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.capacity
+ disk.ephemeral.size_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.ephemeral.size
+ network.incoming.packets_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.packets
+ disk.write.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.requests.rate
+ feature_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - feature
+ network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.packets.rate
+ disk.root.size_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.root.size
+ host_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - host
+ network.incoming.packets.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.packets.rate
+ disk.write.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.bytes.rate
+ network.outgoing.bytes_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.bytes
+ memory_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory
+ scalable_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - scalable
+ cpu_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu
+ disk.device.allocation_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.allocation
+ binding_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - binding
+ disk.device.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.usage
+ os_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - os
+ disk.device.latency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.latency
+ disk.read.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.bytes
+ feature_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - feature
+ disk.allocation_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.allocation
+ requirements:
+ dependency_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - dependency
+ link_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - link
+ local_storage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - local_storage
+ dependency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - dependency
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/Nested_cmaui_1c1_main_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_cmaui_1c1_main_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..5ea692050e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_cmaui_1c1_main_1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1_main_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_main:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_main_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_cmaui_1c1_main_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_1c1_main_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1_main
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1_main:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_main
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_main_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_main_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main_1
+ capabilities:
+ disk.device.iops_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.iops
+ disk.device.write.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.bytes.rate
+ binding_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - binding
+ cpu_util_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu_util
+ disk.write.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.requests
+ disk.latency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.latency
+ network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.bytes.rate
+ disk.read.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.requests
+ endpoint_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - endpoint
+ disk.device.read.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.bytes.rate
+ disk.iops_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.iops
+ disk.device.read.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.requests.rate
+ disk.write.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.bytes
+ disk.device.read.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.requests
+ attachment_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - attachment
+ instance_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - instance
+ disk.device.write.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.bytes
+ vcpus_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - vcpus
+ disk.read.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.bytes.rate
+ disk.device.capacity_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.capacity
+ disk.device.write.requests_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.write.requests
+ disk.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.usage
+ network.incoming.bytes_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.bytes
+ disk.device.read.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.read.bytes
+ network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.bytes.rate
+ memory.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory.usage
+ network.outpoing.packets_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outpoing.packets
+ memory.resident_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory.resident
+ cpu.delta_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu.delta
+ disk.capacity_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.capacity
+ disk.ephemeral.size_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.ephemeral.size
+ network.incoming.packets_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.packets
+ disk.write.requests.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.requests.rate
+ feature_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - feature
+ network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.packets.rate
+ disk.root.size_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.root.size
+ host_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - host
+ network.incoming.packets.rate_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.incoming.packets.rate
+ disk.write.bytes.rate_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.write.bytes.rate
+ network.outgoing.bytes_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - network.outgoing.bytes
+ memory_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - memory
+ scalable_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - scalable
+ cpu_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - cpu
+ disk.device.allocation_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.allocation
+ binding_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - binding
+ disk.device.usage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.usage
+ os_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - os
+ disk.device.latency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.device.latency
+ disk.read.bytes_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.read.bytes
+ feature_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - feature
+ disk.allocation_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - disk.allocation
+ requirements:
+ dependency_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - dependency
+ link_cmaui_1c1_main_cmaui_port:
+ - cmaui_1c1_main_cmaui_port
+ - link
+ local_storage_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - local_storage
+ dependency_cmaui_1c1_main:
+ - cmaui_1c1_main
+ - dependency
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/Nested_cmaui_1c1_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/Nested_cmaui_1c1_nested2ServiceTemplate.yaml
new file mode 100644
index 0000000000..01cb3e6096
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_cmaui_1c1_nested2ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1_nested2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_nested2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_nested2_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ compute_cmaui_1c1_nested2_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ cmaui_1c1_nested2_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1_nested2
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1_nested2:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_nested2
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_nested2_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_nested2_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2
+ capabilities:
+ feature_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - feature
+ disk.device.write.bytes.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.write.bytes.rate
+ disk.device.read.requests.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.read.requests.rate
+ disk.write.bytes_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.write.bytes
+ disk.capacity_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.capacity
+ disk.device.capacity_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.capacity
+ network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.outgoing.packets.rate
+ vcpus_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - vcpus
+ disk.device.write.requests_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.write.requests
+ feature_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - feature
+ disk.usage_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.usage
+ disk.read.bytes_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.read.bytes
+ network.outpoing.packets_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.outpoing.packets
+ scalable_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - scalable
+ network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.outgoing.bytes
+ instance_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - instance
+ network.incoming.bytes_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.incoming.bytes
+ endpoint_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - endpoint
+ cpu.delta_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - cpu.delta
+ disk.device.read.bytes.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.read.bytes.rate
+ disk.device.iops_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.iops
+ disk.device.read.bytes_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.read.bytes
+ disk.device.write.requests.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.write.bytes
+ network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.incoming.packets.rate
+ host_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - host
+ disk.device.latency_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.latency
+ network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.incoming.bytes.rate
+ disk.write.bytes.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.write.bytes.rate
+ binding_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - binding
+ memory_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - memory
+ disk.allocation_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.allocation
+ disk.device.usage_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.usage
+ disk.ephemeral.size_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.ephemeral.size
+ disk.read.requests_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.read.requests
+ network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.outgoing.bytes.rate
+ os_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - os
+ network.incoming.packets_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - network.incoming.packets
+ disk.write.requests.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.write.requests.rate
+ disk.device.read.requests_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.read.requests
+ disk.root.size_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.root.size
+ memory.usage_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - memory.usage
+ memory.resident_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - memory.resident
+ cpu_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - cpu
+ disk.read.bytes.rate_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.read.bytes.rate
+ disk.device.allocation_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.device.allocation
+ disk.latency_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.latency
+ binding_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - binding
+ disk.iops_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.iops
+ attachment_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - attachment
+ disk.write.requests_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - disk.write.requests
+ cpu_util_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - cpu_util
+ requirements:
+ link_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - link
+ dependency_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - dependency
+ local_storage_cmaui_1c1_nested2:
+ - cmaui_1c1_nested2
+ - local_storage
+ dependency_cmaui_1c1_nested2_cmaui_port:
+ - cmaui_1c1_nested2_cmaui_port
+ - dependency
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/Nested_pd_server_main_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_main_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..fd6f3d63a5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_main_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_main_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_main_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_main_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd_server_main_b_port_order:
+ type: integer
+ required: true
+ compute_pd_server_main_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_main_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_pd_server_main_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server_main_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_main_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_main_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_main_1b_name
+ - index_value
+ pd_server_main_1b_pd_server_main_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_main_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_main_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_main_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_main_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_main_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_main_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_main_b_port_order
+ network_role:
+ get_input: port_pd_server_main_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_main_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_main_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_main_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_main_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_main_1b
+ capabilities:
+ disk.write.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.bytes
+ disk.device.capacity_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.capacity
+ disk.device.write.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.requests
+ disk.capacity_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.capacity
+ feature_pd_server_main_1b:
+ - pd_server_main_1b
+ - feature
+ disk.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.usage
+ disk.read.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.bytes
+ scalable_pd_server_main_1b:
+ - pd_server_main_1b
+ - scalable
+ network.incoming.packets.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.packets.rate
+ endpoint_pd_server_main_1b:
+ - pd_server_main_1b
+ - endpoint
+ attachment_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - attachment
+ instance_pd_server_main_1b:
+ - pd_server_main_1b
+ - instance
+ host_pd_server_main_1b:
+ - pd_server_main_1b
+ - host
+ network.outpoing.packets_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outpoing.packets
+ cpu.delta_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu.delta
+ binding_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - binding
+ disk.device.read.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.bytes
+ disk.device.read.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.bytes
+ disk.device.iops_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.iops
+ disk.device.write.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.requests.rate
+ network.outgoing.packets.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.packets.rate
+ disk.device.write.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.bytes
+ disk.device.latency_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.latency
+ feature_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - feature
+ binding_pd_server_main_1b:
+ - pd_server_main_1b
+ - binding
+ disk.write.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.bytes.rate
+ disk.ephemeral.size_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.ephemeral.size
+ disk.read.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.requests
+ disk.allocation_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.allocation
+ disk.device.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.usage
+ network.incoming.bytes.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.bytes.rate
+ disk.write.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.requests.rate
+ network.incoming.bytes_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.bytes.rate
+ os_pd_server_main_1b:
+ - pd_server_main_1b
+ - os
+ memory_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory
+ disk.root.size_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.root.size
+ memory.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory.usage
+ memory.resident_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory.resident
+ disk.latency_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.latency
+ disk.read.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.bytes.rate
+ disk.device.read.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.requests
+ disk.device.allocation_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.allocation
+ network.incoming.packets_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.packets
+ disk.iops_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.iops
+ vcpus_pd_server_main_1b:
+ - pd_server_main_1b
+ - vcpus
+ disk.write.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.requests
+ cpu_util_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu_util
+ cpu_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu
+ disk.device.write.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.requests.rate
+ requirements:
+ link_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - link
+ dependency_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - dependency
+ dependency_pd_server_main_1b:
+ - pd_server_main_1b
+ - dependency
+ local_storage_pd_server_main_1b:
+ - pd_server_main_1b
+ - local_storage
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/Nested_pd_server_main_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_main_1b_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..56e89cb733
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_main_1b_1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_main_1b_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_main_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_main_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd_server_main_b_port_order:
+ type: integer
+ required: true
+ compute_pd_server_main_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_main_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_pd_server_main_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_main_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server_main_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_main_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_main_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_main_1b_name
+ - index_value
+ pd_server_main_1b_pd_server_main_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_main_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_main_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_main_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_main_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_main_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_main_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_main_b_port_order
+ network_role:
+ get_input: port_pd_server_main_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_main_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_main_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_main_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_main_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_main_1b_1
+ capabilities:
+ disk.write.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.bytes
+ disk.device.capacity_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.capacity
+ disk.device.write.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.requests
+ disk.capacity_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.capacity
+ feature_pd_server_main_1b:
+ - pd_server_main_1b
+ - feature
+ disk.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.usage
+ disk.read.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.bytes
+ scalable_pd_server_main_1b:
+ - pd_server_main_1b
+ - scalable
+ network.incoming.packets.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.packets.rate
+ endpoint_pd_server_main_1b:
+ - pd_server_main_1b
+ - endpoint
+ attachment_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - attachment
+ instance_pd_server_main_1b:
+ - pd_server_main_1b
+ - instance
+ host_pd_server_main_1b:
+ - pd_server_main_1b
+ - host
+ network.outpoing.packets_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outpoing.packets
+ cpu.delta_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu.delta
+ binding_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - binding
+ disk.device.read.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.bytes
+ disk.device.read.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.bytes
+ disk.device.iops_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.iops
+ disk.device.write.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.requests.rate
+ network.outgoing.packets.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.packets.rate
+ disk.device.write.bytes_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.bytes
+ disk.device.latency_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.latency
+ feature_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - feature
+ binding_pd_server_main_1b:
+ - pd_server_main_1b
+ - binding
+ disk.write.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.bytes.rate
+ disk.ephemeral.size_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.ephemeral.size
+ disk.read.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.requests
+ disk.allocation_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.allocation
+ disk.device.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.usage
+ network.incoming.bytes.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.bytes.rate
+ disk.write.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.requests.rate
+ network.incoming.bytes_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.outgoing.bytes.rate
+ os_pd_server_main_1b:
+ - pd_server_main_1b
+ - os
+ memory_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory
+ disk.root.size_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.root.size
+ memory.usage_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory.usage
+ memory.resident_pd_server_main_1b:
+ - pd_server_main_1b
+ - memory.resident
+ disk.latency_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.latency
+ disk.read.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.read.bytes.rate
+ disk.device.read.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.requests
+ disk.device.allocation_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.allocation
+ network.incoming.packets_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - network.incoming.packets
+ disk.iops_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.iops
+ vcpus_pd_server_main_1b:
+ - pd_server_main_1b
+ - vcpus
+ disk.write.requests_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.write.requests
+ cpu_util_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu_util
+ cpu_pd_server_main_1b:
+ - pd_server_main_1b
+ - cpu
+ disk.device.write.bytes.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_main_1b:
+ - pd_server_main_1b
+ - disk.device.read.requests.rate
+ requirements:
+ link_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - link
+ dependency_pd_server_main_1b_pd_server_main_b_port:
+ - pd_server_main_1b_pd_server_main_b_port
+ - dependency
+ dependency_pd_server_main_1b:
+ - pd_server_main_1b
+ - dependency
+ local_storage_pd_server_main_1b:
+ - pd_server_main_1b
+ - local_storage
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/Nested_pd_server_nested2_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_nested2_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..6b763621d4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_pd_server_nested2_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_nested2_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_nested2_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_nested_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_nested_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd_server_nested_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_nested_b_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_nested_b_port_subnetpoolid:
+ type: string
+ required: true
+ compute_pd_server_nested2_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_nested2_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_nested_b_port_order:
+ type: integer
+ required: true
+ port_pd_server_nested_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_nested_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_nested_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_nested_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_nested_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ node_templates:
+ pd_server_nested2_1b_pd_server_nested_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_nested_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_nested_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_nested_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_nested_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_nested_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_nested_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_nested_b_port_order
+ network_role:
+ get_input: port_pd_server_nested_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_nested_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_nested_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_nested_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_nested2_1b
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_nested2_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_nested2_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_nested2_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_nested2_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_nested2_1b
+ capabilities:
+ cpu_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - cpu
+ disk.ephemeral.size_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.ephemeral.size
+ network.outgoing.packets.rate_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.outgoing.packets.rate
+ memory.usage_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - memory.usage
+ network.outgoing.bytes.rate_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.outgoing.bytes.rate
+ disk.write.bytes.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.write.bytes.rate
+ disk.device.iops_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.iops
+ disk.device.capacity_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.capacity
+ endpoint_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - endpoint
+ network.incoming.packets.rate_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.incoming.packets.rate
+ disk.device.read.requests.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.read.requests.rate
+ binding_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - binding
+ disk.write.requests_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.write.requests
+ memory_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - memory
+ disk.device.latency_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.latency
+ network.incoming.packets_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.incoming.packets
+ disk.device.write.bytes.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.write.bytes.rate
+ disk.iops_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.iops
+ os_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - os
+ disk.device.allocation_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.allocation
+ disk.usage_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.usage
+ disk.read.requests_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.read.requests
+ disk.root.size_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.root.size
+ disk.device.read.requests_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.read.requests
+ feature_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - feature
+ network.incoming.bytes.rate_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.incoming.bytes.rate
+ disk.capacity_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.capacity
+ disk.write.bytes_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.write.bytes
+ binding_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - binding
+ attachment_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - attachment
+ instance_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - instance
+ disk.device.write.requests_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.write.requests
+ disk.device.read.bytes_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.read.bytes
+ feature_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - feature
+ disk.write.requests.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.write.requests.rate
+ disk.read.bytes_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.read.bytes
+ network.outgoing.bytes_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.outgoing.bytes
+ cpu.delta_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - cpu.delta
+ vcpus_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - vcpus
+ disk.latency_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.latency
+ disk.device.write.bytes_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.write.bytes
+ cpu_util_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - cpu_util
+ network.incoming.bytes_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.incoming.bytes
+ disk.allocation_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.allocation
+ network.outpoing.packets_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - network.outpoing.packets
+ disk.device.write.requests.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.write.requests.rate
+ memory.resident_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - memory.resident
+ disk.device.read.bytes.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.read.bytes.rate
+ scalable_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - scalable
+ disk.device.usage_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.device.usage
+ disk.read.bytes.rate_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - disk.read.bytes.rate
+ host_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - host
+ requirements:
+ dependency_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - dependency
+ local_storage_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - local_storage
+ link_pd_server_nested2_1b_pd_server_nested_b_port:
+ - pd_server_nested2_1b_pd_server_nested_b_port
+ - link
+ dependency_pd_server_nested2_1b:
+ - pd_server_nested2_1b
+ - dependency
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/Nested_ps_server_main_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_main_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..99e9b836b4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_main_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server_main_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server_main_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_main_b_port_network_role:
+ type: string
+ required: true
+ compute_ps_server_main_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_main_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_order:
+ type: integer
+ required: true
+ port_ps_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_main_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ ps_server_main_1b_ps_server_main_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_main_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_main_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_main_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_main_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_main_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_main_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_main_b_port_order
+ network_role:
+ get_input: port_ps_server_main_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_main_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_main_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_main_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server_main_1b
+ relationship: tosca.relationships.network.BindsTo
+ ps_server_main_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server_main_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_main_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_main_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server_main_1b
+ capabilities:
+ disk.device.write.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.requests
+ disk.device.capacity_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.capacity
+ disk.capacity_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.capacity
+ network.incoming.packets.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.packets.rate
+ disk.device.read.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.bytes
+ vcpus_ps_server_main_1b:
+ - ps_server_main_1b
+ - vcpus
+ network.incoming.bytes_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.bytes
+ cpu_util_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu_util
+ disk.device.write.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.bytes.rate
+ disk.device.read.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.requests.rate
+ disk.device.write.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.requests.rate
+ cpu_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu
+ instance_ps_server_main_1b:
+ - ps_server_main_1b
+ - instance
+ disk.read.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.bytes.rate
+ disk.latency_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.latency
+ disk.device.read.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.requests
+ memory.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory.usage
+ disk.write.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.requests.rate
+ scalable_ps_server_main_1b:
+ - ps_server_main_1b
+ - scalable
+ disk.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.usage
+ disk.read.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.bytes
+ disk.ephemeral.size_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.ephemeral.size
+ endpoint_ps_server_main_1b:
+ - ps_server_main_1b
+ - endpoint
+ os_ps_server_main_1b:
+ - ps_server_main_1b
+ - os
+ disk.write.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.bytes
+ network.incoming.packets_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.packets
+ feature_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - feature
+ disk.device.write.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.bytes
+ disk.device.latency_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.latency
+ disk.write.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.bytes.rate
+ network.outgoing.bytes.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.bytes.rate
+ network.incoming.bytes.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.bytes.rate
+ binding_ps_server_main_1b:
+ - ps_server_main_1b
+ - binding
+ disk.device.read.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.bytes.rate
+ attachment_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - attachment
+ host_ps_server_main_1b:
+ - ps_server_main_1b
+ - host
+ network.outpoing.packets_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outpoing.packets
+ disk.device.iops_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.iops
+ binding_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - binding
+ disk.write.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.requests
+ memory.resident_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory.resident
+ cpu.delta_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu.delta
+ disk.read.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.requests
+ disk.iops_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.iops
+ disk.device.allocation_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.allocation
+ feature_ps_server_main_1b:
+ - ps_server_main_1b
+ - feature
+ disk.device.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.usage
+ network.outgoing.packets.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.packets.rate
+ network.outgoing.bytes_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.bytes
+ memory_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory
+ disk.root.size_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.root.size
+ disk.allocation_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.allocation
+ requirements:
+ dependency_ps_server_main_1b:
+ - ps_server_main_1b
+ - dependency
+ dependency_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - dependency
+ local_storage_ps_server_main_1b:
+ - ps_server_main_1b
+ - local_storage
+ link_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - link
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/Nested_ps_server_main_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_main_1b_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..b840bc59bc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_main_1b_1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server_main_1b_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server_main_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_main_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_main_b_port_network_role:
+ type: string
+ required: true
+ compute_ps_server_main_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_main_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_main_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_order:
+ type: integer
+ required: true
+ port_ps_server_main_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_main_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_main_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_main_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_main_b_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ ps_server_main_1b_ps_server_main_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_main_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_main_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_main_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_main_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_main_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_main_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_main_b_port_order
+ network_role:
+ get_input: port_ps_server_main_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_main_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_main_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_main_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server_main_1b
+ relationship: tosca.relationships.network.BindsTo
+ ps_server_main_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server_main_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_main_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_main_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server_main_1b_1
+ capabilities:
+ disk.device.write.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.requests
+ disk.device.capacity_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.capacity
+ disk.capacity_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.capacity
+ network.incoming.packets.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.packets.rate
+ disk.device.read.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.bytes
+ vcpus_ps_server_main_1b:
+ - ps_server_main_1b
+ - vcpus
+ network.incoming.bytes_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.bytes
+ cpu_util_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu_util
+ disk.device.write.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.bytes.rate
+ disk.device.read.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.requests.rate
+ disk.device.write.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.requests.rate
+ cpu_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu
+ instance_ps_server_main_1b:
+ - ps_server_main_1b
+ - instance
+ disk.read.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.bytes.rate
+ disk.latency_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.latency
+ disk.device.read.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.requests
+ memory.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory.usage
+ disk.write.requests.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.requests.rate
+ scalable_ps_server_main_1b:
+ - ps_server_main_1b
+ - scalable
+ disk.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.usage
+ disk.read.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.bytes
+ disk.ephemeral.size_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.ephemeral.size
+ endpoint_ps_server_main_1b:
+ - ps_server_main_1b
+ - endpoint
+ os_ps_server_main_1b:
+ - ps_server_main_1b
+ - os
+ disk.write.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.bytes
+ network.incoming.packets_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.packets
+ feature_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - feature
+ disk.device.write.bytes_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.write.bytes
+ disk.device.latency_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.latency
+ disk.write.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.bytes.rate
+ network.outgoing.bytes.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.bytes.rate
+ network.incoming.bytes.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.incoming.bytes.rate
+ binding_ps_server_main_1b:
+ - ps_server_main_1b
+ - binding
+ disk.device.read.bytes.rate_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.read.bytes.rate
+ attachment_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - attachment
+ host_ps_server_main_1b:
+ - ps_server_main_1b
+ - host
+ network.outpoing.packets_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outpoing.packets
+ disk.device.iops_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.iops
+ binding_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - binding
+ disk.write.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.write.requests
+ memory.resident_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory.resident
+ cpu.delta_ps_server_main_1b:
+ - ps_server_main_1b
+ - cpu.delta
+ disk.read.requests_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.read.requests
+ disk.iops_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.iops
+ disk.device.allocation_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.allocation
+ feature_ps_server_main_1b:
+ - ps_server_main_1b
+ - feature
+ disk.device.usage_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.device.usage
+ network.outgoing.packets.rate_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.packets.rate
+ network.outgoing.bytes_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - network.outgoing.bytes
+ memory_ps_server_main_1b:
+ - ps_server_main_1b
+ - memory
+ disk.root.size_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.root.size
+ disk.allocation_ps_server_main_1b:
+ - ps_server_main_1b
+ - disk.allocation
+ requirements:
+ dependency_ps_server_main_1b:
+ - ps_server_main_1b
+ - dependency
+ dependency_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - dependency
+ local_storage_ps_server_main_1b:
+ - ps_server_main_1b
+ - local_storage
+ link_ps_server_main_1b_ps_server_main_b_port:
+ - ps_server_main_1b_ps_server_main_b_port
+ - link
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/Nested_ps_server_nested2_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_nested2_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..01e6852416
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/Nested_ps_server_nested2_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server_nested2_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server_nested2_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_nested_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_nested_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_nested_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_ps_server_nested2_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_nested_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_ps_server_nested2_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_nested_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_ps_server_nested_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_nested_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_nested_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_nested_b_port_network_role:
+ type: string
+ required: true
+ port_ps_server_nested_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_nested_b_port_order:
+ type: integer
+ required: true
+ node_templates:
+ ps_server_nested2_1b_ps_server_nested_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_nested_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_nested_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_nested_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_nested_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_nested_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_nested_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_nested_b_port_order
+ network_role:
+ get_input: port_ps_server_nested_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_nested_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_nested_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_nested_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server_nested2_1b
+ relationship: tosca.relationships.network.BindsTo
+ ps_server_nested2_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server_nested2_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_nested2_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_nested2_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b
+ capabilities:
+ disk.device.read.bytes.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.read.bytes.rate
+ network.incoming.packets.rate_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.incoming.packets.rate
+ disk.iops_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.iops
+ vcpus_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - vcpus
+ network.outgoing.packets.rate_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.outgoing.packets.rate
+ instance_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - instance
+ network.incoming.packets_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.incoming.packets
+ disk.usage_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.usage
+ disk.allocation_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.allocation
+ disk.device.read.bytes_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.read.bytes
+ disk.read.bytes_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.read.bytes
+ disk.device.allocation_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.allocation
+ cpu.delta_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - cpu.delta
+ memory.resident_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - memory.resident
+ network.outpoing.packets_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.outpoing.packets
+ disk.ephemeral.size_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.ephemeral.size
+ host_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - host
+ disk.device.write.bytes_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.write.bytes
+ disk.write.bytes_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.write.bytes
+ disk.device.usage_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.usage
+ disk.read.bytes.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.read.bytes.rate
+ scalable_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - scalable
+ disk.write.requests.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.write.requests.rate
+ cpu_util_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - cpu_util
+ network.outgoing.bytes_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.outgoing.bytes
+ disk.read.requests_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.read.requests
+ disk.write.requests_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.write.requests
+ memory_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - memory
+ binding_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - binding
+ disk.device.read.requests.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.read.requests.rate
+ disk.device.latency_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.latency
+ feature_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - feature
+ network.incoming.bytes_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.incoming.bytes
+ disk.latency_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.latency
+ disk.device.write.requests.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.write.requests.rate
+ binding_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - binding
+ disk.write.bytes.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.write.bytes.rate
+ endpoint_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - endpoint
+ disk.device.capacity_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.capacity
+ feature_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - feature
+ disk.root.size_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.root.size
+ network.incoming.bytes.rate_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.write.requests
+ disk.device.iops_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.iops
+ attachment_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - attachment
+ os_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - os
+ disk.capacity_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.capacity
+ memory.usage_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - memory.usage
+ cpu_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - cpu
+ disk.device.read.requests_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.read.requests
+ disk.device.write.bytes.rate_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - disk.device.write.bytes.rate
+ network.outgoing.bytes.rate_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - network.outgoing.bytes.rate
+ requirements:
+ local_storage_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - local_storage
+ dependency_ps_server_nested2_1b:
+ - ps_server_nested2_1b
+ - dependency
+ link_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - link
+ dependency_ps_server_nested2_1b_ps_server_nested_b_port:
+ - ps_server_nested2_1b_ps_server_nested_b_port
+ - dependency
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/nested-pattern-4-same-typeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested-pattern-4-same-typeServiceTemplate.yaml
new file mode 100644
index 0000000000..c7fa924e21
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested-pattern-4-same-typeServiceTemplate.yaml
@@ -0,0 +1,425 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pattern-4-same-type
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_pattern4:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_server_pattern4_ips:
+ hidden: false
+ immutable: false
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ port_pd_server_pattern4_port_2_order:
+ type: integer
+ required: true
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ pd_server_pattern4_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ pd_server_pattern4_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ pd_server_pattern4_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ node_templates:
+ server_pd_pattern4:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_pattern4
+ properties:
+ flavor:
+ get_input: pd_server_pattern4_flavor
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: pd_server_pattern4_image
+ name:
+ get_input:
+ - pd_server_pattern4_names
+ - 0
+ pd_server_pattern4_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_pattern4_port_1_ip_requirements
+ network_role:
+ get_input: port_pd_server_pattern4_port_1_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_pattern4_ips
+ - 0
+ subnetpoolid:
+ get_input: port_pd_server_pattern4_port_1_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_pattern4_port_1_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_pattern4_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_pattern4_port_1_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_pattern4_port_1_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_pattern4_port_1_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_pattern4
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_pattern4_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_pattern4_port_2_ip_requirements
+ network_role:
+ get_input: port_pd_server_pattern4_port_2_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_pattern4_ips
+ - 1
+ subnetpoolid:
+ get_input: port_pd_server_pattern4_port_2_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_pattern4_port_2_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_pattern4_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_pattern4_port_2_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_pattern4_port_2_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_pattern4_port_2_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_pattern4
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pattern-4-same-type_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pattern-4-same-type.yml
+ description: nested1
+ members:
+ - server_pd_pattern4
+ - pd_server_pattern4_port_1
+ - pd_server_pattern4_port_2
+ outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: server_pd_pattern4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4_2
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.root.size
+ disk.device.write.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.bytes
+ network.outgoing.bytes_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.bytes
+ disk.allocation_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.allocation
+ disk.device.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.usage
+ network.outgoing.bytes_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.bytes
+ disk.write.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.bytes.rate
+ disk.ephemeral.size_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.ephemeral.size
+ cpu.delta_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu.delta
+ disk.write.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.bytes
+ feature_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - feature
+ feature_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - feature
+ disk.latency_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.latency
+ endpoint_server_pd_pattern4:
+ - server_pd_pattern4
+ - endpoint
+ attachment_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - attachment
+ attachment_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - attachment
+ feature_server_pd_pattern4:
+ - server_pd_pattern4
+ - feature
+ disk.device.read.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.requests.rate
+ instance_server_pd_pattern4:
+ - server_pd_pattern4
+ - instance
+ cpu_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu
+ disk.device.read.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.requests
+ host_server_pd_pattern4:
+ - server_pd_pattern4
+ - host
+ cpu_util_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu_util
+ memory.resident_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory.resident
+ disk.read.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.requests
+ disk.read.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.bytes.rate
+ disk.device.write.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.bytes.rate
+ disk.device.read.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.bytes
+ disk.write.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.requests
+ disk.device.write.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.requests.rate
+ memory.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory.usage
+ vcpus_server_pd_pattern4:
+ - server_pd_pattern4
+ - vcpus
+ disk.capacity_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.capacity
+ binding_server_pd_pattern4:
+ - server_pd_pattern4
+ - binding
+ network.outpoing.packets_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outpoing.packets
+ network.incoming.packets.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.packets.rate
+ network.incoming.bytes_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.bytes
+ disk.device.iops_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.iops
+ network.incoming.packets.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.packets.rate
+ network.incoming.bytes_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.bytes
+ disk.device.read.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.bytes.rate
+ disk.device.allocation_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.allocation
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.bytes.rate
+ disk.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.usage
+ disk.read.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.bytes
+ os_server_pd_pattern4:
+ - server_pd_pattern4
+ - os
+ memory_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory
+ disk.iops_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.iops
+ scalable_server_pd_pattern4:
+ - server_pd_pattern4
+ - scalable
+ binding_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - binding
+ network.incoming.bytes.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.bytes.rate
+ disk.write.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.requests.rate
+ disk.device.latency_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.latency
+ binding_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - binding
+ network.incoming.bytes.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.requests
+ network.incoming.packets_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.packets
+ network.outgoing.packets.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.packets.rate
+ network.incoming.packets_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.packets
+ disk.device.capacity_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.capacity
+ requirements:
+ dependency_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - dependency
+ local_storage_server_pd_pattern4:
+ - server_pd_pattern4
+ - local_storage
+ dependency_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - dependency
+ link_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - link
+ link_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - link
+ dependency_server_pd_pattern4:
+ - server_pd_pattern4
+ - dependency
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/nested-pattern-4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested-pattern-4ServiceTemplate.yaml
new file mode 100644
index 0000000000..de4d785b6f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested-pattern-4ServiceTemplate.yaml
@@ -0,0 +1,425 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pattern-4
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_pattern4:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pd_server_pattern4_ips:
+ hidden: false
+ immutable: false
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ port_pd_server_pattern4_port_2_order:
+ type: integer
+ required: true
+ port_pd_server_pattern4_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_pattern4_port_2_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ port_pd_server_pattern4_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_pattern4_port_1_network_role_tag:
+ type: string
+ required: true
+ pd_server_pattern4_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_pattern4_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_pattern4_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_pattern4_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ port_pd_server_pattern4_port_1_order:
+ type: integer
+ required: true
+ pd_server_pattern4_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_pattern4_port_1_network_role:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_network_role:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_pattern4_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_pattern4_port_2_subnetpoolid:
+ type: string
+ required: true
+ pd_server_pattern4_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ node_templates:
+ server_pd_pattern4:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_pattern4
+ properties:
+ flavor:
+ get_input: pd_server_pattern4_flavor
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: pd_server_pattern4_image
+ name:
+ get_input:
+ - pd_server_pattern4_names
+ - 0
+ pd_server_pattern4_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_pattern4_port_1_ip_requirements
+ network_role:
+ get_input: port_pd_server_pattern4_port_1_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_pattern4_ips
+ - 0
+ subnetpoolid:
+ get_input: port_pd_server_pattern4_port_1_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_pattern4_port_1_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_pattern4_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_pattern4_port_1_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_pattern4_port_1_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_pattern4_port_1_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_pattern4
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_pattern4_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_pattern4_port_2_ip_requirements
+ network_role:
+ get_input: port_pd_server_pattern4_port_2_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_pattern4_ips
+ - 1
+ subnetpoolid:
+ get_input: port_pd_server_pattern4_port_2_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_pattern4_port_2_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_pattern4_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_pattern4_port_2_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_pattern4_port_2_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_pattern4_port_2_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd_pattern4
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pattern-4_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pattern-4.yml
+ description: nested1
+ members:
+ - server_pd_pattern4
+ - pd_server_pattern4_port_1
+ - pd_server_pattern4_port_2
+ outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: server_pd_pattern4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
+ capabilities:
+ disk.root.size_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.root.size
+ disk.device.write.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.bytes
+ network.outgoing.bytes_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.bytes
+ disk.allocation_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.allocation
+ disk.device.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.usage
+ network.outgoing.bytes_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.bytes
+ disk.write.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.bytes.rate
+ disk.ephemeral.size_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.ephemeral.size
+ cpu.delta_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu.delta
+ disk.write.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.bytes
+ feature_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - feature
+ feature_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - feature
+ disk.latency_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.latency
+ endpoint_server_pd_pattern4:
+ - server_pd_pattern4
+ - endpoint
+ attachment_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - attachment
+ attachment_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - attachment
+ feature_server_pd_pattern4:
+ - server_pd_pattern4
+ - feature
+ disk.device.read.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.requests.rate
+ instance_server_pd_pattern4:
+ - server_pd_pattern4
+ - instance
+ cpu_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu
+ disk.device.read.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.requests
+ host_server_pd_pattern4:
+ - server_pd_pattern4
+ - host
+ cpu_util_server_pd_pattern4:
+ - server_pd_pattern4
+ - cpu_util
+ memory.resident_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory.resident
+ disk.read.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.requests
+ disk.read.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.bytes.rate
+ disk.device.write.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.bytes.rate
+ disk.device.read.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.bytes
+ disk.write.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.requests
+ disk.device.write.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.requests.rate
+ memory.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory.usage
+ vcpus_server_pd_pattern4:
+ - server_pd_pattern4
+ - vcpus
+ disk.capacity_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.capacity
+ binding_server_pd_pattern4:
+ - server_pd_pattern4
+ - binding
+ network.outpoing.packets_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outpoing.packets
+ network.incoming.packets.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.packets.rate
+ network.incoming.bytes_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.bytes
+ disk.device.iops_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.iops
+ network.incoming.packets.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.packets.rate
+ network.incoming.bytes_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.bytes
+ disk.device.read.bytes.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.read.bytes.rate
+ disk.device.allocation_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.allocation
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.bytes.rate
+ disk.usage_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.usage
+ disk.read.bytes_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.read.bytes
+ os_server_pd_pattern4:
+ - server_pd_pattern4
+ - os
+ memory_server_pd_pattern4:
+ - server_pd_pattern4
+ - memory
+ disk.iops_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.iops
+ scalable_server_pd_pattern4:
+ - server_pd_pattern4
+ - scalable
+ binding_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - binding
+ network.incoming.bytes.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.bytes.rate
+ disk.write.requests.rate_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.write.requests.rate
+ disk.device.latency_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.latency
+ binding_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - binding
+ network.incoming.bytes.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.requests_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.write.requests
+ network.incoming.packets_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - network.incoming.packets
+ network.outgoing.packets.rate_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.outgoing.packets.rate
+ network.incoming.packets_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - network.incoming.packets
+ disk.device.capacity_server_pd_pattern4:
+ - server_pd_pattern4
+ - disk.device.capacity
+ requirements:
+ dependency_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - dependency
+ local_storage_server_pd_pattern4:
+ - server_pd_pattern4
+ - local_storage
+ dependency_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - dependency
+ link_pd_server_pattern4_port_1:
+ - pd_server_pattern4_port_1
+ - link
+ link_pd_server_pattern4_port_2:
+ - pd_server_pattern4_port_2
+ - link
+ dependency_server_pd_pattern4:
+ - server_pd_pattern4
+ - dependency
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/nested1-no-computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1-no-computeServiceTemplate.yaml
new file mode 100644
index 0000000000..39ba825a1f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1-no-computeServiceTemplate.yaml
@@ -0,0 +1,165 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1-no-compute
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ ps_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ name:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ ps_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network:
+ get_input: net
+ pd_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network:
+ get_input: net
+ groups:
+ nested1-no-compute_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1-no-compute.yml
+ description: nested1-no-compute
+ members:
+ - ps_server_port
+ - pd_server_port
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1-no-compute
+ capabilities:
+ feature_ps_server_port:
+ - ps_server_port
+ - feature
+ network.outgoing.bytes_ps_server_port:
+ - ps_server_port
+ - network.outgoing.bytes
+ feature_pd_server_port:
+ - pd_server_port
+ - feature
+ network.outgoing.bytes.rate_ps_server_port:
+ - ps_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_port:
+ - pd_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes_pd_server_port:
+ - pd_server_port
+ - network.outgoing.bytes
+ network.outgoing.packets.rate_pd_server_port:
+ - pd_server_port
+ - network.outgoing.packets.rate
+ binding_pd_server_port:
+ - pd_server_port
+ - binding
+ network.incoming.packets.rate_ps_server_port:
+ - ps_server_port
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_ps_server_port:
+ - ps_server_port
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_ps_server_port:
+ - ps_server_port
+ - network.outgoing.packets.rate
+ binding_ps_server_port:
+ - ps_server_port
+ - binding
+ network.incoming.packets_pd_server_port:
+ - pd_server_port
+ - network.incoming.packets
+ network.incoming.bytes_pd_server_port:
+ - pd_server_port
+ - network.incoming.bytes
+ network.outpoing.packets_pd_server_port:
+ - pd_server_port
+ - network.outpoing.packets
+ network.outpoing.packets_ps_server_port:
+ - ps_server_port
+ - network.outpoing.packets
+ network.incoming.bytes_ps_server_port:
+ - ps_server_port
+ - network.incoming.bytes
+ attachment_ps_server_port:
+ - ps_server_port
+ - attachment
+ attachment_pd_server_port:
+ - pd_server_port
+ - attachment
+ network.incoming.packets_ps_server_port:
+ - ps_server_port
+ - network.incoming.packets
+ network.incoming.packets.rate_pd_server_port:
+ - pd_server_port
+ - network.incoming.packets.rate
+ network.incoming.bytes.rate_pd_server_port:
+ - pd_server_port
+ - network.incoming.bytes.rate
+ requirements:
+ dependency_ps_server_port:
+ - ps_server_port
+ - dependency
+ dependency_pd_server_port:
+ - pd_server_port
+ - dependency
+ link_pd_server_port:
+ - pd_server_port
+ - link
+ link_ps_server_port:
+ - ps_server_port
+ - link
+ binding_ps_server_port:
+ - ps_server_port
+ - binding
+ binding_pd_server_port:
+ - pd_server_port
+ - binding
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
new file mode 100644
index 0000000000..1a7f8816f3
--- /dev/null
+++ 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
@@ -0,0 +1,2323 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ ps_server_main_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ cmaui_1c1_main_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ contrail_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of contrail v2 network
+ ps_server_main_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ ps_server_main_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa network
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ pd_server_main_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ cmaui_1c1_main_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ pd_server_main_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ cmaui_1c1_main_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_main_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ name:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_main_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ pd_server_main_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ test_nested_pattern_4_main_1:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ port_pd_server_pattern4_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ abstract_ps_server_main_1b:
+ type: org.openecomp.resource.abstract.nodes.ps_server_main_1b
+ directives:
+ - substitutable
+ properties:
+ compute_ps_server_main_1b_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_main_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_main_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: ps_server_main_1b_flavor
+ port_ps_server_main_b_port_network:
+ - get_input: jsa_name
+ port_ps_server_main_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_ps_server_main_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_main_1b_ips
+ - 0
+ vm_image_name:
+ get_input: ps_server_main_1b_image
+ compute_ps_server_main_1b_name:
+ - get_input:
+ - ps_server_main_1b_names
+ - 1
+ service_template_filter:
+ substitute_service_template: Nested_ps_server_main_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_cmaui_1c1_main:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - get_input: contrail_net_name
+ port_cmaui_port_network_role_tag: contrail
+ vm_flavor_name:
+ get_input: cmaui_1c1_main_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_main_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_main_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ compute_cmaui_1c1_main_name:
+ - get_input:
+ - cmaui_1c1_main_names
+ - 1
+ - get_input:
+ - cmaui_1c1_main_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1_mainServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_main_1b:
+ type: org.openecomp.resource.abstract.nodes.pd_server_main_1b
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_main_1b_availability_zone:
+ - get_input: availability_zone_0
+ port_pd_server_main_b_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: pd_server_main_1b_flavor
+ port_pd_server_main_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_main_1b_ips
+ - 0
+ port_pd_server_main_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_server_main_1b_image
+ port_pd_server_main_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_pd_server_main_1b_name:
+ - get_input:
+ - pd_server_main_1b_names
+ - 0
+ port_pd_server_main_b_port_network:
+ - get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_main_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested2Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested2ServiceTemplate.yaml
+ name:
+ get_input: security_group_name
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested_pattern_4_main_1
+ - test_nested2Level
+ - abstract_pd_server_main_1b
+ - abstract_ps_server_main_1b
+ - abstract_cmaui_1c1_main
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ feature_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_pattern4_test_nested_pattern_4_nested2
+ instance_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ feature_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.ephemeral.size_server_pd_pattern4
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2
+ cpu.delta_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - cpu.delta_pd_server_main_1b
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ instance_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - instance_cmaui_1c1_main
+ instance_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - instance_cmaui_1c1_main
+ feature_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - feature_test_nested_pattern_4_same_type_diff_file
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.incoming.packets_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_cmaui_port_2
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.usage_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.usage_pd_server_main_1b
+ memory.resident_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - memory.resident_cmaui_1c1_main
+ os_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - os_pd_server_main_1b
+ memory.resident_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - memory.resident_cmaui_1c1_main
+ disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.read.bytes_server_pd_pattern4
+ disk.latency_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_nested2_1c1_cmaui_2
+ memory.usage_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - memory.usage_cmaui_1c1_main
+ memory.usage_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - memory.usage_cmaui_1c1_main
+ disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.read.bytes_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.read.bytes_ps_server_main_1b
+ disk.write.requests_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.write.requests_cmaui_1c1_main
+ cpu_util_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - cpu_util_server_pd_pattern4
+ disk.write.requests_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.write.requests_cmaui_1c1_main
+ disk.ephemeral.size_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_nested2_pd_1b
+ host_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - host_server_nested2_pd_1b
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ feature_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - feature_server_nested2_pd_1b
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.bytes.rate_pd_server_pattern4_port_2
+ disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.read.bytes_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.read.bytes_pd_server_main_1b
+ disk.device.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_nested2_1c1_cmaui_2
+ disk.read.requests_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.read.requests_pd_server_main_1b
+ disk.latency_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_nested2_1c1_cmaui_1
+ disk.device.write.requests_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_nested2_ps_1b
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.allocation_server_pd_pattern4
+ disk.device.capacity_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.capacity_cmaui_1c1_main
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.capacity_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.capacity_cmaui_1c1_main
+ disk.latency_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.latency_pd_server_main_1b
+ disk.device.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_nested2_pd_1b
+ disk.usage_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.usage_cmaui_1c1_main
+ disk.usage_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.usage_cmaui_1c1_main
+ disk.device.read.requests_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_nested2_ps_1b
+ disk.root.size_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_nested2_ps_1b
+ disk.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_nested2_1c1_cmaui_2
+ disk.read.requests_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.read.requests_cmaui_1c1_main
+ disk.write.requests_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.write.requests_ps_server_main_1b
+ disk.iops_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.iops_pd_server_main_1b
+ disk.device.usage_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_nested2_pd_1b
+ disk.usage_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_nested2_ps_1b
+ os_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - os_server_pd_pattern4
+ disk.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_nested2_1c1_cmaui_1
+ disk.device.capacity_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_nested2_ps_1b
+ memory.resident_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_nested2_pd_1b
+ disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2
+ binding_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - binding_ps_server_main_1b
+ network.outgoing.bytes.rate_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.outgoing.bytes.rate_pd_server_main_1b_pd_server_main_b_port
+ binding_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - binding_cmaui_1c1_main_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - binding_cmaui_1c1_main_cmaui_port
+ feature_test_nested2Level:
+ - test_nested2Level
+ - feature
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ cpu.delta_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_nested2_1c1_cmaui_2
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.read.requests_server_pd_pattern4
+ disk.write.bytes_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_nested2_ps_1b
+ disk.write.requests.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.write.requests.rate_pd_server_main_1b
+ disk.ephemeral.size_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_nested2_1c1_cmaui_1
+ memory_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.bytes_pd_server_pattern4_port_2
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ cpu_util_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - cpu_util_ps_server_main_1b
+ disk.read.requests_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.read.requests_cmaui_1c1_main
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_nested2_pd_1b
+ attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ cpu_util_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_nested2_ps_1b
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.incoming.bytes_cmaui_1c1_main_cmaui_port
+ network.outgoing.packets.rate_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_ps_server_nested2_1b_port
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.incoming.bytes_cmaui_1c1_main_cmaui_port
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2
+ memory.usage_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_nested2_ps_1b
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_nested2_1c1_cmaui_2
+ disk.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_nested2_1c1_cmaui_2
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port
+ cpu_util_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - cpu_util_cmaui_1c1_main
+ cpu_util_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - cpu_util_cmaui_1c1_main
+ host_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - host_server_pd_pattern4
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ cpu_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - cpu_server_pd_pattern4
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2
+ feature_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_jsa_security_group2_test_resourceGroup
+ scalable_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - scalable_pd_server_main_1b
+ disk.device.read.requests_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.requests_cmaui_1c1_main
+ disk.device.read.requests_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.requests_cmaui_1c1_main
+ feature_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - feature_cmaui_1c1_main
+ feature_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - feature_cmaui_1c1_main
+ disk.read.bytes.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.read.bytes.rate_cmaui_1c1_main
+ disk.read.bytes.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.read.bytes.rate_cmaui_1c1_main
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.read.bytes.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.read.bytes.rate_ps_server_main_1b
+ network.incoming.packets.rate_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_cmaui_port_1
+ binding_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - binding_server_pd_pattern4
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.packets.rate_pd_server_pattern4_port_2
+ network.incoming.bytes_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd_server_nested2_1b_port
+ disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.iops_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.iops_cmaui_1c1_main
+ disk.device.iops_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.iops_cmaui_1c1_main
+ network.incoming.packets.rate_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_cmaui_port_2
+ disk.device.iops_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.iops_pd_server_main_1b
+ disk.device.write.requests.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.write.requests.rate_pd_server_main_1b
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - binding_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ cpu_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_nested2_ps_1b
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ attachment_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - attachment_pd_server_main_1b_pd_server_main_b_port
+ feature_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - feature_ps_server_main_1b_ps_server_main_b_port
+ disk.root.size_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_nested2_1c1_cmaui_1
+ disk.read.bytes_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_nested2_pd_1b
+ cpu.delta_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_nested2_ps_1b
+ feature_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - feature_ps_server_nested2_1b_port
+ disk.device.read.requests_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.read.requests_pd_server_main_1b
+ network.incoming.bytes.rate_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.incoming.bytes.rate_ps_server_main_1b_ps_server_main_b_port
+ disk.allocation_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.allocation_pd_server_main_1b
+ disk.write.requests.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_nested2_pd_1b
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_ps_server_nested2_1b_port
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ disk.capacity_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.capacity_pd_server_main_1b
+ feature_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - feature_server_nested2_1c1_cmaui_2
+ vcpus_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_1
+ network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.packets.rate_pd_server_pattern4_port_2
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.read.bytes.rate_server_pd_pattern4
+ disk.device.iops_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_nested2_1c1_cmaui_1
+ disk.device.read.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_nested2_1c1_cmaui_1
+ disk.device.latency_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.latency_pd_server_main_1b
+ disk.device.read.requests.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.read.requests.rate_ps_server_main_1b
+ network.incoming.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd_server_nested2_1b_port
+ binding_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - binding_server_nested2_pd_1b
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.root.size_server_pd_pattern4
+ binding_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - binding_server_nested2_1c1_cmaui_2
+ instance_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.packets.rate_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_cmaui_port_1
+ disk.device.write.requests.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.requests.rate_cmaui_1c1_main
+ disk.device.write.requests.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.requests.rate_cmaui_1c1_main
+ disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1
+ network.outpoing.packets_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.outpoing.packets_ps_server_main_1b_ps_server_main_b_port
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - feature_pd_server_pattern4_port_2
+ disk.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_nested2_1c1_cmaui_1
+ network.outgoing.bytes_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_cmaui_port_2
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.outgoing.bytes_ps_server_main_1b_ps_server_main_b_port
+ disk.ephemeral.size_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.ephemeral.size_pd_server_main_1b
+ disk.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_nested2_1c1_cmaui_2
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_nested2_1c1_cmaui_2
+ network.outgoing.bytes.rate_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_cmaui_port_2
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ endpoint_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - endpoint_pd_server_main_1b
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.iops_server_pd_pattern4
+ binding_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - binding_cmaui_port_1
+ disk.device.capacity_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.capacity_ps_server_main_1b
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2
+ cpu_util_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.read.requests.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_nested2_ps_1b
+ disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.write.bytes.rate_server_pd_pattern4
+ disk.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_nested2_1c1_cmaui_1
+ os_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - os_cmaui_1c1_main
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - binding_pd_server_pattern4_port_1
+ os_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - os_cmaui_1c1_main
+ disk.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_nested2_1c1_cmaui_2
+ disk.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_nested2_1c1_cmaui_1
+ network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ disk.iops_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_nested2_1c1_cmaui_1
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd_server_nested2_1b_port
+ disk.write.requests_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_nested2_ps_1b
+ disk.device.write.requests.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_nested2_ps_1b
+ instance_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - instance_server_nested2_1c1_cmaui_2
+ network.outpoing.packets_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd_server_nested2_1b_port
+ os_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - os_server_nested2_pd_1b
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.incoming.packets_cmaui_1c1_main_cmaui_port
+ memory.resident_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - memory.resident_pd_server_main_1b
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.incoming.packets_cmaui_1c1_main_cmaui_port
+ disk.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.write.requests_server_pd_pattern4
+ disk.allocation_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.allocation_ps_server_main_1b
+ disk.device.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_nested2_pd_1b
+ disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ memory.usage_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - memory.usage_pd_server_main_1b
+ disk.device.latency_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_nested2_1c1_cmaui_2
+ network.incoming.bytes_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_ps_server_nested2_1b_port
+ network.outgoing.packets.rate_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_cmaui_port_2
+ disk.device.read.requests_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.read.requests_ps_server_main_1b
+ vcpus_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.write.bytes_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_nested2_pd_1b
+ network.incoming.packets.rate_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_ps_server_nested2_1b_port
+ network.incoming.packets.rate_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd_server_nested2_1b_port
+ disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - cpu.delta_server_pd_pattern4
+ disk.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_nested2_1c1_cmaui_1
+ disk.write.bytes.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.write.bytes.rate_pd_server_main_1b
+ disk.device.read.requests.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.read.requests.rate_pd_server_main_1b
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ scalable_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_nested2_pd_1b
+ network.outgoing.packets.rate_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.outgoing.packets.rate_ps_server_main_1b_ps_server_main_b_port
+ disk.device.write.bytes.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.write.bytes.rate_ps_server_main_1b
+ memory_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - memory_ps_server_main_1b
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port
+ disk.capacity_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_nested2_ps_1b
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port
+ network.outpoing.packets_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_ps_server_nested2_1b_port
+ os_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - os_server_nested2_ps_1b
+ disk.read.bytes.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.read.bytes.rate_pd_server_main_1b
+ disk.device.write.requests_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.write.requests_pd_server_main_1b
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.read.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_nested2_1c1_cmaui_2
+ disk.device.write.requests_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.requests_cmaui_1c1_main
+ disk.device.write.requests_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.requests_cmaui_1c1_main
+ disk.latency_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_nested2_ps_1b
+ disk.root.size_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_nested2_1c1_cmaui_2
+ disk.device.usage_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.usage_pd_server_main_1b
+ binding_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.outgoing.bytes_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.outgoing.bytes_pd_server_main_1b_pd_server_main_b_port
+ instance_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - instance_ps_server_main_1b
+ memory.resident_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_nested2_1c1_cmaui_1
+ vcpus_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_nested2_ps_1b
+ disk.device.iops_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_nested2_1c1_cmaui_2
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ host_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ feature_jsa_security_group1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_jsa_security_group1_test_nested3Level
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.root.size_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.root.size_pd_server_main_1b
+ memory_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - memory_cmaui_1c1_main
+ memory_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - memory_cmaui_1c1_main
+ disk.device.write.bytes_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.write.bytes_pd_server_main_1b
+ disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_nested2_1c1_cmaui_1
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - feature_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ disk.device.read.bytes_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_nested2_pd_1b
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.read.requests_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_nested2_ps_1b
+ disk.read.bytes_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_nested2_ps_1b
+ network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ scalable_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - scalable_server_pd_pattern4
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.latency_server_pd_pattern4
+ network.outgoing.packets.rate_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.outgoing.packets.rate_pd_server_main_1b_pd_server_main_b_port
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_nested2_1c1_cmaui_2
+ disk.device.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_nested2_1c1_cmaui_1
+ cpu_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - cpu_cmaui_1c1_main
+ cpu_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - cpu_cmaui_1c1_main
+ instance_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - instance_server_pd_pattern4
+ disk.read.requests_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.read.requests_ps_server_main_1b
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - binding_pd_server_pattern4_port_2
+ scalable_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - scalable_cmaui_1c1_main
+ disk.allocation_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_nested2_pd_1b
+ scalable_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - scalable_cmaui_1c1_main
+ disk.device.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_nested2_1c1_cmaui_2
+ disk.write.bytes_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.write.bytes_pd_server_main_1b
+ disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ scalable_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_pattern4_test_nested_pattern_4_nested2
+ feature_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_test_nested3Level
+ cpu_util_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - cpu_util_pd_server_main_1b
+ scalable_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.ephemeral.size_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_nested2_1c1_cmaui_2
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.bytes.rate_pd_server_pattern4_port_1
+ vcpus_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - vcpus_pd_server_main_1b
+ host_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - host_pd_server_main_1b
+ disk.latency_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_nested2_pd_1b
+ scalable_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - scalable_ps_server_main_1b
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.write.requests.rate_server_pd_pattern4
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.write.requests_server_pd_pattern4
+ disk.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_nested2_1c1_cmaui_2
+ cpu_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_nested2_pd_1b
+ disk.device.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_nested2_1c1_cmaui_2
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - feature_pd_server_pattern4_port_1
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.read.bytes_server_pd_pattern4
+ vcpus_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_nested2_pd_1b
+ disk.device.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_nested2_1c1_cmaui_1
+ network.incoming.bytes_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_cmaui_port_1
+ feature_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - feature_pd_server_main_1b
+ disk.device.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_nested2_1c1_cmaui_1
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.bytes_cmaui_1c1_main_cmaui_port
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.bytes_cmaui_1c1_main_cmaui_port
+ disk.device.write.requests.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.write.requests.rate_ps_server_main_1b
+ endpoint_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_nested2_1c1_cmaui_2
+ feature_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - feature
+ memory.usage_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_nested2_pd_1b
+ disk.device.write.bytes_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_nested2_pd_1b
+ disk.device.iops_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.iops_ps_server_main_1b
+ network.incoming.bytes_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_cmaui_port_2
+ disk.device.write.bytes_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.write.bytes_ps_server_main_1b
+ disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.write.bytes_server_pd_pattern4
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - binding_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2
+ vcpus_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_nested2_1c1_cmaui_1
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_nested2_1c1_cmaui_1
+ disk.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_nested2_ps_1b
+ network.incoming.bytes_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.incoming.bytes_pd_server_main_1b_pd_server_main_b_port
+ endpoint_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_nested2_1c1_cmaui_1
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.iops_server_pd_pattern4
+ disk.read.bytes_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.read.bytes_pd_server_main_1b
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.write.bytes.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.write.bytes.rate_cmaui_1c1_main
+ disk.device.read.requests_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_nested2_pd_1b
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - memory.resident_server_pd_pattern4
+ disk.ephemeral.size_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_nested2_ps_1b
+ disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.outgoing.bytes_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd_server_nested2_1b_port
+ disk.write.bytes.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.write.bytes.rate_cmaui_1c1_main
+ disk.device.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_nested2_ps_1b
+ disk.device.allocation_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.allocation_cmaui_1c1_main
+ disk.device.allocation_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.allocation_cmaui_1c1_main
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ disk.device.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_nested2_1c1_cmaui_2
+ disk.device.write.requests_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_nested2_pd_1b
+ disk.capacity_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.capacity_ps_server_main_1b
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_nested2_1c1_cmaui_2
+ disk.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_nested2_1c1_cmaui_1
+ network.incoming.bytes.rate_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_cmaui_port_2
+ disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.read.requests.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_nested2_pd_1b
+ disk.device.latency_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.latency_ps_server_main_1b
+ disk.device.read.bytes_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.bytes_cmaui_1c1_main
+ disk.device.read.bytes_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.bytes_cmaui_1c1_main
+ network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ network.incoming.bytes.rate_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_cmaui_port_1
+ os_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - os_server_nested2_1c1_cmaui_2
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ cpu.delta_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - cpu.delta_cmaui_1c1_main
+ cpu.delta_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - cpu.delta_cmaui_1c1_main
+ network.incoming.packets_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd_server_nested2_1b_port
+ binding_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outpoing.packets_pd_server_pattern4_port_1
+ feature_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - feature_cmaui_1c1_main_cmaui_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - feature_cmaui_1c1_main_cmaui_port
+ endpoint_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.usage_server_pd_pattern4
+ disk.device.read.bytes.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.bytes.rate_cmaui_1c1_main
+ disk.usage_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.usage_ps_server_main_1b
+ disk.device.read.bytes.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.bytes.rate_cmaui_1c1_main
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_2
+ disk.device.usage_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.usage_cmaui_1c1_main
+ disk.device.usage_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.usage_cmaui_1c1_main
+ memory.resident_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_nested2_1c1_cmaui_2
+ disk.capacity_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_nested2_pd_1b
+ memory_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - memory_pd_server_main_1b
+ cpu_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.outpoing.packets_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.outpoing.packets_pd_server_main_1b_pd_server_main_b_port
+ network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outpoing.packets_pd_server_pattern4_port_2
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ cpu.delta_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - cpu.delta_ps_server_main_1b
+ disk.allocation_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.allocation_cmaui_1c1_main
+ os_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_nested2_1c1_cmaui_1
+ host_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - host_server_nested2_ps_1b
+ disk.allocation_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.allocation_cmaui_1c1_main
+ host_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_pattern4_test_nested_pattern_4_nested2
+ cpu_util_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_nested2_1c1_cmaui_1
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - attachment_pd_server_pattern4_port_1
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ attachment_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.packets.rate_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd_server_nested2_1b_port
+ disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.read.requests.rate_server_pd_pattern4
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.packets.rate_pd_server_pattern4_port_1
+ binding_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - binding_pd_server_main_1b
+ disk.device.read.bytes_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.read.bytes_ps_server_main_1b
+ disk.device.latency_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_nested2_ps_1b
+ disk.device.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_nested2_1c1_cmaui_2
+ cpu_util_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_nested2_1c1_cmaui_2
+ memory_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - memory_server_nested2_1c1_cmaui_2
+ attachment_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - attachment_ps_server_main_1b_ps_server_main_b_port
+ disk.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_nested2_pd_1b
+ disk.root.size_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_nested2_pd_1b
+ endpoint_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_nested2_ps_1b
+ disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2
+ disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.capacity_server_pd_pattern4
+ disk.device.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_nested2_ps_1b
+ disk.write.requests_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.write.requests_pd_server_main_1b
+ feature_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_jsa_security_group1_test_resourceGroup
+ network.outgoing.bytes.rate_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.outgoing.bytes.rate_ps_server_main_1b_ps_server_main_b_port
+ cpu_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - cpu_ps_server_main_1b
+ disk.device.usage_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_nested2_ps_1b
+ disk.iops_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_nested2_1c1_cmaui_2
+ memory_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - memory_server_pd_pattern4
+ feature_jsa_security_group2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_jsa_security_group2_test_nested3Level
+ network.incoming.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_ps_server_nested2_1b_port
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.allocation_server_pd_pattern4
+ disk.write.requests.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.write.requests.rate_cmaui_1c1_main
+ disk.write.requests.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.write.requests.rate_cmaui_1c1_main
+ disk.latency_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.latency_ps_server_main_1b
+ disk.allocation_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_nested2_ps_1b
+ network.outpoing.packets_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_cmaui_port_2
+ disk.device.write.bytes.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.write.bytes.rate_pd_server_main_1b
+ network.outgoing.bytes_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_cmaui_port_1
+ feature_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - feature_server_nested2_ps_1b
+ disk.device.capacity_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.capacity_pd_server_main_1b
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.outpoing.packets_cmaui_1c1_main_cmaui_port
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.outpoing.packets_cmaui_1c1_main_cmaui_port
+ vcpus_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_nested2_1c1_cmaui_2
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.allocation_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.allocation_ps_server_main_1b
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.packets.rate_pd_server_pattern4_port_1
+ disk.device.iops_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_nested2_pd_1b
+ endpoint_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - endpoint_server_pd_pattern4
+ disk.device.allocation_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_nested2_pd_1b
+ disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
+ os_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_ps_server_nested2_1b_port
+ disk.device.latency_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_nested2_1c1_cmaui_1
+ disk.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_nested2_1c1_cmaui_2
+ vcpus_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - vcpus_server_pd_pattern4
+ host_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - host_server_nested2_1c1_cmaui_1
+ disk.read.bytes.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.read.bytes.rate_ps_server_main_1b
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ memory_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - memory_server_nested2_ps_1b
+ network.outpoing.packets_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_cmaui_port_1
+ disk.iops_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_nested2_pd_1b
+ disk.ephemeral.size_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.ephemeral.size_cmaui_1c1_main
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.read.bytes.rate_server_pd_pattern4
+ disk.device.read.requests.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.requests.rate_cmaui_1c1_main
+ disk.device.read.requests.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.read.requests.rate_cmaui_1c1_main
+ disk.device.usage_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.usage_ps_server_main_1b
+ instance_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - instance_pd_server_main_1b
+ instance_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - instance_server_nested2_ps_1b
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.ephemeral.size_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.ephemeral.size_cmaui_1c1_main
+ disk.capacity_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.capacity_cmaui_1c1_main
+ disk.device.iops_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_nested2_ps_1b
+ disk.read.requests_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_nested2_pd_1b
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.capacity_server_pd_pattern4
+ disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ instance_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - instance_server_nested2_1c1_cmaui_1
+ feature_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - feature_test_nested_pattern_4_nested2
+ endpoint_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - endpoint_cmaui_1c1_main
+ endpoint_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - endpoint_cmaui_1c1_main
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2
+ attachment_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - attachment_cmaui_port_1
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.outgoing.bytes_pd_server_pattern4_port_1
+ feature_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - feature_pd_server_main_1b_pd_server_main_b_port
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.write.requests.rate_server_pd_pattern4
+ disk.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_nested2_1c1_cmaui_1
+ host_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - host_server_nested2_1c1_cmaui_2
+ disk.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_nested2_1c1_cmaui_2
+ disk.device.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_nested2_1c1_cmaui_1
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ network.outgoing.bytes.rate_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_cmaui_port_1
+ disk.device.read.bytes.rate_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.read.bytes.rate_pd_server_main_1b
+ binding_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - binding_server_nested2_1c1_cmaui_1
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.packets_pd_server_pattern4_port_1
+ disk.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_nested2_ps_1b
+ disk.device.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_nested2_1c1_cmaui_1
+ cpu_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - cpu_pd_server_main_1b
+ feature_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - feature_server_nested2_1c1_cmaui_1
+ network.incoming.packets.rate_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.incoming.packets.rate_pd_server_main_1b_pd_server_main_b_port
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2
+ attachment_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - attachment_cmaui_port_2
+ disk.device.allocation_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - disk.device.allocation_pd_server_main_1b
+ endpoint_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_nested2_pd_1b
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - feature_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ disk.device.capacity_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_nested2_pd_1b
+ network.incoming.bytes.rate_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.incoming.bytes.rate_pd_server_main_1b_pd_server_main_b_port
+ disk.latency_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.latency_server_pd_pattern4
+ vcpus_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - vcpus_cmaui_1c1_main
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2
+ vcpus_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - vcpus_cmaui_1c1_main
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ attachment_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd_server_nested2_1b_port
+ feature_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - feature_cmaui_port_2
+ disk.latency_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.latency_cmaui_1c1_main
+ disk.device.write.bytes_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_nested2_ps_1b
+ disk.latency_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.latency_cmaui_1c1_main
+ memory.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_nested2_1c1_cmaui_2
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ cpu_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_nested2_1c1_cmaui_1
+ disk.usage_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_nested2_pd_1b
+ disk.device.read.bytes_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_nested2_ps_1b
+ feature_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - feature_pd_server_nested2_1b_port
+ network.incoming.packets_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.incoming.packets_ps_server_main_1b_ps_server_main_b_port
+ binding_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - binding_cmaui_port_2
+ binding_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - binding_pd_server_main_1b_pd_server_main_b_port
+ binding_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - binding_cmaui_1c1_main
+ instance_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - instance_server_nested2_pd_1b
+ binding_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - binding_cmaui_1c1_main
+ feature_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - feature_ps_server_main_1b
+ memory_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.read.requests_server_pd_pattern4
+ cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.device.write.bytes_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.bytes_cmaui_1c1_main
+ feature_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - feature_server_pd_pattern4
+ disk.device.write.bytes_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.bytes_cmaui_1c1_main
+ scalable_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_nested2_1c1_cmaui_2
+ network.incoming.packets_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - network.incoming.packets_pd_server_main_1b_pd_server_main_b_port
+ memory_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - memory_server_nested2_pd_1b
+ binding_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - binding_pd_server_nested2_1b_port
+ host_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - host_ps_server_main_1b
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ endpoint_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - endpoint_ps_server_main_1b
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ disk.root.size_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.root.size_cmaui_1c1_main
+ disk.root.size_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.root.size_cmaui_1c1_main
+ disk.write.bytes_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.write.bytes_cmaui_1c1_main
+ vcpus_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - vcpus_ps_server_main_1b
+ attachment_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - attachment_pd_server_pattern4_port_2
+ attachment_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - attachment_cmaui_1c1_main_cmaui_port
+ network.incoming.packets_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_ps_server_nested2_1b_port
+ disk.device.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.usage_server_pd_pattern4
+ cpu_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_nested2_1c1_cmaui_2
+ disk.write.requests_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_nested2_pd_1b
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - memory.usage_server_pd_pattern4
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port
+ disk.device.write.requests.rate_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_nested2_pd_1b
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - attachment_cmaui_1c1_main_cmaui_port
+ disk.device.write.bytes.rate_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.bytes.rate_cmaui_1c1_main
+ os_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - os_ps_server_main_1b
+ disk.device.write.bytes.rate_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.write.bytes.rate_cmaui_1c1_main
+ binding_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - binding_ps_server_nested2_1b_port
+ cpu_util_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_nested2_pd_1b
+ scalable_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_nested2_ps_1b
+ disk.write.bytes_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.write.bytes_cmaui_1c1_main
+ disk.ephemeral.size_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.ephemeral.size_ps_server_main_1b
+ disk.write.bytes_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.write.bytes_ps_server_main_1b
+ memory_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - memory_server_nested2_1c1_cmaui_1
+ network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.bytes_pd_server_pattern4_port_2
+ disk.device.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_nested2_1c1_cmaui_2
+ network.incoming.bytes_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.incoming.bytes_ps_server_main_1b_ps_server_main_b_port
+ scalable_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_nested2_1c1_cmaui_1
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.write.bytes_server_pd_pattern4
+ disk.iops_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_nested2_ps_1b
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ cpu_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ host_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - host_cmaui_1c1_main
+ host_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - host_cmaui_1c1_main
+ memory.resident_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_nested2_ps_1b
+ cpu.delta_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_nested2_pd_1b
+ memory.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_nested2_1c1_cmaui_1
+ disk.device.allocation_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_nested2_ps_1b
+ disk.write.requests.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.write.requests.rate_ps_server_main_1b
+ attachment_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - attachment_ps_server_nested2_1b_port
+ disk.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_nested2_1c1_cmaui_1
+ disk.device.latency_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.device.latency_cmaui_1c1_main
+ disk.iops_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.iops_cmaui_1c1_main
+ disk.device.latency_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.device.latency_cmaui_1c1_main
+ disk.iops_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.iops_cmaui_1c1_main
+ memory.usage_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - memory.usage_ps_server_main_1b
+ disk.device.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_nested2_1c1_cmaui_1
+ disk.device.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_nested2_1c1_cmaui_2
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - disk.device.write.bytes.rate_server_pd_pattern4
+ network.incoming.packets.rate_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - network.incoming.packets.rate_ps_server_main_1b_ps_server_main_b_port
+ disk.device.latency_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_nested2_pd_1b
+ disk.write.bytes.rate_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.write.bytes.rate_ps_server_main_1b
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ disk.capacity_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.capacity_cmaui_1c1_main
+ endpoint_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_pattern4_test_nested_pattern_4_nested2
+ disk.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_nested2_1c1_cmaui_1
+ disk.read.bytes_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - disk.read.bytes_cmaui_1c1_main
+ disk.device.write.requests_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.device.write.requests_ps_server_main_1b
+ disk.read.bytes_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - disk.read.bytes_cmaui_1c1_main
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ os_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - os_server_nested2_1c1_cmaui_1
+ binding_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - binding_server_nested2_ps_1b
+ disk.write.requests.rate_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_nested2_ps_1b
+ network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.packets_pd_server_pattern4_port_2
+ binding_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - binding_ps_server_main_1b_ps_server_main_b_port
+ feature_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_test_resourceGroup
+ disk.root.size_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.root.size_ps_server_main_1b
+ disk.iops_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - disk.iops_ps_server_main_1b
+ disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2
+ memory.resident_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - memory.resident_ps_server_main_1b
+ feature_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - feature_cmaui_port_1
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - network.incoming.bytes_pd_server_pattern4_port_1
+ cpu.delta_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_nested2_1c1_cmaui_1
+ network.incoming.packets_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_cmaui_port_1
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2
+ requirements:
+ dependency_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_jsa_security_group2_test_resourceGroup
+ dependency_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - dependency_pd_server_main_1b_pd_server_main_b_port
+ dependency_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - dependency_cmaui_port_2
+ dependency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ link_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - link_pd_server_pattern4_port_2
+ dependency_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_nested2_1c1_cmaui_1
+ dependency_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - dependency_pd_server_main_1b
+ port_jsa_security_group1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - port_jsa_security_group1_test_nested3Level
+ dependency_test_nested2Level:
+ - test_nested2Level
+ - dependency
+ local_storage_server_main_pd_1b:
+ - abstract_pd_server_main_1b
+ - local_storage_pd_server_main_1b
+ dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ link_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ dependency_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - dependency_cmaui_1c1_main
+ local_storage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_nested2
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - dependency_cmaui_1c1_main_cmaui_port
+ local_storage_server_main_1c1_cmaui_2:
+ - abstract_cmaui_1c1_main
+ - local_storage_cmaui_1c1_main
+ local_storage_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_nested2_1c1_cmaui_2
+ dependency_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - dependency_ps_server_main_1b_ps_server_main_b_port
+ dependency_pd_server_pattern4_port_2_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_nested2
+ local_storage_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_nested2_pd_1b
+ local_storage_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - local_storage_cmaui_1c1_main
+ dependency_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - dependency_cmaui_1c1_main_cmaui_port
+ local_storage_server_nested2_1c1_cmaui_1_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_nested2_1c1_cmaui_1
+ local_storage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file
+ dependency_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_resourceGroup
+ dependency_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - dependency_pd_server_pattern4_port_1
+ dependency_server_main_1c1_cmaui_1:
+ - abstract_cmaui_1c1_main
+ - dependency_cmaui_1c1_main
+ link_pd_server_pattern4_port_1_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_nested2
+ dependency_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd_server_nested2_1b_port
+ dependency_server_nested2_1c1_cmaui_2_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_nested2_1c1_cmaui_2
+ link_pd_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - link_pd_server_nested2_1b_port
+ local_storage_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - local_storage_ps_server_main_1b
+ dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ dependency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_pattern4_test_nested_pattern_4_nested2
+ link_ps_server_main_1b_port:
+ - abstract_ps_server_main_1b
+ - link_ps_server_main_1b_ps_server_main_b_port
+ dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ dependency_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - dependency_cmaui_port_1
+ link_pd_server_main_1b_port:
+ - abstract_pd_server_main_1b
+ - link_pd_server_main_1b_pd_server_main_b_port
+ local_storage_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - local_storage_server_pd_pattern4
+ dependency_server_nested2_pd_1b_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_nested2_pd_1b
+ dependency_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_nested2_ps_1b
+ dependency_jsa_security_group1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_jsa_security_group1_test_nested3Level
+ link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
+ link_cmaui_port_2:
+ - abstract_cmaui_1c1_main
+ - link_cmaui_1c1_main_cmaui_port
+ link_cmaui_port_1:
+ - abstract_cmaui_1c1_main
+ - link_cmaui_1c1_main_cmaui_port
+ dependency_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_jsa_security_group1_test_resourceGroup
+ link_cmaui_port_2_test_nested2Level:
+ - test_nested2Level
+ - link_cmaui_port_2
+ dependency_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_nested_pattern_4_same_type_diff_file
+ dependency_pd_server_pattern4_port_2_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - dependency_pd_server_pattern4_port_2
+ link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
+ - test_nested2Level
+ - link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
+ port_jsa_security_group2_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - port_jsa_security_group2_test_resourceGroup
+ port_jsa_security_group2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - port_jsa_security_group2_test_nested3Level
+ dependency_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - dependency
+ dependency_jsa_security_group2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_jsa_security_group2_test_nested3Level
+ dependency_server_pd_pattern4_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - dependency_server_pd_pattern4
+ link_cmaui_port_1_test_nested2Level:
+ - test_nested2Level
+ - link_cmaui_port_1
+ local_storage_server_nested2_ps_1b_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_nested2_ps_1b
+ dependency_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - dependency_ps_server_nested2_1b_port
+ link_ps_server_nested2_1b_port_test_nested2Level:
+ - test_nested2Level
+ - link_ps_server_nested2_1b_port
+ dependency_server_main_ps_1b:
+ - abstract_ps_server_main_1b
+ - dependency_ps_server_main_1b
+ link_pd_server_pattern4_port_1_test_nested_pattern_4_main_1:
+ - test_nested_pattern_4_main_1
+ - link_pd_server_pattern4_port_1
+ port_jsa_security_group1_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - port_jsa_security_group1_test_resourceGroup
+ dependency_test_nested_pattern_4_nested2_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_nested_pattern_4_nested2
+ dependency_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_nested3Level
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
new file mode 100644
index 0000000000..9ddecd4527
--- /dev/null
+++ 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
@@ -0,0 +1,1501 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_1c1_nested2_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_1c1_nested2_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_nested2_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ pd_server_nested2_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ contrail_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of contrail v2 network
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa network
+ ps_server_nested2_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ pd_server_nested2_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ cmaui_1c1_nested2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_nested2_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ pd_server_nested2_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ name:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ pd_server_nested2_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ ps_server_nested2_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ node_templates:
+ abstract_pd_server_nested2_1b:
+ type: org.openecomp.resource.abstract.nodes.pd_server_nested2_1b
+ directives:
+ - substitutable
+ properties:
+ port_pd_server_nested_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_nested2_1b_ips
+ - 0
+ vm_flavor_name:
+ get_input: pd_server_nested2_1b_flavor
+ compute_pd_server_nested2_1b_availability_zone:
+ - get_input: availability_zone_0
+ compute_pd_server_nested2_1b_name:
+ - get_input:
+ - pd_server_nested2_1b_names
+ - 0
+ port_pd_server_nested_b_port_network:
+ - get_input: jsa_name
+ port_pd_server_nested_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_nested_b_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: pd_server_nested2_1b_image
+ port_pd_server_nested_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_nested2_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - dependency_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.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ port_pd_server_pattern4_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_resourceGroup
+ relationship: tosca.relationships.DependsOn
+ test_nested3Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested3ServiceTemplate.yaml
+ name:
+ get_input: security_group_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_pattern_4_nested2
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: feature_ps_server_nested2_1b
+ node: abstract_ps_server_nested2_1b
+ relationship: tosca.relationships.DependsOn
+ test_nested_pattern_4_same_type_diff_file:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4-same-type
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested-pattern-4-same-typeServiceTemplate.yaml
+ port_pd_server_pattern4_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_pattern4_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ abstract_ps_server_nested2_1b:
+ type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_nested_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_nested_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_nested_b_port_network:
+ - get_input: jsa_name
+ compute_ps_server_nested2_1b_name:
+ - get_input:
+ - ps_server_nested2_1b_names
+ - 1
+ compute_ps_server_nested2_1b_availability_zone:
+ - get_input: availability_zone_0
+ vm_flavor_name:
+ get_input: ps_server_nested2_1b_flavor
+ port_ps_server_nested_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_nested2_1b_ips
+ - 0
+ port_ps_server_nested_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_nested2_1b_image
+ service_template_filter:
+ substitute_service_template: Nested_ps_server_nested2_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_resourceGroup:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: name
+ service_template_filter:
+ substitute_service_template: nested3ServiceTemplate.yaml
+ count: 9
+ mandatory: true
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_cmaui_1c1_nested2:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - get_input: contrail_net_name
+ port_cmaui_port_network_role_tag: contrail
+ vm_flavor_name:
+ get_input: cmaui_1c1_nested2_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_nested2_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_nested2_name:
+ - get_input:
+ - cmaui_1c1_nested2_names
+ - 1
+ - get_input:
+ - cmaui_1c1_nested2_names
+ - 0
+ compute_cmaui_1c1_nested2_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1_nested2ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - dependency_cmaui_1c1_nested2:
+ capability: tosca.capabilities.Node
+ node: test_nested3Level
+ relationship: tosca.relationships.DependsOn
+ groups:
+ nested2_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_resourceGroup
+ - test_nested_pattern_4_nested2
+ - test_nested3Level
+ - test_nested_pattern_4_same_type_diff_file
+ - abstract_cmaui_1c1_nested2
+ - abstract_pd_server_nested2_1b
+ - abstract_ps_server_nested2_1b
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+ capabilities:
+ instance_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - instance_cmaui_1c1_nested2
+ disk.allocation_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.allocation_ps_server_nested2_1b
+ network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.packets_pd_server_pattern4_port_2
+ network.incoming.packets.rate_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.incoming.packets.rate_pd_server_nested2_1b_pd_server_nested_b_port
+ os_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - os_pd_server_nested2_1b
+ disk.device.usage_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.usage_pd_server_nested2_1b
+ disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.write.bytes_server_pd_pattern4
+ vcpus_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - vcpus_pd_server_nested2_1b
+ memory.usage_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - memory.usage_cmaui_1c1_nested2
+ disk.device.latency_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.latency_cmaui_1c1_nested2
+ memory.usage_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - memory.usage_cmaui_1c1_nested2
+ instance_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - instance_server_pd_pattern4
+ instance_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - instance_cmaui_1c1_nested2
+ disk.device.latency_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.latency_cmaui_1c1_nested2
+ disk.iops_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.iops_ps_server_nested2_1b
+ disk.read.bytes_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.read.bytes_pd_server_nested2_1b
+ cpu_util_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - cpu_util_server_pd_pattern4
+ disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.read.requests.rate_server_pd_pattern4
+ network.outgoing.packets.rate_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.outgoing.packets.rate_ps_server_nested2_1b_ps_server_nested_b_port
+ memory.resident_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - memory.resident_ps_server_nested2_1b
+ network.outpoing.packets_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.outpoing.packets_pd_server_nested2_1b_pd_server_nested_b_port
+ disk.device.read.bytes_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.bytes_cmaui_1c1_nested2
+ disk.device.read.bytes_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.bytes_cmaui_1c1_nested2
+ endpoint_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - endpoint_pd_server_nested2_1b
+ cpu_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - cpu_server_pd_pattern4
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port
+ disk.device.allocation_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.allocation_pd_server_nested2_1b
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.read.requests_server_pd_pattern4
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.bytes.rate_pd_server_pattern4_port_1
+ disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.capacity_server_pd_pattern4
+ disk.write.bytes.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.write.bytes.rate_ps_server_nested2_1b
+ network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.packets.rate_pd_server_pattern4_port_2
+ feature_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - feature
+ network.outgoing.bytes.rate_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.outgoing.bytes.rate_ps_server_nested2_1b_ps_server_nested_b_port
+ memory_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - memory_server_pd_pattern4
+ disk.write.bytes.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.bytes.rate_cmaui_1c1_nested2
+ disk.write.bytes.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.bytes.rate_cmaui_1c1_nested2
+ attachment_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - attachment_ps_server_nested2_1b_ps_server_nested_b_port
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - binding_pd_server_pattern4_port_1
+ disk.device.iops_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.iops_ps_server_nested2_1b
+ cpu_util_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - cpu_util_pd_server_nested2_1b
+ network.incoming.packets_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.incoming.packets_pd_server_nested2_1b_pd_server_nested_b_port
+ network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.bytes.rate_pd_server_pattern4_port_1
+ binding_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - binding_pd_server_pattern4_port_1
+ disk.write.bytes.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.write.bytes.rate_pd_server_nested2_1b
+ host_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - host_server_pd_pattern4
+ disk.device.capacity_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.capacity_cmaui_1c1_nested2
+ disk.device.capacity_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.capacity_cmaui_1c1_nested2
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.ephemeral.size_server_pd_pattern4
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outpoing.packets_pd_server_pattern4_port_1
+ disk.write.bytes_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.write.bytes_ps_server_nested2_1b
+ disk.latency_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.latency_pd_server_nested2_1b
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_1
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.packets_pd_server_pattern4_port_1
+ network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.packets_pd_server_pattern4_port_2
+ binding_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - binding_cmaui_1c1_nested2_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - binding_cmaui_1c1_nested2_cmaui_port
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.packets.rate_pd_server_pattern4_port_1
+ disk.device.capacity_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.capacity_ps_server_nested2_1b
+ disk.device.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.usage_server_pd_pattern4
+ network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_1
+ network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outpoing.packets_pd_server_pattern4_port_2
+ disk.read.requests_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.read.requests_ps_server_nested2_1b
+ network.incoming.bytes_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.incoming.bytes_ps_server_nested2_1b_ps_server_nested_b_port
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.read.requests_server_pd_pattern4
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - feature_pd_server_pattern4_port_2
+ feature_test_resourceGroup:
+ - test_resourceGroup
+ - feature
+ endpoint_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - endpoint_server_pd_pattern4
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.read.bytes.rate_server_pd_pattern4
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.bytes_pd_server_pattern4_port_1
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.write.requests.rate_server_pd_pattern4
+ disk.device.read.bytes.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.read.bytes.rate_pd_server_nested2_1b
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port
+ disk.write.requests.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.write.requests.rate_pd_server_nested2_1b
+ scalable_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - scalable_server_pd_pattern4
+ disk.allocation_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.allocation_cmaui_1c1_nested2
+ disk.usage_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.usage_ps_server_nested2_1b
+ disk.allocation_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.allocation_cmaui_1c1_nested2
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.packets.rate_pd_server_pattern4_port_1
+ disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.bytes.rate_cmaui_1c1_nested2
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port
+ disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.bytes.rate_cmaui_1c1_nested2
+ feature_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - feature_cmaui_1c1_nested2_cmaui_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - feature_cmaui_1c1_nested2_cmaui_port
+ os_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - os_ps_server_nested2_1b
+ cpu_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - cpu_server_pd_pattern4
+ disk.device.read.requests_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.read.requests_ps_server_nested2_1b
+ disk.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.latency_server_pd_pattern4
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.usage_server_pd_pattern4
+ disk.ephemeral.size_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.ephemeral.size_ps_server_nested2_1b
+ disk.device.iops_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.iops_pd_server_nested2_1b
+ network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.packets.rate_pd_server_pattern4_port_1
+ feature_jsa_security_group1_test_resourceGroup:
+ - test_resourceGroup
+ - feature_jsa_security_group1
+ disk.device.usage_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.usage_ps_server_nested2_1b
+ feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - feature_pd_server_pattern4_port_2
+ memory_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - memory_server_pd_pattern4
+ disk.device.write.requests.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.requests.rate_cmaui_1c1_nested2
+ disk.device.write.requests.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.requests.rate_cmaui_1c1_nested2
+ disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.write.bytes_server_pd_pattern4
+ disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.latency_server_pd_pattern4
+ cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - cpu_util_server_pd_pattern4
+ disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.write.bytes.rate_server_pd_pattern4
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - memory.usage_server_pd_pattern4
+ binding_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - binding_cmaui_1c1_nested2
+ binding_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - binding_cmaui_1c1_nested2
+ feature_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - feature_cmaui_1c1_nested2
+ disk.write.requests.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.requests.rate_cmaui_1c1_nested2
+ feature_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - feature_cmaui_1c1_nested2
+ disk.write.requests.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.requests.rate_cmaui_1c1_nested2
+ disk.root.size_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.root.size_pd_server_nested2_1b
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.write.requests_server_pd_pattern4
+ memory.usage_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - memory.usage_ps_server_nested2_1b
+ disk.read.bytes.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.bytes.rate_cmaui_1c1_nested2
+ disk.read.bytes.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.bytes.rate_cmaui_1c1_nested2
+ endpoint_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - endpoint_ps_server_nested2_1b
+ network.incoming.bytes_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.incoming.bytes_pd_server_nested2_1b_pd_server_nested_b_port
+ vcpus_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - vcpus_server_pd_pattern4
+ vcpus_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - vcpus_cmaui_1c1_nested2
+ vcpus_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - vcpus_ps_server_nested2_1b
+ vcpus_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - vcpus_cmaui_1c1_nested2
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.allocation_server_pd_pattern4
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.iops_server_pd_pattern4
+ disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.usage_server_pd_pattern4
+ network.outgoing.bytes_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.outgoing.bytes_ps_server_nested2_1b_ps_server_nested_b_port
+ disk.write.requests_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.write.requests_pd_server_nested2_1b
+ disk.device.write.bytes_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.write.bytes_ps_server_nested2_1b
+ disk.latency_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.latency_ps_server_nested2_1b
+ memory.resident_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - memory.resident_cmaui_1c1_nested2
+ network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outpoing.packets_pd_server_pattern4_port_2
+ disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.allocation_server_pd_pattern4
+ feature_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - feature_pd_server_nested2_1b_pd_server_nested_b_port
+ cpu_util_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - cpu_util_ps_server_nested2_1b
+ disk.device.write.requests.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.write.requests.rate_pd_server_nested2_1b
+ disk.read.requests_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.read.requests_pd_server_nested2_1b
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.packets.rate_pd_server_pattern4_port_2
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - memory.resident_server_pd_pattern4
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.latency_server_pd_pattern4
+ disk.device.capacity_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.capacity_pd_server_nested2_1b
+ disk.capacity_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.capacity_ps_server_nested2_1b
+ os_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - os_cmaui_1c1_nested2
+ disk.read.bytes_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.read.bytes_ps_server_nested2_1b
+ os_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - os_cmaui_1c1_nested2
+ network.incoming.bytes.rate_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.incoming.bytes.rate_pd_server_nested2_1b_pd_server_nested_b_port
+ attachment_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - attachment_pd_server_nested2_1b_pd_server_nested_b_port
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.allocation_server_pd_pattern4
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port
+ disk.ephemeral.size_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.ephemeral.size_pd_server_nested2_1b
+ memory.resident_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - memory.resident_pd_server_nested2_1b
+ network.outgoing.packets.rate_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.outgoing.packets.rate_pd_server_nested2_1b_pd_server_nested_b_port
+ disk.device.usage_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.usage_cmaui_1c1_nested2
+ disk.device.usage_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.usage_cmaui_1c1_nested2
+ feature_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - feature_server_pd_pattern4
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.write.requests.rate_server_pd_pattern4
+ network.outpoing.packets_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.outpoing.packets_ps_server_nested2_1b_ps_server_nested_b_port
+ feature_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - feature_ps_server_nested2_1b
+ memory.resident_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - memory.resident_cmaui_1c1_nested2
+ disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.latency_server_pd_pattern4
+ disk.device.iops_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.iops_cmaui_1c1_nested2
+ disk.device.iops_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.iops_cmaui_1c1_nested2
+ disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.usage_server_pd_pattern4
+ disk.device.write.bytes.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.write.bytes.rate_pd_server_nested2_1b
+ disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.read.bytes_server_pd_pattern4
+ disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.write.requests.rate_server_pd_pattern4
+ attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - attachment_pd_server_pattern4_port_2
+ network.outgoing.bytes.rate_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.outgoing.bytes.rate_pd_server_nested2_1b_pd_server_nested_b_port
+ network.incoming.packets.rate_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.incoming.packets.rate_ps_server_nested2_1b_ps_server_nested_b_port
+ disk.device.read.requests_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.requests_cmaui_1c1_nested2
+ binding_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - binding_ps_server_nested2_1b_ps_server_nested_b_port
+ host_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - host_server_pd_pattern4
+ disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.read.requests_server_pd_pattern4
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.bytes.rate_pd_server_pattern4_port_2
+ attachment_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - attachment_pd_server_pattern4_port_2
+ disk.usage_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.usage_pd_server_nested2_1b
+ disk.device.read.bytes.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.read.bytes.rate_ps_server_nested2_1b
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - cpu.delta_server_pd_pattern4
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_2
+ disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.write.bytes_server_pd_pattern4
+ disk.device.read.requests_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.requests_cmaui_1c1_nested2
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - feature_pd_server_pattern4_port_1
+ scalable_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - scalable_cmaui_1c1_nested2
+ cpu.delta_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - cpu.delta_cmaui_1c1_nested2
+ cpu.delta_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - cpu.delta_cmaui_1c1_nested2
+ cpu_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - cpu_pd_server_nested2_1b
+ disk.device.latency_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.latency_ps_server_nested2_1b
+ disk.capacity_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.capacity_pd_server_nested2_1b
+ memory.usage_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - memory.usage_pd_server_nested2_1b
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.root.size_server_pd_pattern4
+ cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - cpu.delta_server_pd_pattern4
+ scalable_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - scalable_cmaui_1c1_nested2
+ host_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - host_cmaui_1c1_nested2
+ host_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - host_cmaui_1c1_nested2
+ disk.capacity_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.capacity_cmaui_1c1_nested2
+ feature_jsa_security_group1_test_nested3Level:
+ - test_nested3Level
+ - feature_jsa_security_group1
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.bytes_pd_server_pattern4_port_2
+ disk.capacity_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.capacity_cmaui_1c1_nested2
+ disk.device.read.bytes_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.read.bytes_ps_server_nested2_1b
+ disk.device.read.requests_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.read.requests_pd_server_nested2_1b
+ disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.write.requests_server_pd_pattern4
+ endpoint_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - endpoint_cmaui_1c1_nested2
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.packets_cmaui_1c1_nested2_cmaui_port
+ disk.device.write.requests.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.write.requests.rate_ps_server_nested2_1b
+ network.incoming.packets_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.incoming.packets_ps_server_nested2_1b_ps_server_nested_b_port
+ binding_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - binding_pd_server_nested2_1b
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.packets_cmaui_1c1_nested2_cmaui_port
+ feature_jsa_security_group2_test_nested3Level:
+ - test_nested3Level
+ - feature_jsa_security_group2
+ disk.read.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.read.requests_server_pd_pattern4
+ feature_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - feature
+ disk.root.size_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.root.size_ps_server_nested2_1b
+ endpoint_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - endpoint_cmaui_1c1_nested2
+ disk.device.write.bytes_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.write.bytes_pd_server_nested2_1b
+ disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.ephemeral.size_server_pd_pattern4
+ network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.bytes_pd_server_pattern4_port_2
+ disk.usage_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.usage_cmaui_1c1_nested2
+ disk.usage_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.usage_cmaui_1c1_nested2
+ disk.device.write.requests_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.write.requests_pd_server_nested2_1b
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.bytes_pd_server_pattern4_port_2
+ cpu.delta_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - cpu.delta_pd_server_nested2_1b
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.bytes_pd_server_pattern4_port_1
+ host_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - host_ps_server_nested2_1b
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.write.bytes.rate_server_pd_pattern4
+ feature_jsa_security_group2_test_resourceGroup:
+ - test_resourceGroup
+ - feature_jsa_security_group2
+ feature_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - feature_pd_server_nested2_1b
+ disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.write.requests_server_pd_pattern4
+ network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.bytes_pd_server_pattern4_port_1
+ disk.device.read.requests.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.read.requests.rate_ps_server_nested2_1b
+ disk.read.requests_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.requests_cmaui_1c1_nested2
+ disk.device.read.requests.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.requests.rate_cmaui_1c1_nested2
+ disk.read.requests_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.requests_cmaui_1c1_nested2
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - binding_pd_server_pattern4_port_2
+ disk.device.read.requests.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.requests.rate_cmaui_1c1_nested2
+ cpu_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - cpu_cmaui_1c1_nested2
+ network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.packets.rate_pd_server_pattern4_port_2
+ cpu_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - cpu_cmaui_1c1_nested2
+ instance_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - instance_pd_server_nested2_1b
+ memory_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - memory_cmaui_1c1_nested2
+ memory_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - memory_cmaui_1c1_nested2
+ disk.allocation_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.allocation_server_pd_pattern4
+ disk.device.write.requests_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.requests_cmaui_1c1_nested2
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.read.bytes_server_pd_pattern4
+ scalable_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - scalable_server_pd_pattern4
+ disk.device.write.requests_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.requests_cmaui_1c1_nested2
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port
+ disk.write.requests_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.write.requests_ps_server_nested2_1b
+ disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.read.requests.rate_server_pd_pattern4
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port
+ disk.device.write.bytes_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.bytes_cmaui_1c1_nested2
+ network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.bytes.rate_pd_server_pattern4_port_2
+ memory_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - memory_ps_server_nested2_1b
+ binding_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - binding_server_pd_pattern4
+ disk.read.bytes_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.bytes_cmaui_1c1_nested2
+ disk.read.bytes_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.read.bytes_cmaui_1c1_nested2
+ disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.read.bytes.rate_server_pd_pattern4
+ disk.device.write.bytes_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.write.bytes_cmaui_1c1_nested2
+ os_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - os_server_pd_pattern4
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.capacity_server_pd_pattern4
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - attachment_pd_server_pattern4_port_1
+ network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.bytes_pd_server_pattern4_port_2
+ disk.write.requests_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.requests_cmaui_1c1_nested2
+ disk.write.requests_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.requests_cmaui_1c1_nested2
+ memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - memory.resident_server_pd_pattern4
+ scalable_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - scalable_ps_server_nested2_1b
+ instance_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - instance_server_pd_pattern4
+ disk.ephemeral.size_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.ephemeral.size_cmaui_1c1_nested2
+ disk.ephemeral.size_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.ephemeral.size_cmaui_1c1_nested2
+ disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.capacity_server_pd_pattern4
+ memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - memory.usage_server_pd_pattern4
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.read.bytes.rate_server_pd_pattern4
+ disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.capacity_server_pd_pattern4
+ attachment_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - attachment_cmaui_1c1_nested2_cmaui_port
+ disk.allocation_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.allocation_pd_server_nested2_1b
+ cpu_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - cpu_ps_server_nested2_1b
+ disk.device.write.bytes.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.write.bytes.rate_ps_server_nested2_1b
+ disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.write.bytes.rate_server_pd_pattern4
+ disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.write.bytes_server_pd_pattern4
+ disk.read.bytes.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.read.bytes.rate_ps_server_nested2_1b
+ disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.read.bytes_server_pd_pattern4
+ network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.incoming.bytes.rate_pd_server_pattern4_port_2
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port
+ disk.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.iops_server_pd_pattern4
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - attachment_cmaui_1c1_nested2_cmaui_port
+ attachment_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - attachment_pd_server_pattern4_port_1
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.device.iops_server_pd_pattern4
+ feature_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - feature_pd_server_pattern4_port_1
+ disk.device.iops_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.iops_server_pd_pattern4
+ disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.write.bytes.rate_server_pd_pattern4
+ disk.root.size_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.root.size_cmaui_1c1_nested2
+ disk.root.size_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.root.size_cmaui_1c1_nested2
+ network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.packets_pd_server_pattern4_port_1
+ disk.device.latency_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.latency_pd_server_nested2_1b
+ disk.write.bytes_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.bytes_cmaui_1c1_nested2
+ network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - network.outgoing.bytes_pd_server_pattern4_port_1
+ disk.write.bytes_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.write.bytes_cmaui_1c1_nested2
+ disk.iops_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.iops_cmaui_1c1_nested2
+ feature_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - feature_ps_server_nested2_1b_ps_server_nested_b_port
+ disk.iops_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.iops_cmaui_1c1_nested2
+ os_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - os_server_pd_pattern4
+ binding_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - binding_server_pd_pattern4
+ disk.iops_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.iops_pd_server_nested2_1b
+ disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.bytes.rate_cmaui_1c1_nested2
+ binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - binding_pd_server_pattern4_port_2
+ disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.read.bytes.rate_cmaui_1c1_nested2
+ network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outgoing.packets.rate_pd_server_pattern4_port_1
+ disk.latency_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.latency_cmaui_1c1_nested2
+ vcpus_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - vcpus_server_pd_pattern4
+ feature_test_nested3Level:
+ - test_nested3Level
+ - feature
+ disk.device.write.requests_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.write.requests_ps_server_nested2_1b
+ endpoint_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - endpoint_server_pd_pattern4
+ memory_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - memory_pd_server_nested2_1b
+ disk.write.requests.rate_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.write.requests.rate_ps_server_nested2_1b
+ network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.incoming.packets.rate_pd_server_pattern4_port_2
+ cpu_util_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - cpu_util_cmaui_1c1_nested2
+ disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.write.requests.rate_server_pd_pattern4
+ disk.device.read.bytes_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.read.bytes_pd_server_nested2_1b
+ disk.latency_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.latency_cmaui_1c1_nested2
+ cpu_util_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - cpu_util_cmaui_1c1_nested2
+ instance_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - instance_ps_server_nested2_1b
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port
+ host_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - host_pd_server_nested2_1b
+ disk.write.bytes_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.write.bytes_pd_server_nested2_1b
+ disk.read.bytes.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.read.bytes.rate_pd_server_nested2_1b
+ binding_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - binding_pd_server_nested2_1b_pd_server_nested_b_port
+ disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.root.size_server_pd_pattern4
+ network.incoming.bytes.rate_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - network.incoming.bytes.rate_ps_server_nested2_1b_ps_server_nested_b_port
+ disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.device.read.bytes.rate_server_pd_pattern4
+ disk.device.read.requests.rate_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - disk.device.read.requests.rate_pd_server_nested2_1b
+ binding_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - binding_ps_server_nested2_1b
+ disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - disk.read.bytes_server_pd_pattern4
+ disk.device.allocation_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - disk.device.allocation_ps_server_nested2_1b
+ feature_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - feature_server_pd_pattern4
+ scalable_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - scalable_pd_server_nested2_1b
+ network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - network.outpoing.packets_pd_server_pattern4_port_1
+ network.outgoing.bytes_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - network.outgoing.bytes_pd_server_nested2_1b_pd_server_nested_b_port
+ disk.device.allocation_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.allocation_cmaui_1c1_nested2
+ disk.write.requests_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - disk.write.requests_server_pd_pattern4
+ cpu.delta_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - cpu.delta_ps_server_nested2_1b
+ disk.device.allocation_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - disk.device.allocation_cmaui_1c1_nested2
+ requirements:
+ dependency_jsa_security_group1_test_resourceGroup:
+ - test_resourceGroup
+ - dependency_jsa_security_group1
+ port_jsa_security_group2_test_resourceGroup:
+ - test_resourceGroup
+ - port_jsa_security_group2
+ dependency_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - dependency_cmaui_1c1_nested2
+ dependency_jsa_security_group2_test_nested3Level:
+ - test_nested3Level
+ - dependency_jsa_security_group2
+ port_jsa_security_group1_test_resourceGroup:
+ - test_resourceGroup
+ - port_jsa_security_group1
+ dependency_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - dependency_pd_server_pattern4_port_2
+ link_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - link_ps_server_nested2_1b_ps_server_nested_b_port
+ dependency_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - dependency_ps_server_nested2_1b
+ dependency_jsa_security_group2_test_resourceGroup:
+ - test_resourceGroup
+ - dependency_jsa_security_group2
+ local_storage_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - local_storage_server_pd_pattern4
+ dependency_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - dependency_cmaui_1c1_nested2
+ link_pd_server_pattern4_port_2_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - link_pd_server_pattern4_port_2
+ port_jsa_security_group2_test_nested3Level:
+ - test_nested3Level
+ - port_jsa_security_group2
+ dependency_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - dependency_pd_server_nested2_1b
+ link_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - link_cmaui_1c1_nested2_cmaui_port
+ link_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - link_cmaui_1c1_nested2_cmaui_port
+ local_storage_server_nested2_ps_1b:
+ - abstract_ps_server_nested2_1b
+ - local_storage_ps_server_nested2_1b
+ dependency_test_resourceGroup:
+ - test_resourceGroup
+ - dependency
+ dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - dependency_pd_server_pattern4_port_1
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1c1_nested2
+ - dependency_cmaui_1c1_nested2_cmaui_port
+ link_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - link_pd_server_nested2_1b_pd_server_nested_b_port
+ dependency_server_pd_pattern4_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - dependency_server_pd_pattern4
+ dependency_test_nested3Level:
+ - test_nested3Level
+ - dependency
+ dependency_cmaui_port_2:
+ - abstract_cmaui_1c1_nested2
+ - dependency_cmaui_1c1_nested2_cmaui_port
+ local_storage_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - local_storage_server_pd_pattern4
+ dependency_pd_server_nested2_1b_port:
+ - abstract_pd_server_nested2_1b
+ - dependency_pd_server_nested2_1b_pd_server_nested_b_port
+ port_jsa_security_group1_test_nested3Level:
+ - test_nested3Level
+ - port_jsa_security_group1
+ link_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - link_pd_server_pattern4_port_1
+ dependency_ps_server_nested2_1b_port:
+ - abstract_ps_server_nested2_1b
+ - dependency_ps_server_nested2_1b_ps_server_nested_b_port
+ dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - dependency_pd_server_pattern4_port_2
+ link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - link_pd_server_pattern4_port_2
+ dependency_jsa_security_group1_test_nested3Level:
+ - test_nested3Level
+ - dependency_jsa_security_group1
+ dependency_server_pd_pattern4_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - dependency_server_pd_pattern4
+ link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - link_pd_server_pattern4_port_1
+ local_storage_server_nested2_1c1_cmaui_2:
+ - abstract_cmaui_1c1_nested2
+ - local_storage_cmaui_1c1_nested2
+ local_storage_server_nested2_pd_1b:
+ - abstract_pd_server_nested2_1b
+ - local_storage_pd_server_nested2_1b
+ dependency_test_nested_pattern_4_same_type_diff_file:
+ - test_nested_pattern_4_same_type_diff_file
+ - dependency
+ local_storage_server_nested2_1c1_cmaui_1:
+ - abstract_cmaui_1c1_nested2
+ - local_storage_cmaui_1c1_nested2
+ dependency_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - dependency
+ dependency_pd_server_pattern4_port_1_test_nested_pattern_4_nested2:
+ - test_nested_pattern_4_nested2
+ - dependency_pd_server_pattern4_port_1
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/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested3ServiceTemplate.yaml
new file mode 100644
index 0000000000..8494dfbf9a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested3ServiceTemplate.yaml
@@ -0,0 +1,87 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested3
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ name:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ indx:
+ hidden: false
+ immutable: false
+ type: string
+ description: nested parameter
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ node_templates:
+ jsa_security_group1:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_name
+ description: ems security group
+ rules:
+ - protocol: icmp
+ ethertype: IPv6
+ remote_ip_prefix: ::/0
+ direction: ingress
+ jsa_security_group2:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_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
+ groups:
+ nested3_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested3.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - jsa_security_group1
+ - jsa_security_group2
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested3
+ capabilities:
+ feature_jsa_security_group2:
+ - jsa_security_group2
+ - feature
+ feature_jsa_security_group1:
+ - jsa_security_group1
+ - feature
+ requirements:
+ dependency_jsa_security_group1:
+ - jsa_security_group1
+ - dependency
+ dependency_jsa_security_group2:
+ - jsa_security_group2
+ - dependency
+ port_jsa_security_group2:
+ - jsa_security_group2
+ - port
+ port_jsa_security_group1:
+ - jsa_security_group1
+ - port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/MANIFEST.json
new file mode 100644
index 0000000000..10f0e8cbdd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/MANIFEST.json
@@ -0,0 +1,27 @@
+{
+ "name": "Port to Network multi nested test",
+ "description": "HOT template to create multi nested of 4 levels",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested3.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/main.yml
new file mode 100644
index 0000000000..e7413fdc09
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/main.yml
@@ -0,0 +1,54 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: security_group_name
+ jsa_net_name:
+ type: string
+ description: network name of jsa network
+ contrail_net_name:
+ type: string
+ description: network name of contrail v2 network
+
+resources:
+ jsa_security_group1:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+
+ jsa_security_group2:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}]
+
+ test_net:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_param: jsa_net_name}
+ shared: True
+
+ test_contrailV2_net:
+ type: OS::ContrailV2::VirtualNetwork
+ properties:
+ name: { get_param: contrail_net_name }
+
+ test_nested1Level:
+ type: nested1.yml
+ properties:
+ p1: { get_resource: jsa_security_group1}
+ p2: { get_resource: jsa_security_group2}
+ net1: { get_resource: test_net}
+ net2: { get_attr: [ test_contrailV2_net, fq_name ] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested1.yml
new file mode 100644
index 0000000000..c94b294b14
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested1.yml
@@ -0,0 +1,91 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net1:
+ type: string
+ description: Neutron network
+ net2:
+ type: string
+ description: Contrail V2 network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_image:
+ type: string
+ description: PD Image server
+ ps_server_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ ps_server_ips:
+ type: string
+ net:
+ type: string
+
+resources:
+ pd_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net1 }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ security_groups: [{get_param: p1},{get_param: p2}]
+ replacement_policy: AUTO
+
+ ps_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net2 }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port }
+
+ server_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_names, 1]}
+ image: { get_param: ps_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_flavor }
+ networks:
+ - port: { get_resource: ps_server_port }
+
+ test_nested2Level:
+ type: nested2.yml
+ properties:
+ p1: { get_param: p1}
+ p2: { get_param: p2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested2.yml
new file mode 100644
index 0000000000..8fbe2ac6aa
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested2.yml
@@ -0,0 +1,96 @@
+heat_template_version: 2013-05-23
+
+description: nested2
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net1:
+ type: string
+ description: Neutron network
+ net2:
+ type: string
+ description: Contrail V2 network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ sm_server_names:
+ type: comma_delimited_list
+ description: SM server names
+ sm_server_image:
+ type: string
+ description: SM Image server
+ oam_server_names:
+ type: comma_delimited_list
+ description: OAM server names
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ type: string
+ oam_server_ips:
+ type: string
+ net:
+ type: string
+
+resources:
+ sm_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net1 }
+ fixed_ips: [{"ip_address": {get_param: [sm_server_ips, 0]}}]
+ security_groups: [{get_param: p1},{get_param: p2}]
+ replacement_policy: AUTO
+
+ oam_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net2 }
+ fixed_ips: [{"ip_address": {get_param: [oam_server_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_sm:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [sm_server_names, 0]}
+ image: { get_param: sm_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: sm_server_flavor }
+ networks:
+ - port: { get_resource: sm_server_port }
+
+ server_oam:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_names, 1]}
+ image: { get_param: oam_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_flavor }
+ networks:
+ - port: { get_resource: oam_server_port }
+
+
+ test_resourceGroup:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 9
+ resource_def:
+ type: nested3.yml
+ properties:
+ p1: { get_param: net}
+ indx: "%index%" \ 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/in/nested3.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested3.yml
new file mode 100644
index 0000000000..7e4fee5a6e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/in/nested3.yml
@@ -0,0 +1,66 @@
+heat_template_version: 2013-05-23
+
+description: nested4
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ net1:
+ type: string
+ description: Neutron network
+ net2:
+ type: string
+ description: Contrail V2 network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ net:
+ type: string
+ indx:
+ type: number
+
+resources:
+ cmaui_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net1 }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ cmaui_port_8:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net2 }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p2},{get_param: p2}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_7 }
+ - port: { get_resource: cmaui_port_8 } \ 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/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..e8301c06c2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,5294 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_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
+ port_pd_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ 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_pd_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_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_pd_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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.packets.rate_pd_server_pd_server_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_pd_server_pd_server_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_pd_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_pd_server_pd_server_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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.outpoing.packets_pd_server_pd_server_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_pd_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_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd_server_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.iops_pd_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_pd_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_pd_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server_pd_server_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pd_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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.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
+ net2:
+ type: string
+ description: Contrail V2 network
+ required: true
+ status: SUPPORTED
+ net1:
+ type: string
+ description: Neutron network
+ required: true
+ status: SUPPORTED
+ indx:
+ type: float
+ 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.oam_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_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_oam_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ 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_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ requirements:
+ - dependency_oam_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ cpu.delta_oam_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_oam_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_oam_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_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_oam_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_oam_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.outpoing.packets_oam_server_oam_server_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_oam_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_oam_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.rate_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_oam_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.usage_oam_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_oam_server_oam_server_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_oam_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_oam_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.iops_oam_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_oam_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_oam_server_oam_server_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_oam_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_oam_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_oam_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_oam_server_oam_server_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_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_oam_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_oam_server_oam_server_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_oam_server_oam_server_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_oam_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.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ net2:
+ type: string
+ description: Contrail V2 network
+ required: true
+ status: SUPPORTED
+ net1:
+ type: string
+ description: Neutron network
+ 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
+ pd_server_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ ps_server_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_server_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port:
+ 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
+ - dependency_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_port_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_port_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_oam_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_resourceGroup_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_sm_server_port_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_port_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_sm_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_sm_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.allocation_server_sm_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_sm_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_ps:
+ type: org.openecomp.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_sm_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_resourceGroup_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_oam_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_sm_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_sm_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_sm_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_oam_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_resourceGroup_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_sm_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_sm_server_port_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_ps_server_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_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_oam_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_oam_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_resourceGroup_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_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_sm_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_resourceGroup_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_resourceGroup_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_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_resourceGroup_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_server_sm_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_resourceGroup_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_oam_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_ps_server_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_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes.rate_server_oam_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_oam_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_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_server_cmaui_test_resourceGroup_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_oam_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_ps_server_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_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_oam_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_cmaui_test_resourceGroup_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_oam_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_resourceGroup_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_pd:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_sm_server_port_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.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
+ 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.capacity_server_cmaui_test_resourceGroup_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_sm_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.ephemeral.size_server_oam_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_pd_server_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.rate_server_sm_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_oam_server_port_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_oam_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_pd_server_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_server_oam_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_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_cmaui_test_resourceGroup_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.ephemeral.size_server_ps:
+ type: org.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_sm_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_ps:
+ type: org.openecomp.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_sm_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_sm_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_7_test_resourceGroup_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_sm_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_sm_server_port_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_resourceGroup_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.ephemeral.size_server_cmaui_test_resourceGroup_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_7_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_8_test_resourceGroup_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_oam_server_port_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_sm_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_sm_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_pd_server_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_server_sm_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_port_8_test_resourceGroup_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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_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_sm_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_ps_server_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_oam_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_resourceGroup_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_oam_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_sm_server_port_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_resourceGroup_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_oam_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_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_ps_server_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_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_cmaui_test_resourceGroup_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_pd_server_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_server_sm_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_ps:
+ type: org.openecomp.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_oam_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_sm_server_port_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_server_sm_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_sm_server_port_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_ps:
+ type: org.openecomp.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_resourceGroup_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_oam_server_port_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_sm_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_sm_server_port_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_oam_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_oam_server_port_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_sm_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_7_test_resourceGroup_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_resourceGroup_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_resourceGroup_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ 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
+ disk.device.write.requests.rate_server_sm_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_resourceGroup_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_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_ps:
+ type: org.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_ps:
+ type: org.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_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
+ instance_server_ps:
+ type: org.openecomp.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_oam_server_port_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_ps:
+ type: org.openecomp.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
+ disk.root.size_server_sm_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_oam_server_port_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_sm_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps:
+ type: org.openecomp.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_resourceGroup_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_oam_server_port_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_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_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_sm_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_resourceGroup_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_ps:
+ type: org.openecomp.capabilities.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_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_pd:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_oam_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_ps:
+ type: org.openecomp.capabilities.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.read.bytes_server_oam_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_ps:
+ type: tosca.capabilities.Scalable
+ 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
+ feature_server_cmaui_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_sm_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_oam_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_oam_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_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
+ disk.write.bytes_server_oam_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_oam_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_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_cmaui_port_8_test_resourceGroup_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_sm_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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_oam_server_port_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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_ps:
+ type: org.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.ephemeral.size_server_sm_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_resourceGroup_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_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_oam_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ 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.read.requests_server_cmaui_test_resourceGroup_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_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_cmaui_port_7_test_resourceGroup_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_sm_server_port_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_ps:
+ type: org.openecomp.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_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_ps:
+ type: org.openecomp.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_resourceGroup_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_resourceGroup_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_oam_server_port_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_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_oam_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_ps_server_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_server_cmaui_test_resourceGroup_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_oam_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_ps:
+ type: org.openecomp.capabilities.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_resourceGroup_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_pd_server_port:
+ type: tosca.capabilities.Attachment
+ 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
+ scalable_server_oam_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_cmaui_port_7_test_resourceGroup_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_sm_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_sm_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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:
+ type: org.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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_test_resourceGroup_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_oam_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_ps:
+ type: org.openecomp.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_sm_server_port_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_pd:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7_test_resourceGroup_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_resourceGroup_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_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_oam_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_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
+ memory.usage_server_oam_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_sm_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_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_ps:
+ type: org.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
+ endpoint_server_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_sm_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_resourceGroup_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_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_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ endpoint_server_pd:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_ps:
+ type: org.openecomp.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_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_oam_server_port_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_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_server_cmaui_test_resourceGroup_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_oam_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_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_ps:
+ type: org.openecomp.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_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_cmaui_test_resourceGroup_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_resourceGroup_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_oam_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_ps:
+ type: org.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_sm_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_oam_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_oam_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_resourceGroup_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.capabilities.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_sm_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_pd_server_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_pd_server_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_server_sm_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_resourceGroup_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_resourceGroup_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_resourceGroup_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_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_server_oam_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_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_sm_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_oam_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_oam_server_port_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_port_8_test_resourceGroup_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_ps:
+ type: tosca.capabilities.Node
+ 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
+ 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
+ network.outgoing.bytes.rate_cmaui_port_7_test_resourceGroup_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_sm_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_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
+ disk.device.read.bytes_server_sm_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_sm_server_port_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_ps:
+ type: org.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.device.latency_server_cmaui_test_resourceGroup_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_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_sm_server_port_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_sm_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_test_resourceGroup_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_7_test_resourceGroup_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ net2:
+ type: string
+ description: Contrail V2 network
+ required: true
+ status: SUPPORTED
+ net1:
+ type: string
+ description: Neutron network
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_names:
+ type: list
+ description: SM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ required: true
+ status: SUPPORTED
+ oam_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ required: true
+ status: SUPPORTED
+ sm_server_ips:
+ 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
+ oam_server_names:
+ type: list
+ description: OAM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ required: true
+ status: SUPPORTED
+ sm_server_image:
+ type: string
+ description: SM Image server
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_7_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_7_test_resourceGroup:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_port_8_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_8_test_resourceGroup:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_cmaui_test_resourceGroup:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_resourceGroup:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_sm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_sm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ network.outpoing.packets_cmaui_port_7_test_resourceGroup:
+ type: org.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_resourceGroup:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.resident_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.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_sm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_sm:
+ type: org.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
+ feature_cmaui_port_8_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_test_resourceGroup:
+ type: org.openecomp.capabilities.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.usage_server_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ feature_server_cmaui_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_sm_server_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_server_sm:
+ type: org.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_oam_server_port:
+ type: tosca.capabilities.Node
+ 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.iops_server_cmaui_test_resourceGroup:
+ type: org.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_sm:
+ type: org.openecomp.capabilities.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
+ host_server_sm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ 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
+ disk.capacity_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_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.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
+ cpu_util_server_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.capabilities.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_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_oam_server_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_cmaui_port_8_test_resourceGroup:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.capabilities.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_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_cmaui_test_resourceGroup:
+ type: org.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.device.read.bytes_server_sm:
+ type: org.openecomp.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.write.requests.rate_server_cmaui_test_resourceGroup:
+ type: org.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_resourceGroup:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.capabilities.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
+ attachment_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_cmaui_test_resourceGroup:
+ type: org.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
+ disk.device.usage_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.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_sm:
+ type: tosca.capabilities.Node
+ 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
+ cpu_server_cmaui_test_resourceGroup:
+ type: org.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_sm:
+ type: org.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
+ 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
+ binding_server_cmaui_test_resourceGroup:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_sm:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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
+ attachment_cmaui_port_8_test_resourceGroup:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_port_8_test_resourceGroup:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.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_resourceGroup:
+ type: tosca.capabilities.Attachment
+ 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
+ endpoint_server_sm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_sm:
+ type: org.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
+ feature_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_sm:
+ type: org.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_resourceGroup:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - 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
+ disk.allocation_server_cmaui_test_resourceGroup:
+ type: org.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_sm:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.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_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_cmaui_test_resourceGroup:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_sm:
+ type: org.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_sm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_resourceGroup:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_sm_server_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_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_sm_server_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_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.bytes_server_cmaui_test_resourceGroup:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.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_sm:
+ type: org.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
+ network.incoming.bytes.rate_cmaui_port_8_test_resourceGroup:
+ type: org.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_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.openecomp.capabilities.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.read.bytes_server_sm:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.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_sm:
+ type: org.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_resourceGroup:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_sm_server_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_cmaui_port_7_test_resourceGroup:
+ type: org.openecomp.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_oam_server_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_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_oam_server_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_sm_server_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_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_oam_server_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_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_sm:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ network.outpoing.packets_oam_server_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_oam:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui_port_7_test_resourceGroup:
+ type: org.openecomp.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
+ disk.write.requests_server_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_sm:
+ type: org.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
+ network.outpoing.packets_cmaui_port_8_test_resourceGroup:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.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_resourceGroup:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_sm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_sm:
+ type: org.openecomp.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_oam_server_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_server_sm:
+ type: org.openecomp.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
+ vcpus_server_cmaui_test_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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_oam_server_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_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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
+ network.outgoing.packets.rate_cmaui_port_8_test_resourceGroup:
+ type: org.openecomp.capabilities.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_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_cmaui_test_resourceGroup:
+ type: org.openecomp.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_sm_server_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_cmaui_test_resourceGroup:
+ type: org.openecomp.capabilities.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_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_oam_server_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_cmaui_test_resourceGroup:
+ type: org.openecomp.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_resourceGroup:
+ type: org.openecomp.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_sm:
+ type: org.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
+ feature_cmaui_port_7_test_resourceGroup:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_cmaui_test_resourceGroup:
+ type: org.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_resourceGroup:
+ type: org.openecomp.capabilities.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_resourceGroup:
+ type: org.openecomp.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_sm_server_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_server_sm:
+ type: org.openecomp.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_resourceGroup:
+ type: org.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_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_sm_server_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.iops_server_sm:
+ type: org.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.sm_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_sm_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_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_sm_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_sm_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_sm_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_sm_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_sm_server_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.requests_sm_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_sm_server_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_server_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_sm_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_sm_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_sm_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.outpoing.packets_sm_server_sm_server_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_sm_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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.rate_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_sm_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_sm_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_sm_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.rate_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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.ephemeral.size_sm_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.packets.rate_sm_server_sm_server_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_sm_server_sm_server_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_sm_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_sm_server_sm_server_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.ps_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ 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
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_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_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ instance_ps_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_ps_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_ps_server_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_ps_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_ps_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_ps_server_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.rate_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_ps_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_ps_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_ps_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.ephemeral.size_ps_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_ps_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_ps_server_ps_server_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.iops_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_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_ps_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_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_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_ps_server_ps_server_port:
+ 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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.outpoing.packets_ps_server_ps_server_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_ps_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_ps_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_ps_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
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/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..6926f33ace
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/MainServiceTemplate.yaml
@@ -0,0 +1,128 @@
+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:
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ contrail_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of contrail v2 network
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa network
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1: jsa_security_group1
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2: jsa_security_group2
+ net2:
+ get_attribute:
+ - test_contrailV2_net
+ - fq_name
+ net1: test_net
+ requirements:
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ node: test_contrailV2_net
+ relationship: tosca.relationships.network.LinksTo
+ - link_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ node: test_net
+ relationship: tosca.relationships.network.LinksTo
+ test_contrailV2_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+ properties:
+ network_name:
+ get_input: contrail_net_name
+ test_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ shared: true
+ network_name:
+ get_input: jsa_net_name
+ jsa_security_group1:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_name
+ description: ems security group
+ rules:
+ - protocol: icmp
+ ethertype: IPv6
+ remote_ip_prefix: ::/0
+ direction: ingress
+ requirements:
+ - port:
+ capability: attachment_oam_server_port_test_nested2Level
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_ps_server_port
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_pd_server_port
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_sm_server_port_test_nested2Level
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ jsa_security_group2:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_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_pd_server_port
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_sm_server_port_test_nested2Level
+ node: test_nested1Level
+ relationship: org.openecomp.relationships.AttachesTo
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
+ - test_contrailV2_net
+ - test_net
+ - jsa_security_group1
+ - jsa_security_group2
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/Nested_oam_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_oam_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4b4ec5e6e5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_oam_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_order:
+ type: integer
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_oam_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ node_templates:
+ oam_server:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_name
+ - index_value
+ oam_server_oam_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_oam_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_oam_server_port_mac_requirements
+ order:
+ get_input: port_oam_server_port_order
+ security_groups:
+ get_input:
+ - port_oam_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_oam_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_oam_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_server_port_network_role_tag
+ network_role:
+ get_input: port_oam_server_port_network_role
+ fixed_ips:
+ get_input: port_oam_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_oam_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_oam_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server
+ capabilities:
+ cpu.delta_oam_server:
+ - oam_server
+ - cpu.delta
+ host_oam_server:
+ - oam_server
+ - host
+ disk.usage_oam_server:
+ - oam_server
+ - disk.usage
+ network.incoming.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets.rate
+ feature_oam_server:
+ - oam_server
+ - feature
+ disk.device.write.bytes_oam_server:
+ - oam_server
+ - disk.device.write.bytes
+ cpu_util_oam_server:
+ - oam_server
+ - cpu_util
+ network.outpoing.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outpoing.packets
+ disk.capacity_oam_server:
+ - oam_server
+ - disk.capacity
+ memory_oam_server:
+ - oam_server
+ - memory
+ disk.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.read.bytes.rate
+ disk.write.bytes_oam_server:
+ - oam_server
+ - disk.write.bytes
+ disk.write.requests_oam_server:
+ - oam_server
+ - disk.write.requests
+ attachment_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - attachment
+ cpu_oam_server:
+ - oam_server
+ - cpu
+ vcpus_oam_server:
+ - oam_server
+ - vcpus
+ disk.device.read.requests.rate_oam_server:
+ - oam_server
+ - disk.device.read.requests.rate
+ disk.allocation_oam_server:
+ - oam_server
+ - disk.allocation
+ disk.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.write.bytes.rate
+ disk.device.write.requests.rate_oam_server:
+ - oam_server
+ - disk.device.write.requests.rate
+ instance_oam_server:
+ - oam_server
+ - instance
+ memory.resident_oam_server:
+ - oam_server
+ - memory.resident
+ disk.device.read.requests_oam_server:
+ - oam_server
+ - disk.device.read.requests
+ disk.device.allocation_oam_server:
+ - oam_server
+ - disk.device.allocation
+ disk.device.write.requests_oam_server:
+ - oam_server
+ - disk.device.write.requests
+ binding_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - binding
+ disk.iops_oam_server:
+ - oam_server
+ - disk.iops
+ disk.device.capacity_oam_server:
+ - oam_server
+ - disk.device.capacity
+ binding_oam_server:
+ - oam_server
+ - binding
+ disk.device.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.write.bytes.rate
+ disk.device.usage_oam_server:
+ - oam_server
+ - disk.device.usage
+ network.incoming.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes.rate
+ disk.latency_oam_server:
+ - oam_server
+ - disk.latency
+ disk.read.requests_oam_server:
+ - oam_server
+ - disk.read.requests
+ disk.device.iops_oam_server:
+ - oam_server
+ - disk.device.iops
+ disk.root.size_oam_server:
+ - oam_server
+ - disk.root.size
+ network.outgoing.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes
+ disk.device.latency_oam_server:
+ - oam_server
+ - disk.device.latency
+ feature_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - feature
+ memory.usage_oam_server:
+ - oam_server
+ - memory.usage
+ endpoint_oam_server:
+ - oam_server
+ - endpoint
+ network.outgoing.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes.rate
+ scalable_oam_server:
+ - oam_server
+ - scalable
+ disk.write.requests.rate_oam_server:
+ - oam_server
+ - disk.write.requests.rate
+ network.incoming.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes
+ disk.device.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.read.bytes.rate
+ disk.device.read.bytes_oam_server:
+ - oam_server
+ - disk.device.read.bytes
+ os_oam_server:
+ - oam_server
+ - os
+ disk.read.bytes_oam_server:
+ - oam_server
+ - disk.read.bytes
+ network.incoming.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.packets.rate
+ disk.ephemeral.size_oam_server:
+ - oam_server
+ - disk.ephemeral.size
+ requirements:
+ dependency_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - dependency
+ local_storage_oam_server:
+ - oam_server
+ - local_storage
+ dependency_oam_server:
+ - oam_server
+ - dependency
+ link_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - link
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/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..e3396eb9ef
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_subnetpoolid:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ port_pd_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_port_order:
+ type: integer
+ required: true
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ pd_server_pd_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_pd_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_pd_server_port_mac_requirements
+ order:
+ get_input: port_pd_server_port_order
+ security_groups:
+ get_input:
+ - port_pd_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pd_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_network_role_tag
+ network_role:
+ get_input: port_pd_server_port_network_role
+ fixed_ips:
+ get_input: port_pd_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_pd_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ network.outgoing.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ network.outgoing.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes.rate
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.outpoing.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outpoing.packets
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ network.incoming.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ attachment_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - attachment
+ network.incoming.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.incoming.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ feature_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - feature
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ binding_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - binding
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ network.outgoing.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - link
+ dependency_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - dependency
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/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..2513bf731f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_ps_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ node_templates:
+ ps_server_ps_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_ps_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_ps_server_port_mac_requirements
+ order:
+ get_input: port_ps_server_port_order
+ security_groups:
+ get_input:
+ - port_ps_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_ps_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_ps_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_port_network_role_tag
+ network_role:
+ get_input: port_ps_server_port_network_role
+ fixed_ips:
+ get_input: port_ps_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_ps_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_ps_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server
+ relationship: tosca.relationships.network.BindsTo
+ ps_server:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server
+ capabilities:
+ instance_ps_server:
+ - ps_server
+ - instance
+ host_ps_server:
+ - ps_server
+ - host
+ network.incoming.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets
+ cpu.delta_ps_server:
+ - ps_server
+ - cpu.delta
+ disk.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.write.bytes.rate
+ feature_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - feature
+ feature_ps_server:
+ - ps_server
+ - feature
+ disk.root.size_ps_server:
+ - ps_server
+ - disk.root.size
+ disk.device.read.requests.rate_ps_server:
+ - ps_server
+ - disk.device.read.requests.rate
+ cpu_ps_server:
+ - ps_server
+ - cpu
+ disk.device.write.bytes_ps_server:
+ - ps_server
+ - disk.device.write.bytes
+ disk.device.read.bytes_ps_server:
+ - ps_server
+ - disk.device.read.bytes
+ disk.read.bytes_ps_server:
+ - ps_server
+ - disk.read.bytes
+ network.incoming.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes
+ disk.device.iops_ps_server:
+ - ps_server
+ - disk.device.iops
+ disk.device.latency_ps_server:
+ - ps_server
+ - disk.device.latency
+ disk.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.read.bytes.rate
+ memory_ps_server:
+ - ps_server
+ - memory
+ scalable_ps_server:
+ - ps_server
+ - scalable
+ attachment_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - attachment
+ disk.write.requests.rate_ps_server:
+ - ps_server
+ - disk.write.requests.rate
+ disk.write.requests_ps_server:
+ - ps_server
+ - disk.write.requests
+ disk.latency_ps_server:
+ - ps_server
+ - disk.latency
+ disk.ephemeral.size_ps_server:
+ - ps_server
+ - disk.ephemeral.size
+ disk.device.capacity_ps_server:
+ - ps_server
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets.rate
+ disk.iops_ps_server:
+ - ps_server
+ - disk.iops
+ disk.device.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.read.bytes.rate
+ cpu_util_ps_server:
+ - ps_server
+ - cpu_util
+ memory.resident_ps_server:
+ - ps_server
+ - memory.resident
+ disk.device.read.requests_ps_server:
+ - ps_server
+ - disk.device.read.requests
+ disk.write.bytes_ps_server:
+ - ps_server
+ - disk.write.bytes
+ network.outgoing.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests.rate_ps_server:
+ - ps_server
+ - disk.device.write.requests.rate
+ disk.read.requests_ps_server:
+ - ps_server
+ - disk.read.requests
+ disk.allocation_ps_server:
+ - ps_server
+ - disk.allocation
+ memory.usage_ps_server:
+ - ps_server
+ - memory.usage
+ binding_ps_server:
+ - ps_server
+ - binding
+ os_ps_server:
+ - ps_server
+ - os
+ disk.device.usage_ps_server:
+ - ps_server
+ - disk.device.usage
+ binding_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - binding
+ disk.device.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.write.bytes.rate
+ vcpus_ps_server:
+ - ps_server
+ - vcpus
+ network.outgoing.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes
+ disk.usage_ps_server:
+ - ps_server
+ - disk.usage
+ disk.device.write.requests_ps_server:
+ - ps_server
+ - disk.device.write.requests
+ network.outpoing.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outpoing.packets
+ endpoint_ps_server:
+ - ps_server
+ - endpoint
+ disk.capacity_ps_server:
+ - ps_server
+ - disk.capacity
+ disk.device.allocation_ps_server:
+ - ps_server
+ - disk.device.allocation
+ requirements:
+ dependency_ps_server:
+ - ps_server
+ - dependency
+ dependency_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - dependency
+ link_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - link
+ local_storage_ps_server:
+ - ps_server
+ - local_storage
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/Nested_sm_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_sm_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..08e4b3afe4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/Nested_sm_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_sm_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.sm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_sm_server_port_order:
+ type: integer
+ required: true
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ port_sm_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ compute_sm_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_sm_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ sm_server:
+ type: org.openecomp.resource.vfc.nodes.heat.sm_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_sm_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_sm_server_name
+ - index_value
+ sm_server_sm_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_sm_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_sm_server_port_mac_requirements
+ order:
+ get_input: port_sm_server_port_order
+ security_groups:
+ get_input:
+ - port_sm_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_sm_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_sm_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_sm_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_sm_server_port_network_role_tag
+ network_role:
+ get_input: port_sm_server_port_network_role
+ fixed_ips:
+ get_input: port_sm_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_sm_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_sm_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: sm_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.sm_server
+ capabilities:
+ disk.device.read.requests_sm_server:
+ - sm_server
+ - disk.device.read.requests
+ binding_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - binding
+ disk.iops_sm_server:
+ - sm_server
+ - disk.iops
+ disk.device.capacity_sm_server:
+ - sm_server
+ - disk.device.capacity
+ disk.device.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.read.bytes.rate
+ disk.device.write.requests.rate_sm_server:
+ - sm_server
+ - disk.device.write.requests.rate
+ disk.device.allocation_sm_server:
+ - sm_server
+ - disk.device.allocation
+ network.incoming.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes
+ attachment_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - attachment
+ memory.usage_sm_server:
+ - sm_server
+ - memory.usage
+ binding_sm_server:
+ - sm_server
+ - binding
+ disk.read.requests_sm_server:
+ - sm_server
+ - disk.read.requests
+ network.outpoing.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outpoing.packets
+ endpoint_sm_server:
+ - sm_server
+ - endpoint
+ disk.device.read.requests.rate_sm_server:
+ - sm_server
+ - disk.device.read.requests.rate
+ disk.capacity_sm_server:
+ - sm_server
+ - disk.capacity
+ disk.allocation_sm_server:
+ - sm_server
+ - disk.allocation
+ disk.root.size_sm_server:
+ - sm_server
+ - disk.root.size
+ disk.usage_sm_server:
+ - sm_server
+ - disk.usage
+ vcpus_sm_server:
+ - sm_server
+ - vcpus
+ disk.write.bytes_sm_server:
+ - sm_server
+ - disk.write.bytes
+ cpu.delta_sm_server:
+ - sm_server
+ - cpu.delta
+ os_sm_server:
+ - sm_server
+ - os
+ feature_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - feature
+ memory.resident_sm_server:
+ - sm_server
+ - memory.resident
+ network.outgoing.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes
+ instance_sm_server:
+ - sm_server
+ - instance
+ cpu_sm_server:
+ - sm_server
+ - cpu
+ disk.device.write.bytes_sm_server:
+ - sm_server
+ - disk.device.write.bytes
+ network.incoming.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets.rate
+ disk.write.requests.rate_sm_server:
+ - sm_server
+ - disk.write.requests.rate
+ disk.device.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.write.bytes.rate
+ disk.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.write.bytes.rate
+ disk.device.write.requests_sm_server:
+ - sm_server
+ - disk.device.write.requests
+ disk.device.latency_sm_server:
+ - sm_server
+ - disk.device.latency
+ host_sm_server:
+ - sm_server
+ - host
+ feature_sm_server:
+ - sm_server
+ - feature
+ disk.device.usage_sm_server:
+ - sm_server
+ - disk.device.usage
+ scalable_sm_server:
+ - sm_server
+ - scalable
+ disk.device.iops_sm_server:
+ - sm_server
+ - disk.device.iops
+ disk.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.read.bytes.rate
+ disk.device.read.bytes_sm_server:
+ - sm_server
+ - disk.device.read.bytes
+ disk.latency_sm_server:
+ - sm_server
+ - disk.latency
+ network.incoming.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes.rate
+ disk.read.bytes_sm_server:
+ - sm_server
+ - disk.read.bytes
+ disk.write.requests_sm_server:
+ - sm_server
+ - disk.write.requests
+ cpu_util_sm_server:
+ - sm_server
+ - cpu_util
+ disk.ephemeral.size_sm_server:
+ - sm_server
+ - disk.ephemeral.size
+ network.outgoing.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets
+ memory_sm_server:
+ - sm_server
+ - memory
+ network.outgoing.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes.rate
+ requirements:
+ dependency_sm_server:
+ - sm_server
+ - dependency
+ dependency_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - dependency
+ local_storage_sm_server:
+ - sm_server
+ - local_storage
+ link_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - link
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/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..18ad097c1a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,1093 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net2:
+ hidden: false
+ immutable: false
+ type: string
+ description: Contrail V2 network
+ net1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron network
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ ps_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ compute_pd_server_availability_zone:
+ - get_input: availability_zone_0
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd_server_port_network:
+ - get_input: net1
+ vm_flavor_name:
+ get_input: pd_server_flavor
+ port_pd_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_image
+ port_pd_server_port_replacement_policy:
+ - AUTO
+ port_pd_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server:
+ type: org.openecomp.resource.abstract.nodes.ps_server
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_port_network:
+ - get_input: net2
+ compute_ps_server_name:
+ - get_input:
+ - ps_server_names
+ - 1
+ port_ps_server_port_security_groups:
+ - - get_input: p1
+ compute_ps_server_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_flavor
+ port_ps_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_image
+ port_ps_server_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested2Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested2ServiceTemplate.yaml
+ p2:
+ get_input: p2
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - test_nested2Level
+ - abstract_pd_server
+ - abstract_ps_server
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.device.allocation_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_sm
+ binding_server_sm_test_nested2Level:
+ - test_nested2Level
+ - binding_server_sm
+ disk.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes_ps_server
+ disk.latency_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_sm
+ network.outpoing.packets_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_cmaui_port_7_test_resourceGroup
+ disk.device.write.requests_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_oam
+ cpu.delta_server_sm_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_sm
+ memory.usage_server_sm_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_sm
+ disk.write.requests.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_sm
+ disk.read.requests_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_oam
+ network.outgoing.bytes_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_cmaui_port_8_test_resourceGroup
+ disk.device.write.bytes_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_sm
+ network.outgoing.bytes_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_sm_server_port
+ network.incoming.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets.rate_ps_server_ps_server_port
+ disk.device.allocation_server_pd:
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
+ binding_server_oam_test_nested2Level:
+ - test_nested2Level
+ - binding_server_oam
+ instance_server_oam_test_nested2Level:
+ - test_nested2Level
+ - instance_server_oam
+ network.outgoing.packets.rate_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_cmaui_port_8_test_resourceGroup
+ os_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - os_server_cmaui_test_resourceGroup
+ disk.read.requests_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_sm
+ vcpus_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_cmaui_test_resourceGroup
+ instance_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - instance_server_cmaui_test_resourceGroup
+ feature_ps_server_port:
+ - abstract_ps_server
+ - feature_ps_server_ps_server_port
+ cpu.delta_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_cmaui_test_resourceGroup
+ binding_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - binding_cmaui_port_8_test_resourceGroup
+ disk.write.bytes_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_sm
+ memory.resident_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_cmaui_test_resourceGroup
+ disk.write.requests.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_oam
+ network.outgoing.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes.rate_ps_server_ps_server_port
+ disk.device.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes_ps_server
+ disk.device.allocation_server_ps:
+ - abstract_ps_server
+ - disk.device.allocation_ps_server
+ network.outgoing.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.packets.rate_ps_server_ps_server_port
+ binding_ps_server_port:
+ - abstract_ps_server
+ - binding_ps_server_ps_server_port
+ disk.read.bytes.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_oam
+ feature_server_oam_test_nested2Level:
+ - test_nested2Level
+ - feature_server_oam
+ network.incoming.packets_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pd_server_port
+ cpu_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_cmaui_test_resourceGroup
+ cpu_util_server_oam_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_oam
+ network.outpoing.packets_ps_server_port:
+ - abstract_ps_server
+ - network.outpoing.packets_ps_server_ps_server_port
+ disk.device.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
+ endpoint_server_oam_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_oam
+ disk.read.bytes.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_cmaui_test_resourceGroup
+ disk.capacity_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_oam
+ disk.device.usage_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_cmaui_test_resourceGroup
+ host_server_pd:
+ - abstract_pd_server
+ - host_pd_server
+ network.outpoing.packets_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_sm_server_port
+ disk.ephemeral.size_server_pd:
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
+ disk.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
+ disk.capacity_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_cmaui_test_resourceGroup
+ disk.device.usage_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_sm
+ disk.ephemeral.size_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_oam
+ network.incoming.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pd_server_port
+ disk.device.write.bytes.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_sm
+ feature_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - feature_oam_server_port
+ disk.device.allocation_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_oam
+ network.incoming.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pd_server_port
+ disk.allocation_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_oam
+ feature_test_nested2Level:
+ - test_nested2Level
+ - feature
+ disk.read.bytes_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_cmaui_test_resourceGroup
+ disk.ephemeral.size_server_ps:
+ - abstract_ps_server
+ - disk.ephemeral.size_ps_server
+ memory.resident_server_sm_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_sm
+ disk.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.requests.rate_ps_server
+ disk.usage_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_sm
+ disk.device.capacity_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_sm
+ network.incoming.packets.rate_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_cmaui_port_7_test_resourceGroup
+ disk.device.read.requests.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_sm
+ network.outgoing.bytes.rate_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_sm_server_port
+ disk.device.write.bytes.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_cmaui_test_resourceGroup
+ disk.ephemeral.size_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_cmaui_test_resourceGroup
+ feature_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_cmaui_port_7_test_resourceGroup
+ network.incoming.bytes_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_cmaui_port_8_test_resourceGroup
+ network.incoming.packets_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_oam_server_port
+ memory_server_sm_test_nested2Level:
+ - test_nested2Level
+ - memory_server_sm
+ disk.device.read.bytes.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_sm
+ network.outpoing.packets_pd_server_port:
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pd_server_port
+ feature_server_sm_test_nested2Level:
+ - test_nested2Level
+ - feature_server_sm
+ network.incoming.packets.rate_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_cmaui_port_8_test_resourceGroup
+ host_server_ps:
+ - abstract_ps_server
+ - host_ps_server
+ network.incoming.packets_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets_ps_server_ps_server_port
+ os_server_sm_test_nested2Level:
+ - test_nested2Level
+ - os_server_sm
+ network.outgoing.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes_ps_server_ps_server_port
+ memory_server_oam_test_nested2Level:
+ - test_nested2Level
+ - memory_server_oam
+ memory_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - memory_server_cmaui_test_resourceGroup
+ disk.device.read.requests.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_oam
+ network.outgoing.packets.rate_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_sm_server_port
+ disk.device.write.bytes_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_cmaui_test_resourceGroup
+ disk.write.requests_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_oam
+ disk.capacity_server_pd:
+ - abstract_pd_server
+ - disk.capacity_pd_server
+ network.incoming.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes_ps_server_ps_server_port
+ disk.device.capacity_server_pd:
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
+ disk.device.read.requests.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_cmaui_test_resourceGroup
+ network.incoming.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pd_server_port
+ disk.device.read.requests_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_sm
+ vcpus_server_ps:
+ - abstract_ps_server
+ - vcpus_ps_server
+ disk.read.bytes_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_oam
+ binding_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - binding_sm_server_port
+ disk.iops_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_sm
+ network.incoming.packets.rate_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_sm_server_port
+ disk.capacity_server_ps:
+ - abstract_ps_server
+ - disk.capacity_ps_server
+ network.incoming.bytes.rate_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_cmaui_port_8_test_resourceGroup
+ network.incoming.bytes_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_oam_server_port
+ host_server_sm_test_nested2Level:
+ - test_nested2Level
+ - host_server_sm
+ network.incoming.bytes.rate_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_sm_server_port
+ disk.device.capacity_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_oam
+ network.outgoing.bytes.rate_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_oam_server_port
+ endpoint_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_cmaui_test_resourceGroup
+ vcpus_server_sm_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_sm
+ network.incoming.packets_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_cmaui_port_7_test_resourceGroup
+ disk.usage_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_cmaui_test_resourceGroup
+ cpu_util_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_cmaui_test_resourceGroup
+ host_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - host_server_cmaui_test_resourceGroup
+ instance_server_pd:
+ - abstract_pd_server
+ - instance_pd_server
+ disk.device.write.requests.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_sm
+ disk.device.allocation_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_cmaui_test_resourceGroup
+ feature_pd_server_port:
+ - abstract_pd_server
+ - feature_pd_server_pd_server_port
+ disk.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes_ps_server
+ cpu_server_ps:
+ - abstract_ps_server
+ - cpu_ps_server
+ cpu.delta_server_pd:
+ - abstract_pd_server
+ - cpu.delta_pd_server
+ instance_server_ps:
+ - abstract_ps_server
+ - instance_ps_server
+ network.incoming.packets.rate_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_oam_server_port
+ disk.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes.rate_ps_server
+ disk.latency_server_pd:
+ - abstract_pd_server
+ - disk.latency_pd_server
+ disk.root.size_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_sm
+ network.outgoing.packets.rate_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_oam_server_port
+ scalable_server_sm_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_sm
+ cpu.delta_server_ps:
+ - abstract_ps_server
+ - cpu.delta_ps_server
+ disk.root.size_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_cmaui_test_resourceGroup
+ attachment_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - attachment_oam_server_port
+ disk.latency_server_ps:
+ - abstract_ps_server
+ - disk.latency_ps_server
+ disk.device.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests.rate_ps_server
+ disk.root.size_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_oam
+ disk.device.latency_server_pd:
+ - abstract_pd_server
+ - disk.device.latency_pd_server
+ disk.write.requests_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_sm
+ memory.usage_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_cmaui_test_resourceGroup
+ disk.device.capacity_server_ps:
+ - abstract_ps_server
+ - disk.device.capacity_ps_server
+ disk.device.iops_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_oam
+ scalable_server_pd:
+ - abstract_pd_server
+ - scalable_pd_server
+ cpu.delta_server_oam_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_oam
+ disk.device.latency_server_ps:
+ - abstract_ps_server
+ - disk.device.latency_ps_server
+ disk.device.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
+ disk.device.read.bytes_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_oam
+ scalable_server_ps:
+ - abstract_ps_server
+ - scalable_ps_server
+ cpu_server_pd:
+ - abstract_pd_server
+ - cpu_pd_server
+ feature_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_server_cmaui_test_resourceGroup
+ endpoint_server_sm_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_sm
+ disk.device.read.bytes.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_oam
+ vcpus_server_oam_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_oam
+ disk.iops_server_pd:
+ - abstract_pd_server
+ - disk.iops_pd_server
+ disk.device.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
+ disk.write.bytes_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_oam
+ disk.iops_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_oam
+ disk.device.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
+ network.incoming.packets_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_cmaui_port_8_test_resourceGroup
+ disk.read.bytes.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_sm
+ disk.iops_server_ps:
+ - abstract_ps_server
+ - disk.iops_ps_server
+ disk.device.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes.rate_ps_server
+ network.outgoing.bytes_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_oam_server_port
+ binding_server_ps:
+ - abstract_ps_server
+ - binding_ps_server
+ attachment_ps_server_port:
+ - abstract_ps_server
+ - attachment_ps_server_ps_server_port
+ disk.device.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests_ps_server
+ memory.usage_server_pd:
+ - abstract_pd_server
+ - memory.usage_pd_server
+ disk.ephemeral.size_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_sm
+ disk.device.write.requests.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_cmaui_test_resourceGroup
+ disk.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
+ os_server_oam_test_nested2Level:
+ - test_nested2Level
+ - os_server_oam
+ memory_server_pd:
+ - abstract_pd_server
+ - memory_pd_server
+ disk.device.read.requests_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_cmaui_test_resourceGroup
+ disk.device.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
+ network.incoming.bytes.rate_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_cmaui_port_7_test_resourceGroup
+ feature_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - feature_sm_server_port
+ memory.usage_server_ps:
+ - abstract_ps_server
+ - memory.usage_ps_server
+ disk.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
+ disk.device.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests_ps_server
+ disk.latency_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_cmaui_test_resourceGroup
+ network.outpoing.packets_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_cmaui_port_8_test_resourceGroup
+ network.incoming.bytes.rate_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_oam_server_port
+ vcpus_server_pd:
+ - abstract_pd_server
+ - vcpus_pd_server
+ cpu_server_oam_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_oam
+ network.incoming.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes.rate_ps_server_ps_server_port
+ disk.write.bytes.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_cmaui_test_resourceGroup
+ host_server_oam_test_nested2Level:
+ - test_nested2Level
+ - host_server_oam
+ memory_server_ps:
+ - abstract_ps_server
+ - memory_ps_server
+ disk.device.write.requests_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_cmaui_test_resourceGroup
+ attachment_pd_server_port:
+ - abstract_pd_server
+ - attachment_pd_server_pd_server_port
+ disk.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.write.requests_pd_server
+ scalable_server_oam_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_oam
+ network.incoming.bytes_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_cmaui_port_7_test_resourceGroup
+ disk.device.latency_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_sm
+ disk.allocation_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_sm
+ disk.device.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes_ps_server
+ disk.root.size_server_ps:
+ - abstract_ps_server
+ - disk.root.size_ps_server
+ disk.device.read.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests.rate_ps_server
+ network.outgoing.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pd_server_port
+ feature_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_cmaui_port_8_test_resourceGroup
+ disk.write.requests_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_cmaui_test_resourceGroup
+ disk.device.usage_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_oam
+ disk.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.write.requests_ps_server
+ network.incoming.bytes_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_sm_server_port
+ binding_server_pd:
+ - abstract_pd_server
+ - binding_pd_server
+ network.outgoing.bytes_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_cmaui_port_7_test_resourceGroup
+ disk.device.read.bytes.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_cmaui_test_resourceGroup
+ disk.root.size_server_pd:
+ - abstract_pd_server
+ - disk.root.size_pd_server
+ memory.resident_server_oam_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_oam
+ disk.device.read.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
+ disk.device.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
+ memory.usage_server_oam_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_oam
+ disk.device.write.requests_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_sm
+ memory.resident_server_pd:
+ - abstract_pd_server
+ - memory.resident_pd_server
+ disk.usage_server_ps:
+ - abstract_ps_server
+ - disk.usage_ps_server
+ cpu_util_server_pd:
+ - abstract_pd_server
+ - cpu_util_pd_server
+ endpoint_server_ps:
+ - abstract_ps_server
+ - endpoint_ps_server
+ disk.read.bytes_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_sm
+ attachment_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - attachment_cmaui_port_8_test_resourceGroup
+ disk.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.read.requests_ps_server
+ memory.resident_server_ps:
+ - abstract_ps_server
+ - memory.resident_ps_server
+ disk.read.requests_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_cmaui_test_resourceGroup
+ disk.usage_server_pd:
+ - abstract_pd_server
+ - disk.usage_pd_server
+ binding_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - binding_cmaui_port_7_test_resourceGroup
+ endpoint_server_pd:
+ - abstract_pd_server
+ - endpoint_pd_server
+ cpu_util_server_ps:
+ - abstract_ps_server
+ - cpu_util_ps_server
+ disk.write.bytes.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_oam
+ network.outpoing.packets_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_oam_server_port
+ disk.allocation_server_pd:
+ - abstract_pd_server
+ - disk.allocation_pd_server
+ disk.write.bytes_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_cmaui_test_resourceGroup
+ disk.device.write.bytes_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_oam
+ disk.device.usage_server_pd:
+ - abstract_pd_server
+ - disk.device.usage_pd_server
+ disk.allocation_server_ps:
+ - abstract_ps_server
+ - disk.allocation_ps_server
+ disk.latency_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_oam
+ scalable_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_cmaui_test_resourceGroup
+ disk.write.requests.rate_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_cmaui_test_resourceGroup
+ disk.device.read.bytes_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_cmaui_test_resourceGroup
+ disk.device.write.requests.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_oam
+ disk.device.usage_server_ps:
+ - abstract_ps_server
+ - disk.device.usage_ps_server
+ instance_server_sm_test_nested2Level:
+ - test_nested2Level
+ - instance_server_sm
+ disk.device.write.bytes.rate_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_oam
+ disk.device.latency_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_oam
+ network.outgoing.packets.rate_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_cmaui_port_7_test_resourceGroup
+ disk.device.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes.rate_ps_server
+ disk.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes.rate_ps_server
+ network.outgoing.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pd_server_port
+ disk.device.iops_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_sm
+ network.outgoing.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pd_server_port
+ binding_pd_server_port:
+ - abstract_pd_server
+ - binding_pd_server_pd_server_port
+ disk.write.bytes.rate_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_sm
+ disk.device.iops_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_cmaui_test_resourceGroup
+ disk.device.capacity_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_cmaui_test_resourceGroup
+ disk.allocation_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_cmaui_test_resourceGroup
+ disk.device.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
+ disk.device.read.requests_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_oam
+ os_server_ps:
+ - abstract_ps_server
+ - os_ps_server
+ cpu_util_server_sm_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_sm
+ disk.usage_server_oam_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_oam
+ binding_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - binding_server_cmaui_test_resourceGroup
+ binding_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - binding_oam_server_port
+ network.outgoing.bytes.rate_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_cmaui_port_8_test_resourceGroup
+ feature_server_ps:
+ - abstract_ps_server
+ - feature_ps_server
+ disk.device.iops_server_pd:
+ - abstract_pd_server
+ - disk.device.iops_pd_server
+ disk.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.read.requests_pd_server
+ os_server_pd:
+ - abstract_pd_server
+ - os_pd_server
+ network.outgoing.bytes.rate_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_cmaui_port_7_test_resourceGroup
+ cpu_server_sm_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_sm
+ disk.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
+ disk.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
+ disk.device.read.bytes_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_sm
+ network.incoming.packets_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_sm_server_port
+ disk.device.iops_server_ps:
+ - abstract_ps_server
+ - disk.device.iops_ps_server
+ feature_server_pd:
+ - abstract_pd_server
+ - feature_pd_server
+ disk.device.latency_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_cmaui_test_resourceGroup
+ feature_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - feature_test_resourceGroup
+ attachment_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - attachment_sm_server_port
+ disk.capacity_server_sm_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_sm
+ disk.iops_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_cmaui_test_resourceGroup
+ attachment_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - attachment_cmaui_port_7_test_resourceGroup
+ requirements:
+ dependency_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_cmaui_test_resourceGroup
+ dependency_server_pd:
+ - abstract_pd_server
+ - dependency_pd_server
+ dependency_ps_server_port:
+ - abstract_ps_server
+ - dependency_ps_server_ps_server_port
+ dependency_pd_server_port:
+ - abstract_pd_server
+ - dependency_pd_server_pd_server_port
+ dependency_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_resourceGroup
+ link_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - link_sm_server_port
+ dependency_server_sm_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_sm
+ link_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - link_cmaui_port_8_test_resourceGroup
+ dependency_test_nested2Level:
+ - test_nested2Level
+ - dependency
+ link_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - link_oam_server_port
+ local_storage_server_ps:
+ - abstract_ps_server
+ - local_storage_ps_server
+ dependency_sm_server_port_test_nested2Level:
+ - test_nested2Level
+ - dependency_sm_server_port
+ local_storage_server_pd:
+ - abstract_pd_server
+ - local_storage_pd_server
+ dependency_server_ps:
+ - abstract_ps_server
+ - dependency_ps_server
+ dependency_oam_server_port_test_nested2Level:
+ - test_nested2Level
+ - dependency_oam_server_port
+ link_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - link_cmaui_port_7_test_resourceGroup
+ link_pd_server_port:
+ - abstract_pd_server
+ - link_pd_server_pd_server_port
+ link_ps_server_port:
+ - abstract_ps_server
+ - link_ps_server_ps_server_port
+ dependency_cmaui_port_7_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_cmaui_port_7_test_resourceGroup
+ dependency_cmaui_port_8_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - dependency_cmaui_port_8_test_resourceGroup
+ local_storage_server_sm_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_sm
+ dependency_server_oam_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_oam
+ local_storage_server_oam_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_oam
+ local_storage_server_cmaui_test_resourceGroup_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_cmaui_test_resourceGroup
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
new file mode 100644
index 0000000000..ab21e606d2
--- /dev/null
+++ 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
@@ -0,0 +1,774 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ net2:
+ hidden: false
+ immutable: false
+ type: string
+ description: Contrail V2 network
+ net1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron network
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ sm_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: SM server names
+ entry_schema:
+ type: string
+ oam_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM Image server
+ oam_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM server names
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for SM server
+ sm_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: SM Image server
+ node_templates:
+ test_resourceGroup:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: net
+ service_template_filter:
+ substitute_service_template: nested3ServiceTemplate.yaml
+ count: 9
+ mandatory: true
+ port_cmaui_port_8_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_7_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_7_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ port_cmaui_port_8_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ abstract_sm_server:
+ type: org.openecomp.resource.abstract.nodes.sm_server
+ directives:
+ - substitutable
+ properties:
+ vm_flavor_name:
+ get_input: sm_server_flavor
+ port_sm_server_port_network:
+ - get_input: net1
+ compute_sm_server_name:
+ - get_input:
+ - sm_server_names
+ - 0
+ port_sm_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: sm_server_image
+ compute_sm_server_availability_zone:
+ - get_input: availability_zone_0
+ port_sm_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_sm_server_port_replacement_policy:
+ - AUTO
+ port_sm_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - sm_server_ips
+ - 0
+ port_sm_server_port_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ service_template_filter:
+ substitute_service_template: Nested_sm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_oam_server:
+ type: org.openecomp.resource.abstract.nodes.oam_server
+ directives:
+ - substitutable
+ properties:
+ port_oam_server_port_network:
+ - get_input: net2
+ port_oam_server_port_security_groups:
+ - - get_input: p1
+ port_oam_server_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: oam_server_flavor
+ port_oam_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: oam_server_image
+ port_oam_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - oam_server_ips
+ - 0
+ compute_oam_server_name:
+ - get_input:
+ - oam_server_names
+ - 1
+ port_oam_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_oam_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested2_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2.yml
+ description: nested2
+ members:
+ - test_resourceGroup
+ - abstract_sm_server
+ - abstract_oam_server
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+ capabilities:
+ network.outpoing.packets_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.outpoing.packets_cmaui_port_7
+ binding_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - binding_cmaui_port_7
+ memory.resident_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - memory.resident_server_cmaui
+ network.outgoing.bytes.rate_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.bytes.rate_cmaui_port_7
+ os_server_sm:
+ - abstract_sm_server
+ - os_sm_server
+ disk.capacity_server_sm:
+ - abstract_sm_server
+ - disk.capacity_sm_server
+ memory_server_oam:
+ - abstract_oam_server
+ - memory_oam_server
+ feature_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - feature_cmaui_port_8
+ disk.write.bytes_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.write.bytes_server_cmaui
+ disk.device.iops_server_oam:
+ - abstract_oam_server
+ - disk.device.iops_oam_server
+ disk.device.usage_server_sm:
+ - abstract_sm_server
+ - disk.device.usage_sm_server
+ disk.device.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests.rate_sm_server
+ disk.allocation_server_oam:
+ - abstract_oam_server
+ - disk.allocation_oam_server
+ feature_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - feature_server_cmaui
+ network.incoming.packets_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets_sm_server_sm_server_port
+ disk.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes.rate_sm_server
+ feature_oam_server_port:
+ - abstract_oam_server
+ - feature_oam_server_oam_server_port
+ disk.usage_server_oam:
+ - abstract_oam_server
+ - disk.usage_oam_server
+ disk.device.iops_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.iops_server_cmaui
+ instance_server_sm:
+ - abstract_sm_server
+ - instance_sm_server
+ disk.device.latency_server_oam:
+ - abstract_oam_server
+ - disk.device.latency_oam_server
+ disk.root.size_server_oam:
+ - abstract_oam_server
+ - disk.root.size_oam_server
+ host_server_sm:
+ - abstract_sm_server
+ - host_sm_server
+ memory.usage_server_oam:
+ - abstract_oam_server
+ - memory.usage_oam_server
+ disk.capacity_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.capacity_server_cmaui
+ disk.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes_oam_server
+ disk.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.read.requests_oam_server
+ cpu_util_server_sm:
+ - abstract_sm_server
+ - cpu_util_sm_server
+ network.incoming.bytes_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.bytes_cmaui_port_8
+ disk.device.capacity_server_sm:
+ - abstract_sm_server
+ - disk.device.capacity_sm_server
+ disk.device.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes_oam_server
+ network.incoming.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes_oam_server_oam_server_port
+ network.outgoing.bytes.rate_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.bytes.rate_cmaui_port_8
+ disk.device.iops_server_sm:
+ - abstract_sm_server
+ - disk.device.iops_sm_server
+ disk.device.read.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests.rate_oam_server
+ disk.device.latency_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.latency_server_cmaui
+ vcpus_server_oam:
+ - abstract_oam_server
+ - vcpus_oam_server
+ disk.device.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes_sm_server
+ disk.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes.rate_oam_server
+ disk.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes_oam_server
+ disk.write.requests.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.write.requests.rate_server_cmaui
+ instance_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - instance_server_cmaui
+ disk.latency_server_sm:
+ - abstract_sm_server
+ - disk.latency_sm_server
+ disk.iops_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.iops_server_cmaui
+ disk.device.allocation_server_oam:
+ - abstract_oam_server
+ - disk.device.allocation_oam_server
+ attachment_oam_server_port:
+ - abstract_oam_server
+ - attachment_oam_server_oam_server_port
+ scalable_server_oam:
+ - abstract_oam_server
+ - scalable_oam_server
+ disk.root.size_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.root.size_server_cmaui
+ cpu_util_server_oam:
+ - abstract_oam_server
+ - cpu_util_oam_server
+ disk.device.usage_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.usage_server_cmaui
+ disk.write.bytes.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.write.bytes.rate_server_cmaui
+ disk.latency_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.latency_server_cmaui
+ feature_server_sm:
+ - abstract_sm_server
+ - feature_sm_server
+ cpu.delta_server_oam:
+ - abstract_oam_server
+ - cpu.delta_oam_server
+ host_server_oam:
+ - abstract_oam_server
+ - host_oam_server
+ cpu_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - cpu_server_cmaui
+ cpu.delta_server_sm:
+ - abstract_sm_server
+ - cpu.delta_sm_server
+ binding_server_oam:
+ - abstract_oam_server
+ - binding_oam_server
+ disk.device.capacity_server_oam:
+ - abstract_oam_server
+ - disk.device.capacity_oam_server
+ binding_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - binding_server_cmaui
+ disk.device.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes.rate_sm_server
+ disk.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes_sm_server
+ disk.latency_server_oam:
+ - abstract_oam_server
+ - disk.latency_oam_server
+ attachment_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - attachment_cmaui_port_8
+ network.incoming.packets_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.packets_cmaui_port_8
+ disk.device.allocation_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.allocation_server_cmaui
+ attachment_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - attachment_cmaui_port_7
+ disk.device.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests_oam_server
+ disk.device.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests.rate_oam_server
+ endpoint_server_sm:
+ - abstract_sm_server
+ - endpoint_sm_server
+ disk.device.allocation_server_sm:
+ - abstract_sm_server
+ - disk.device.allocation_sm_server
+ feature_server_oam:
+ - abstract_oam_server
+ - feature_oam_server
+ feature_test_resourceGroup:
+ - test_resourceGroup
+ - feature
+ disk.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.read.requests_sm_server
+ binding_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - binding_cmaui_port_8
+ disk.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes.rate_oam_server
+ disk.allocation_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.allocation_server_cmaui
+ memory.resident_server_sm:
+ - abstract_sm_server
+ - memory.resident_sm_server
+ disk.device.read.requests_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.read.requests_server_cmaui
+ network.incoming.packets_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.packets_cmaui_port_7
+ cpu_server_oam:
+ - abstract_oam_server
+ - cpu_oam_server
+ host_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - host_server_cmaui
+ memory_server_sm:
+ - abstract_sm_server
+ - memory_sm_server
+ scalable_server_sm:
+ - abstract_sm_server
+ - scalable_sm_server
+ scalable_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - scalable_server_cmaui
+ disk.device.read.bytes.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.read.bytes.rate_server_cmaui
+ network.outgoing.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.packets.rate_sm_server_sm_server_port
+ binding_sm_server_port:
+ - abstract_sm_server
+ - binding_sm_server_sm_server_port
+ network.outgoing.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes.rate_sm_server_sm_server_port
+ disk.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.write.requests_oam_server
+ disk.device.read.bytes_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.read.bytes_server_cmaui
+ disk.device.latency_server_sm:
+ - abstract_sm_server
+ - disk.device.latency_sm_server
+ memory.usage_server_sm:
+ - abstract_sm_server
+ - memory.usage_sm_server
+ memory.resident_server_oam:
+ - abstract_oam_server
+ - memory.resident_oam_server
+ network.incoming.bytes.rate_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.bytes.rate_cmaui_port_8
+ feature_sm_server_port:
+ - abstract_sm_server
+ - feature_sm_server_sm_server_port
+ disk.device.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests_sm_server
+ network.incoming.packets.rate_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.packets.rate_cmaui_port_7
+ disk.write.requests_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.write.requests_server_cmaui
+ disk.device.write.bytes_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.write.bytes_server_cmaui
+ disk.device.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests_oam_server
+ disk.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes_sm_server
+ disk.device.write.requests.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.write.requests.rate_server_cmaui
+ disk.device.write.bytes.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.write.bytes.rate_server_cmaui
+ cpu_server_sm:
+ - abstract_sm_server
+ - cpu_sm_server
+ endpoint_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - endpoint_server_cmaui
+ network.outpoing.packets_sm_server_port:
+ - abstract_sm_server
+ - network.outpoing.packets_sm_server_sm_server_port
+ network.outgoing.packets.rate_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.packets.rate_cmaui_port_7
+ network.incoming.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes.rate_oam_server_oam_server_port
+ disk.device.usage_server_oam:
+ - abstract_oam_server
+ - disk.device.usage_oam_server
+ network.outgoing.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.packets.rate_oam_server_oam_server_port
+ network.incoming.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets.rate_sm_server_sm_server_port
+ binding_oam_server_port:
+ - abstract_oam_server
+ - binding_oam_server_oam_server_port
+ disk.device.capacity_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.capacity_server_cmaui
+ network.incoming.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes_oam_server
+ disk.device.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests_sm_server
+ disk.device.write.requests_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.write.requests_server_cmaui
+ disk.read.bytes_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.read.bytes_server_cmaui
+ disk.device.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes.rate_sm_server
+ disk.ephemeral.size_server_oam:
+ - abstract_oam_server
+ - disk.ephemeral.size_oam_server
+ network.outpoing.packets_oam_server_port:
+ - abstract_oam_server
+ - network.outpoing.packets_oam_server_oam_server_port
+ os_server_oam:
+ - abstract_oam_server
+ - os_oam_server
+ network.outgoing.bytes_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.bytes_cmaui_port_7
+ disk.capacity_server_oam:
+ - abstract_oam_server
+ - disk.capacity_oam_server
+ disk.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.write.requests_sm_server
+ network.incoming.bytes_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.bytes_cmaui_port_7
+ disk.ephemeral.size_server_sm:
+ - abstract_sm_server
+ - disk.ephemeral.size_sm_server
+ disk.usage_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.usage_server_cmaui
+ disk.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes.rate_sm_server
+ endpoint_server_oam:
+ - abstract_oam_server
+ - endpoint_oam_server
+ network.outpoing.packets_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.outpoing.packets_cmaui_port_8
+ disk.device.read.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests.rate_sm_server
+ os_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - os_server_cmaui
+ binding_server_sm:
+ - abstract_sm_server
+ - binding_sm_server
+ disk.root.size_server_sm:
+ - abstract_sm_server
+ - disk.root.size_sm_server
+ network.outgoing.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes_oam_server_oam_server_port
+ disk.allocation_server_sm:
+ - abstract_sm_server
+ - disk.allocation_sm_server
+ disk.iops_server_oam:
+ - abstract_oam_server
+ - disk.iops_oam_server
+ vcpus_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - vcpus_server_cmaui
+ network.outgoing.bytes_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.bytes_cmaui_port_8
+ disk.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.requests.rate_sm_server
+ network.outgoing.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes_sm_server
+ network.incoming.packets.rate_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.packets.rate_cmaui_port_8
+ network.incoming.bytes.rate_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - network.incoming.bytes.rate_cmaui_port_7
+ disk.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.requests.rate_oam_server
+ network.outgoing.packets.rate_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - network.outgoing.packets.rate_cmaui_port_8
+ disk.device.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes.rate_oam_server
+ memory.usage_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - memory.usage_server_cmaui
+ network.incoming.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes.rate_sm_server_sm_server_port
+ memory_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - memory_server_cmaui
+ disk.device.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes.rate_oam_server
+ network.incoming.packets_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets_oam_server_oam_server_port
+ disk.read.requests_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.read.requests_server_cmaui
+ disk.ephemeral.size_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.ephemeral.size_server_cmaui
+ disk.usage_server_sm:
+ - abstract_sm_server
+ - disk.usage_sm_server
+ instance_server_oam:
+ - abstract_oam_server
+ - instance_oam_server
+ feature_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - feature_cmaui_port_7
+ cpu.delta_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - cpu.delta_server_cmaui
+ cpu_util_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - cpu_util_server_cmaui
+ disk.device.read.requests.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.device.read.requests.rate_server_cmaui
+ network.outgoing.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes_sm_server_sm_server_port
+ vcpus_server_sm:
+ - abstract_sm_server
+ - vcpus_sm_server
+ disk.read.bytes.rate_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - disk.read.bytes.rate_server_cmaui
+ attachment_sm_server_port:
+ - abstract_sm_server
+ - attachment_sm_server_sm_server_port
+ network.incoming.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes_sm_server_sm_server_port
+ disk.iops_server_sm:
+ - abstract_sm_server
+ - disk.iops_sm_server
+ requirements:
+ dependency_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - dependency_server_cmaui
+ local_storage_server_oam:
+ - abstract_oam_server
+ - local_storage_oam_server
+ link_sm_server_port:
+ - abstract_sm_server
+ - link_sm_server_sm_server_port
+ dependency_server_oam:
+ - abstract_oam_server
+ - dependency_oam_server
+ link_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - link_cmaui_port_7
+ link_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - link_cmaui_port_8
+ dependency_test_resourceGroup:
+ - test_resourceGroup
+ - dependency
+ dependency_cmaui_port_7_test_resourceGroup:
+ - test_resourceGroup
+ - dependency_cmaui_port_7
+ dependency_cmaui_port_8_test_resourceGroup:
+ - test_resourceGroup
+ - dependency_cmaui_port_8
+ dependency_sm_server_port:
+ - abstract_sm_server
+ - dependency_sm_server_sm_server_port
+ link_oam_server_port:
+ - abstract_oam_server
+ - link_oam_server_oam_server_port
+ local_storage_server_sm:
+ - abstract_sm_server
+ - local_storage_sm_server
+ local_storage_server_cmaui_test_resourceGroup:
+ - test_resourceGroup
+ - local_storage_server_cmaui
+ dependency_oam_server_port:
+ - abstract_oam_server
+ - dependency_oam_server_oam_server_port
+ dependency_server_sm:
+ - abstract_sm_server
+ - dependency_sm_server
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/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested3ServiceTemplate.yaml
new file mode 100644
index 0000000000..105b3592c6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested3ServiceTemplate.yaml
@@ -0,0 +1,434 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested3
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ port_cmaui_port_8_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ net2:
+ hidden: false
+ immutable: false
+ type: string
+ description: Contrail V2 network
+ net1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron network
+ indx:
+ hidden: false
+ immutable: false
+ type: float
+ port_cmaui_port_8_order:
+ type: integer
+ required: true
+ port_cmaui_port_7_network_role_tag:
+ type: string
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ port_cmaui_port_8_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ port_cmaui_port_8_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_8_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_7_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_7_order:
+ type: integer
+ required: true
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ port_cmaui_port_7_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_7_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui_port_7_network_role:
+ type: string
+ required: true
+ port_cmaui_port_8_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ port_cmaui_port_8_network_role:
+ type: string
+ required: true
+ port_cmaui_port_8_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_port_7:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_cmaui_port_7_ip_requirements
+ security_groups:
+ - get_input: p1
+ network_role:
+ get_input: port_cmaui_port_7_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ subnetpoolid:
+ get_input: port_cmaui_port_7_subnetpoolid
+ mac_requirements:
+ get_input: port_cmaui_port_7_mac_requirements
+ exCP_naming:
+ get_input: port_cmaui_port_7_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_7_vlan_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_7_network_role_tag
+ network:
+ get_input: net1
+ order:
+ get_input: port_cmaui_port_7_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_port_8:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_cmaui_port_8_ip_requirements
+ security_groups:
+ - get_input: p2
+ - get_input: p2
+ network_role:
+ get_input: port_cmaui_port_8_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ subnetpoolid:
+ get_input: port_cmaui_port_8_subnetpoolid
+ mac_requirements:
+ get_input: port_cmaui_port_8_mac_requirements
+ exCP_naming:
+ get_input: port_cmaui_port_8_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_8_vlan_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_8_network_role_tag
+ network:
+ get_input: net2
+ order:
+ get_input: port_cmaui_port_8_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ server_cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ flavor:
+ get_input: cmaui_flavor
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: cmaui_image
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ groups:
+ nested3_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested3.yml
+ description: nested4
+ members:
+ - cmaui_port_7
+ - cmaui_port_8
+ - server_cmaui
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.cmaui
+ capabilities:
+ cpu.delta_server_cmaui:
+ - server_cmaui
+ - cpu.delta
+ disk.device.write.requests.rate_server_cmaui:
+ - server_cmaui
+ - disk.device.write.requests.rate
+ disk.device.allocation_server_cmaui:
+ - server_cmaui
+ - disk.device.allocation
+ feature_cmaui_port_7:
+ - cmaui_port_7
+ - feature
+ feature_cmaui_port_8:
+ - cmaui_port_8
+ - feature
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ disk.read.bytes.rate_server_cmaui:
+ - server_cmaui
+ - disk.read.bytes.rate
+ cpu_server_cmaui:
+ - server_cmaui
+ - cpu
+ disk.write.bytes.rate_server_cmaui:
+ - server_cmaui
+ - disk.write.bytes.rate
+ disk.device.read.bytes.rate_server_cmaui:
+ - server_cmaui
+ - disk.device.read.bytes.rate
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ cpu_util_server_cmaui:
+ - server_cmaui
+ - cpu_util
+ network.outgoing.packets.rate_cmaui_port_8:
+ - cmaui_port_8
+ - network.outgoing.packets.rate
+ attachment_cmaui_port_7:
+ - cmaui_port_7
+ - attachment
+ attachment_cmaui_port_8:
+ - cmaui_port_8
+ - attachment
+ network.outgoing.packets.rate_cmaui_port_7:
+ - cmaui_port_7
+ - network.outgoing.packets.rate
+ disk.device.latency_server_cmaui:
+ - server_cmaui
+ - disk.device.latency
+ disk.device.write.requests_server_cmaui:
+ - server_cmaui
+ - disk.device.write.requests
+ disk.read.requests_server_cmaui:
+ - server_cmaui
+ - disk.read.requests
+ disk.device.capacity_server_cmaui:
+ - server_cmaui
+ - disk.device.capacity
+ disk.usage_server_cmaui:
+ - server_cmaui
+ - disk.usage
+ disk.device.usage_server_cmaui:
+ - server_cmaui
+ - disk.device.usage
+ disk.capacity_server_cmaui:
+ - server_cmaui
+ - disk.capacity
+ disk.write.requests.rate_server_cmaui:
+ - server_cmaui
+ - disk.write.requests.rate
+ disk.device.read.requests_server_cmaui:
+ - server_cmaui
+ - disk.device.read.requests
+ instance_server_cmaui:
+ - server_cmaui
+ - instance
+ disk.device.read.bytes_server_cmaui:
+ - server_cmaui
+ - disk.device.read.bytes
+ network.incoming.packets.rate_cmaui_port_7:
+ - cmaui_port_7
+ - network.incoming.packets.rate
+ memory_server_cmaui:
+ - server_cmaui
+ - memory
+ network.incoming.packets.rate_cmaui_port_8:
+ - cmaui_port_8
+ - network.incoming.packets.rate
+ disk.root.size_server_cmaui:
+ - server_cmaui
+ - disk.root.size
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ disk.device.read.requests.rate_server_cmaui:
+ - server_cmaui
+ - disk.device.read.requests.rate
+ disk.write.bytes_server_cmaui:
+ - server_cmaui
+ - disk.write.bytes
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ disk.device.write.bytes.rate_server_cmaui:
+ - server_cmaui
+ - disk.device.write.bytes.rate
+ network.incoming.packets_cmaui_port_7:
+ - cmaui_port_7
+ - network.incoming.packets
+ network.incoming.packets_cmaui_port_8:
+ - cmaui_port_8
+ - network.incoming.packets
+ network.incoming.bytes.rate_cmaui_port_7:
+ - cmaui_port_7
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_cmaui_port_8:
+ - cmaui_port_8
+ - network.incoming.bytes.rate
+ memory.resident_server_cmaui:
+ - server_cmaui
+ - memory.resident
+ network.outgoing.bytes_cmaui_port_7:
+ - cmaui_port_7
+ - network.outgoing.bytes
+ disk.latency_server_cmaui:
+ - server_cmaui
+ - disk.latency
+ feature_server_cmaui:
+ - server_cmaui
+ - feature
+ network.outpoing.packets_cmaui_port_7:
+ - cmaui_port_7
+ - network.outpoing.packets
+ vcpus_server_cmaui:
+ - server_cmaui
+ - vcpus
+ network.outpoing.packets_cmaui_port_8:
+ - cmaui_port_8
+ - network.outpoing.packets
+ disk.device.write.bytes_server_cmaui:
+ - server_cmaui
+ - disk.device.write.bytes
+ binding_cmaui_port_7:
+ - cmaui_port_7
+ - binding
+ network.outgoing.bytes_cmaui_port_8:
+ - cmaui_port_8
+ - network.outgoing.bytes
+ binding_cmaui_port_8:
+ - cmaui_port_8
+ - binding
+ disk.allocation_server_cmaui:
+ - server_cmaui
+ - disk.allocation
+ disk.write.requests_server_cmaui:
+ - server_cmaui
+ - disk.write.requests
+ memory.usage_server_cmaui:
+ - server_cmaui
+ - memory.usage
+ disk.ephemeral.size_server_cmaui:
+ - server_cmaui
+ - disk.ephemeral.size
+ network.outgoing.bytes.rate_cmaui_port_7:
+ - cmaui_port_7
+ - network.outgoing.bytes.rate
+ network.incoming.bytes_cmaui_port_8:
+ - cmaui_port_8
+ - network.incoming.bytes
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ network.incoming.bytes_cmaui_port_7:
+ - cmaui_port_7
+ - network.incoming.bytes
+ disk.iops_server_cmaui:
+ - server_cmaui
+ - disk.iops
+ network.outgoing.bytes.rate_cmaui_port_8:
+ - cmaui_port_8
+ - network.outgoing.bytes.rate
+ disk.device.iops_server_cmaui:
+ - server_cmaui
+ - disk.device.iops
+ disk.read.bytes_server_cmaui:
+ - server_cmaui
+ - disk.read.bytes
+ requirements:
+ dependency_cmaui_port_8:
+ - cmaui_port_8
+ - dependency
+ dependency_cmaui_port_7:
+ - cmaui_port_7
+ - dependency
+ link_cmaui_port_8:
+ - cmaui_port_8
+ - link
+ link_cmaui_port_7:
+ - cmaui_port_7
+ - link
+ dependency_server_cmaui:
+ - server_cmaui
+ - dependency
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/MANIFEST.json
new file mode 100644
index 0000000000..10f0e8cbdd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/MANIFEST.json
@@ -0,0 +1,27 @@
+{
+ "name": "Port to Network multi nested test",
+ "description": "HOT template to create multi nested of 4 levels",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested3.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/main.yml
new file mode 100644
index 0000000000..447b682110
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/main.yml
@@ -0,0 +1,73 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: network name of jsa log network
+ pd_server_names:
+ type: comma_delimited_list
+ label: PD server names
+ description: name of the PD instance
+ pd_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ pd_flavor_name:
+ type: string
+ label: PD flavor name
+ description: flavor name of PD instance
+ p1:
+ type: string
+ description: UID of OAM network
+ oam_net_name:
+ type: string
+ description: net name
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+
+resources:
+ server_pd_1:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+
+ server_pd_2:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd02_port_0}
+ user_data_format: RAW
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+ pd02_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+
+ test_nested1Level:
+ type: nested1.yml
+ properties:
+ p1: { get_param: p1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested1.yml
new file mode 100644
index 0000000000..866c8e22a2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested1.yml
@@ -0,0 +1,74 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ cmaui01_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui02_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p2}]
+ replacement_policy: AUTO
+
+ server_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui01_port_1 }
+
+ server_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 1]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui02_port_2 }
+
+ test_nested2Level:
+ type: nested2.yml
+ properties:
+ p1: { get_param: p1}
+ p2: { get_param: p2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested2.yml
new file mode 100644
index 0000000000..c39012c941
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested2.yml
@@ -0,0 +1,73 @@
+heat_template_version: 2013-05-23
+
+description: nested2
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ oam_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ oam01_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p2}, {get_param: p1}]
+ replacement_policy: AUTO
+
+ oam02_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_oam_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: oam01_port_1 }
+
+ server_oam_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: oam02_port_2 }
+
+ test_nested3Level:
+ type: nested3.yml
+ properties:
+ p1: { get_param: p1} \ 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/threeNestedLevelsDiffVmTypePattern1B/in/nested3.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested3.yml
new file mode 100644
index 0000000000..d3d6464e69
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/in/nested3.yml
@@ -0,0 +1,68 @@
+heat_template_version: 2013-05-23
+
+description: nested2
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ ps_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd01_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p2}, {get_param: p1}]
+ replacement_policy: AUTO
+
+ pd02_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_ps_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: pd01_port_1 }
+
+ server_ps_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: pd02_port_2 } \ 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/threeNestedLevelsDiffVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..20819de371
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,7599 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_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_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd02_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.iops_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server_pd02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd02_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_pd_server_pd02_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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.outpoing.packets_pd_server_pd02_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_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_pd_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.iops_pd_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_pd_server_pd02_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.ps_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_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
+ compute_ps_availability_zone:
+ 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_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_name:
+ 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
+ requirements:
+ - dependency_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.requests.rate_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps_pd01_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_ps:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_ps_pd01_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_ps:
+ type: org.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_ps:
+ type: org.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_ps_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_ps_pd01_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_ps:
+ type: org.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_ps_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_ps_pd01_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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_ps_pd01_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_ps:
+ type: org.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_ps:
+ type: org.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_ps_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ feature_ps:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_ps:
+ type: org.openecomp.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_ps_pd01_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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps_pd01_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.iops_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps_pd01_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.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.pd_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.oam:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_oam02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam02_port_network_role:
+ 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
+ port_oam02_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_oam02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_oam02_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_oam02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam02_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_oam_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_oam_oam02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_oam02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu_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_oam_oam02_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_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_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_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_oam_oam02_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_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_oam_oam02_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_oam_oam02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_oam:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_oam02_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_oam:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_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_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
+ binding_oam:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_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.rate_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.rate_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_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.ephemeral.size_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_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_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_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_oam_oam02_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_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_oam_oam02_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_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_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_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.rate_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_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_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_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_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_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.bytes_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_oam:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_oam:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_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_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_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_oam_oam02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_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_oam_oam02_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_oam:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_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.latency_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_oam_oam02_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_oam_oam02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_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.requests_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.capacity_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
+ org.openecomp.resource.abstract.nodes.oam_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_oam01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_oam01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam01_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_oam01_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
+ port_oam01_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam01_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_oam_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_oam_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ requirements:
+ - dependency_oam_oam01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_oam01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ cpu_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_oam_oam01_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_oam_oam01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_oam01_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_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_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_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_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_oam:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_oam_oam01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_oam01_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_oam:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_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_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_oam_oam01_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_oam:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_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.rate_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.rate_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_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.ephemeral.size_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_oam_oam01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_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_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_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_oam_oam01_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_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_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_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_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.rate_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_oam_oam01_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_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_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_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_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_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.bytes_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_oam:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_oam:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_oam_oam01_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_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_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_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_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_oam:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_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.latency_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_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.requests_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.capacity_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_oam_oam01_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.cmaui:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_cmaui02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui02_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ 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_cmaui02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui02_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui02_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_cmaui02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_cmaui02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui02_port:
+ 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_cmaui02_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_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
+ feature_cmaui_cmaui02_port:
+ type: tosca.capabilities.Node
+ 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
+ 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
+ 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
+ network.incoming.packets.rate_cmaui_cmaui02_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_cmaui_cmaui02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - 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
+ network.outgoing.packets.rate_cmaui_cmaui02_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_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
+ 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
+ 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
+ network.incoming.packets_cmaui_cmaui02_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_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_cmaui02_port:
+ type: tosca.capabilities.Attachment
+ 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_cmaui02_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_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_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_cmaui02_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_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
+ network.incoming.bytes.rate_cmaui_cmaui02_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_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
+ network.outpoing.packets_cmaui_cmaui02_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_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_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_cmaui01_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui01_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_cmaui01_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_cmaui01_port_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_cmaui01_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui01_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui01_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_cmaui01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_cmaui01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_cmaui01_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui01_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui01_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ requirements:
+ - dependency_cmaui_cmaui01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui01_port:
+ 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
+ network.outgoing.bytes_cmaui_cmaui01_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_cmaui_cmaui01_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_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
+ 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_cmaui01_port:
+ 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
+ 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
+ network.outgoing.bytes.rate_cmaui_cmaui01_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_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_cmaui01_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_cmaui_cmaui01_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_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
+ network.outpoing.packets_cmaui_cmaui01_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_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_cmaui01_port:
+ type: tosca.capabilities.Attachment
+ 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.packets_cmaui_cmaui01_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_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_cmaui01_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_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_cmaui01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - 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
+ 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_server_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui01_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui01_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui02_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui02_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam01_port_1_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam01_port_1_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam02_port_2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam02_port_2_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_pd01_port_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd02_port_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_ps_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_ps_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_oam_2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam_2_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_oam_1_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam_1_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ memory.resident_server_ps_1_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_server_oam_2_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_pd01_port_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_cmaui02_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
+ binding_cmaui02_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.latency_server_cmaui_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.bytes.rate_cmaui02_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.latency_server_cmaui_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.bytes_server_ps_2_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_oam_1_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_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.root.size_server_cmaui_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.latency_server_ps_1_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_cmaui01_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_ps_1_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_cmaui01_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.capacity_server_oam_1_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_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.requests_server_cmaui_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.resident_server_oam_1_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_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_oam_1_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_pd01_port_1_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_ps_1_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_oam_2_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_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
+ feature_cmaui02_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_cmaui_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_cmaui_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_server_cmaui_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_oam02_port_2_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_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_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.bytes_server_ps_2_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_server_ps_2_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_oam_2_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_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.requests.rate_server_cmaui_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_oam_2_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_cmaui02_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_pd01_port_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_ps_2_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_oam02_port_2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests_server_oam_2_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_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_cmaui_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_server_cmaui_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_util_server_ps_2_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_cmaui02_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
+ feature_server_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_ps_2_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_oam_1_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.ephemeral.size_server_ps_2_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_oam02_port_2_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_oam_2_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_oam_1_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_oam01_port_1_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_ps_2_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_oam02_port_2_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_ps_2_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_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd01_port_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ attachment_oam02_port_2_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_cmaui_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_util_server_ps_1_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_server_cmaui_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.requests_server_oam_1_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_oam_2_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_pd02_port_2_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_oam_2_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_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_server_ps_1_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_pd02_port_2_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_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.requests_server_oam_1_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_oam_2_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_oam_2_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_oam_2_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_ps_1_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_ps_2_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_ps_1_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_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_cmaui02_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_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_server_oam_1_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_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_util_server_oam_1_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_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.bytes.rate_server_cmaui_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_oam01_port_1_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_cmaui_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_oam_2_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_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_ps_2_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_ps_1_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_pd02_port_2_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_server_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_oam_2_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_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_oam_1_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_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_ps_2_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_cmaui01_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_oam_2_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_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_oam02_port_2_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_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_oam02_port_2_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_oam_1_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_oam02_port_2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_ps_1_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_ps_1_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_pd02_port_2_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_ps_2_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_oam_2_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_oam_1_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_ps_1_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_oam_2_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_oam_2_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_ps_1_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_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.allocation_server_cmaui_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
+ vcpus_server_oam_1_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_oam01_port_1_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_ps_2_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_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.bytes.rate_pd01_port_1_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_server_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_oam_2_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_oam_1_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_ps_2_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_pd01_port_1_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_ps_1_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_oam_1_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_ps_2_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_oam01_port_1_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_cmaui01_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_cmaui_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.capacity_server_cmaui_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.resident_server_ps_2_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_cmaui01_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_ps_1_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_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_server_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam_1_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd01_port_1_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_ps_2_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_ps_1_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_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_cmaui_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.delta_server_cmaui_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_server_oam_1_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_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_oam_1_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_oam_1_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_oam_2_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_oam_1_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_pd02_port_2_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.read.bytes.rate_server_oam_2_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_pd01_port_1_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_ps_2_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_oam_2_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_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_cmaui_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_cmaui01_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_cmaui01_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ scalable_server_oam_2_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_ps_2_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_pd01_port_1_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_ps_2_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_cmaui01_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_ps_2_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_oam_1_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_ps_2_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_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_cmaui_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.rate_server_cmaui_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.allocation_server_oam_1_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_cmaui02_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_oam_2_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd02_port_2_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_ps_2_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.iops_server_ps_2_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_cmaui02_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_oam_2_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_ps_1_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_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_cmaui_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.capacity_server_cmaui_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
+ feature_server_oam_1_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_ps_1_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_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_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_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_server_ps_2_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_oam_2_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_oam_1_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_ps_2_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_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_pd02_port_2_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.requests_server_oam_2_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_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_oam_2_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_ps_2_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_ps_1_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_oam_2_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_oam_2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_ps_1_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.iops_server_cmaui_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
+ memory_server_ps_1_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.iops_server_cmaui_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.root.size_server_oam_1_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_oam_2_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_ps_1_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_cmaui01_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_ps_1_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_oam_1_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_oam_1_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_oam02_port_2_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_oam_2_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_oam_1_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_oam01_port_1_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_ps_2_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.rate_server_ps_1_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_ps_2_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_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_cmaui_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
+ feature_server_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_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_server_oam_1_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_ps_1_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_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
+ memory_server_oam_2_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_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.root.size_server_oam_2_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_ps_2_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_ps_2_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_cmaui02_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_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_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_oam01_port_1_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_oam_2_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_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_server_ps_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_cmaui_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_pd01_port_1_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_pd01_port_1_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_oam_2_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_pd02_port_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_ps_1_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_oam_1_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_oam_2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_oam_2_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_ps_1_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_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd02_port_2_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_ps_1_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_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam02_port_2_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_oam_1_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.ephemeral.size_server_oam_1_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_pd02_port_2_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_cmaui01_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_ps_1_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_oam01_port_1_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_oam_2_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_oam02_port_2_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_ps_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_ps_1_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.iops_server_ps_1_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_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_oam_2_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_oam_1_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps_2_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_ps_1_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_oam_1_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_oam01_port_1_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_oam01_port_1_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_cmaui02_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_ps_1_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.latency_server_oam_2_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_ps_2_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_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.requests.rate_server_oam_1_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_oam_1_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_oam01_port_1_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ vcpus_server_cmaui_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_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_ps_1_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_oam_1_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_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_server_cmaui_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.rate_server_cmaui_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
+ instance_server_oam_1_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_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.requests_server_ps_2_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_oam01_port_1_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_oam_1_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_oam_2_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_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_oam_1_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_pd02_port_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_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_server_ps_1_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_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_cmaui_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_cmaui_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_cmaui01_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.nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ 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
+ oam_names:
+ 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_oam01_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam01_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam02_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam02_port_2:
+ 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_pd01_port_1_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_1_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd02_port_2_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_2_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_ps_2_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_2_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_ps_1_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_1_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_oam_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_oam_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_oam_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ network.incoming.packets.rate_oam02_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_oam_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.rate_server_ps_1_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_ps_2_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_oam_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_oam02_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_oam_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_oam_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd01_port_1_test_nested3Level:
+ 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_server_ps_2_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_ps_1_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_oam_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.bytes_server_oam_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_oam_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_oam_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_oam01_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_ps_1_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_ps_2_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_oam_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_ps_1_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_ps_1_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_pd02_port_2_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_ps_2_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.rate_server_oam_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.rate_server_oam_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.capacity_server_ps_1_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_server_oam_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.requests_server_oam_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_pd02_port_2_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_ps_2_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_oam_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.usage_server_oam_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.capacity_server_oam_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.usage_server_oam_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_server_oam_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.capacity_server_oam_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_oam01_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.requests.rate_server_ps_1_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_ps_1_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_ps_1_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_ps_2_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_oam01_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_server_ps_2_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_ps_2_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.usage_server_ps_1_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_ps_2_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_ps_2_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_ps_2_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_ps_1_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_ps_1_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_pd01_port_1_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_ps_1_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_pd02_port_2_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_oam_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
+ memory.resident_server_oam_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
+ memory.resident_server_oam_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_pd01_port_1_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_ps_2_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.rate_server_ps_1_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_oam_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.allocation_server_oam_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_ps_2_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_oam_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
+ vcpus_server_ps_1_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_oam_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.rate_server_oam_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_pd01_port_1_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_ps_1_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_pd02_port_2_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_pd01_port_1_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_oam_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.bytes_server_oam_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.allocation_server_ps_2_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_oam02_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_server_oam_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_oam_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_ps_2_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam02_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_oam01_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_oam_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_oam_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_ps_1_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_ps_1_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_pd01_port_1_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_oam_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_server_ps_1_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_oam_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_oam02_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_server_ps_2_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.root.size_server_oam_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.root.size_server_oam_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_ps_1_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.iops_server_oam_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_oam_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.rate_server_ps_1_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_ps_1_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_oam02_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_oam_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_oam_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
+ scalable_server_ps_2_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_ps_2_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_oam_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_oam_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_ps_1_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_oam02_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.rate_server_ps_2_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_ps_2_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_oam01_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.latency_server_ps_1_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_oam_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
+ feature_server_oam_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_oam_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_server_oam_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd02_port_2_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam01_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_server_ps_2_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_pd01_port_1_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
+ os_server_oam_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_oam_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_oam02_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.latency_server_ps_2_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_oam01_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_oam_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_oam_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_pd02_port_2_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_ps_2_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_oam01_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_oam_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_oam_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_server_ps_1_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_oam_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_server_ps_2_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_ps_1_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_ps_2_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
+ os_server_ps_2_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd02_port_2_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_oam02_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
+ vcpus_server_oam_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_pd02_port_2_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_ps_2_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_oam_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.rate_server_oam_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_server_oam_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_server_oam_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
+ binding_oam01_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.requests_server_ps_2_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_ps_1_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_ps_1_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_ps_1_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_ps_2_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_ps_1_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_ps_2_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_ps_2_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_oam_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_ps_2_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.root.size_server_ps_1_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_oam_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_oam_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.requests_server_oam_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_oam_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_ps_1_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_oam_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
+ scalable_server_ps_1_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd02_port_2_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_oam_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_server_oam_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.bytes_pd01_port_1_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_ps_2_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd02_port_2_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_oam_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_ps_2_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_oam_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_server_ps_1_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_server_oam_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_pd01_port_1_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_oam_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
+ memory_server_oam_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_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.latency_server_oam_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.latency_server_oam_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_oam_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_server_oam_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_ps_1_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_ps_1_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_ps_2_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.usage_server_ps_2_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
+ instance_server_ps_2_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_ps_1_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_ps_2_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_oam_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_oam01_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.requests_server_ps_1_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.rate_server_ps_2_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_oam02_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam01_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_oam02_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_pd01_port_1_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_oam_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
+ binding_pd02_port_2_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.allocation_server_ps_2_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_pd01_port_1_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_ps_1_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_ps_2_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_oam_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_server_oam_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_ps_1_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_server_ps_1_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.ps:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd02_port_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
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ 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_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_pd02_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_ps_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_ps_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_pd02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_pd02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.requests.rate_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_ps_pd02_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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps_pd02_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_ps_pd02_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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: org.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_ps_pd02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_ps:
+ type: org.openecomp.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_ps:
+ type: org.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_ps_pd02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps_pd02_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_ps:
+ type: org.openecomp.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_ps:
+ type: org.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:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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_pd01_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_1:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd02_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_2:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_ps_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_ps_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ binding_server_ps_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_ps_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
+ instance_server_ps_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_server_ps_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_ps_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_ps_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.capacity_server_ps_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.bytes_pd02_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.capacity_server_ps_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_pd01_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_ps_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_ps_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.rate_server_ps_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.latency_server_ps_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.requests.rate_server_ps_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.latency_server_ps_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_ps_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_ps_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_server_ps_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_ps_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_server_ps_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_ps_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_ps_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_ps_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_ps_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_ps_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_ps_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_server_ps_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_server_ps_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_server_ps_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd01_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_ps_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.bytes.rate_pd02_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
+ host_server_ps_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_ps_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_server_ps_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_ps_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.rate_server_ps_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
+ scalable_server_ps_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd02_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
+ scalable_server_ps_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd01_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.rate_server_ps_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.bytes.rate_server_ps_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.requests.rate_server_ps_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.rate_server_ps_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.resident_server_ps_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_server_ps_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_pd02_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_ps_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.bytes_server_ps_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_ps_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_ps_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_ps_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_pd01_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_ps_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_ps_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.requests_server_ps_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.requests_server_ps_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.requests_server_ps_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.requests_server_ps_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_pd01_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_server_ps_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_server_ps_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_ps_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_pd01_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_ps_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_util_server_ps_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_ps_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_server_ps_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_server_ps_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.bytes.rate_server_ps_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_ps_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_ps_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.root.size_server_ps_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_pd02_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_ps_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_pd01_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_pd02_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_pd01_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_server_ps_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_pd01_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_server_ps_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_pd02_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_pd01_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_pd02_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_pd02_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
+ vcpus_server_ps_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_ps_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_pd01_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_pd02_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_ps_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_pd02_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_ps_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.requests_server_ps_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_ps_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
+ memory_server_ps_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.bytes_server_ps_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_ps_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
+ memory_server_ps_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_server_ps_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps_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.delta_server_ps_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
+ feature_server_ps_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..e53177de56
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/MainServiceTemplate.yaml
@@ -0,0 +1,151 @@
+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:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ entry_schema:
+ type: string
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: net name
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ port_pd02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd02_port_network_role_tag: oam
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd02_port_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
+ - abstract_pd_server
+ - abstract_pd_server_1
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmauiServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmauiServiceTemplate.yaml
new file mode 100644
index 0000000000..9211de9d01
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmauiServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui02_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui02_port_order:
+ type: integer
+ required: true
+ port_cmaui02_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui02_port_network_role:
+ type: string
+ required: true
+ port_cmaui02_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_cmaui02_port_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui02_port_network_role_tag:
+ type: string
+ required: true
+ node_templates:
+ cmaui_cmaui02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui02_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui02_port_mac_requirements
+ order:
+ get_input: port_cmaui02_port_order
+ security_groups:
+ get_input:
+ - port_cmaui02_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui02_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui02_port_network_role_tag
+ network_role:
+ get_input: port_cmaui02_port_network_role
+ fixed_ips:
+ get_input: port_cmaui02_port_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui02_port_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui
+ capabilities:
+ network.incoming.bytes_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.incoming.bytes
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ feature_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - feature
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ network.incoming.packets.rate_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.incoming.packets.rate
+ binding_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - binding
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ network.outgoing.packets.rate_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.outgoing.packets.rate
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ feature_cmaui:
+ - cmaui
+ - feature
+ network.incoming.packets_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.incoming.packets
+ binding_cmaui:
+ - cmaui
+ - binding
+ attachment_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - attachment
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ network.outgoing.bytes_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.outgoing.bytes
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ network.outgoing.bytes.rate_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.outgoing.bytes.rate
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ network.incoming.bytes.rate_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.incoming.bytes.rate
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ network.outpoing.packets_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - network.outpoing.packets
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ dependency_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - dependency
+ link_cmaui_cmaui02_port:
+ - cmaui_cmaui02_port
+ - link
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmaui_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmaui_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..478d756e51
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_cmaui_1ServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui01_port_network_role:
+ type: string
+ required: true
+ port_cmaui01_port_order:
+ type: integer
+ required: true
+ port_cmaui01_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui01_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui01_port_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui01_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui01_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ node_templates:
+ cmaui_cmaui01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui01_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui01_port_mac_requirements
+ order:
+ get_input: port_cmaui01_port_order
+ security_groups:
+ get_input:
+ - port_cmaui01_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui01_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui01_port_network_role_tag
+ network_role:
+ get_input: port_cmaui01_port_network_role
+ fixed_ips:
+ get_input: port_cmaui01_port_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui01_port_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ network.outgoing.bytes_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.outgoing.bytes
+ network.incoming.packets.rate_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.incoming.packets.rate
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ feature_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - feature
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ network.outgoing.bytes.rate_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.outgoing.bytes.rate
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ network.incoming.bytes_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.incoming.bytes
+ network.outgoing.packets.rate_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.outgoing.packets.rate
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ network.outpoing.packets_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.outpoing.packets
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ attachment_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - attachment
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ network.incoming.packets_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.incoming.packets
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.incoming.bytes.rate_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - network.incoming.bytes.rate
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ binding_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - binding
+ feature_cmaui:
+ - cmaui
+ - feature
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ dependency_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - dependency
+ link_cmaui_cmaui01_port:
+ - cmaui_cmaui01_port
+ - link
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oamServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oamServiceTemplate.yaml
new file mode 100644
index 0000000000..3bf69cd643
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oamServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam02_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam02_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_oam02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_oam02_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_oam02_port_subnetpoolid:
+ type: string
+ required: true
+ port_oam02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_oam02_port_order:
+ type: integer
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_oam02_port_network_role_tag:
+ type: string
+ required: true
+ port_oam02_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_oam_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ oam_oam02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_oam02_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_oam02_port_mac_requirements
+ order:
+ get_input: port_oam02_port_order
+ security_groups:
+ get_input:
+ - port_oam02_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_oam02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_oam02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam02_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam02_port_network_role_tag
+ network_role:
+ get_input: port_oam02_port_network_role
+ fixed_ips:
+ get_input: port_oam02_port_fixed_ips
+ subnetpoolid:
+ get_input: port_oam02_port_subnetpoolid
+ network:
+ get_input:
+ - port_oam02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam
+ relationship: tosca.relationships.network.BindsTo
+ oam:
+ type: org.openecomp.resource.vfc.nodes.heat.oam
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam
+ capabilities:
+ cpu_oam:
+ - oam
+ - cpu
+ network.incoming.bytes.rate_oam_oam02_port:
+ - oam_oam02_port
+ - network.incoming.bytes.rate
+ disk.usage_oam:
+ - oam
+ - disk.usage
+ memory.resident_oam:
+ - oam
+ - memory.resident
+ disk.device.write.bytes_oam:
+ - oam
+ - disk.device.write.bytes
+ network.incoming.packets_oam_oam02_port:
+ - oam_oam02_port
+ - network.incoming.packets
+ disk.read.bytes_oam:
+ - oam
+ - disk.read.bytes
+ network.outgoing.packets.rate_oam_oam02_port:
+ - oam_oam02_port
+ - network.outgoing.packets.rate
+ binding_oam_oam02_port:
+ - oam_oam02_port
+ - binding
+ scalable_oam:
+ - oam
+ - scalable
+ network.outgoing.bytes.rate_oam_oam02_port:
+ - oam_oam02_port
+ - network.outgoing.bytes.rate
+ feature_oam:
+ - oam
+ - feature
+ disk.allocation_oam:
+ - oam
+ - disk.allocation
+ disk.device.usage_oam:
+ - oam
+ - disk.device.usage
+ binding_oam:
+ - oam
+ - binding
+ disk.device.read.bytes.rate_oam:
+ - oam
+ - disk.device.read.bytes.rate
+ disk.write.bytes.rate_oam:
+ - oam
+ - disk.write.bytes.rate
+ disk.device.write.bytes.rate_oam:
+ - oam
+ - disk.device.write.bytes.rate
+ disk.device.allocation_oam:
+ - oam
+ - disk.device.allocation
+ disk.ephemeral.size_oam:
+ - oam
+ - disk.ephemeral.size
+ disk.write.requests_oam:
+ - oam
+ - disk.write.requests
+ disk.capacity_oam:
+ - oam
+ - disk.capacity
+ instance_oam:
+ - oam
+ - instance
+ network.outgoing.bytes_oam_oam02_port:
+ - oam_oam02_port
+ - network.outgoing.bytes
+ disk.root.size_oam:
+ - oam
+ - disk.root.size
+ network.incoming.packets.rate_oam_oam02_port:
+ - oam_oam02_port
+ - network.incoming.packets.rate
+ memory_oam:
+ - oam
+ - memory
+ cpu.delta_oam:
+ - oam
+ - cpu.delta
+ disk.device.write.requests_oam:
+ - oam
+ - disk.device.write.requests
+ disk.device.read.requests.rate_oam:
+ - oam
+ - disk.device.read.requests.rate
+ disk.write.requests.rate_oam:
+ - oam
+ - disk.write.requests.rate
+ disk.device.latency_oam:
+ - oam
+ - disk.device.latency
+ disk.device.iops_oam:
+ - oam
+ - disk.device.iops
+ vcpus_oam:
+ - oam
+ - vcpus
+ disk.device.write.requests.rate_oam:
+ - oam
+ - disk.device.write.requests.rate
+ disk.device.read.bytes_oam:
+ - oam
+ - disk.device.read.bytes
+ host_oam:
+ - oam
+ - host
+ endpoint_oam:
+ - oam
+ - endpoint
+ disk.device.read.requests_oam:
+ - oam
+ - disk.device.read.requests
+ disk.iops_oam:
+ - oam
+ - disk.iops
+ disk.read.bytes.rate_oam:
+ - oam
+ - disk.read.bytes.rate
+ feature_oam_oam02_port:
+ - oam_oam02_port
+ - feature
+ cpu_util_oam:
+ - oam
+ - cpu_util
+ network.outpoing.packets_oam_oam02_port:
+ - oam_oam02_port
+ - network.outpoing.packets
+ os_oam:
+ - oam
+ - os
+ memory.usage_oam:
+ - oam
+ - memory.usage
+ disk.latency_oam:
+ - oam
+ - disk.latency
+ network.incoming.bytes_oam_oam02_port:
+ - oam_oam02_port
+ - network.incoming.bytes
+ attachment_oam_oam02_port:
+ - oam_oam02_port
+ - attachment
+ disk.write.bytes_oam:
+ - oam
+ - disk.write.bytes
+ disk.read.requests_oam:
+ - oam
+ - disk.read.requests
+ disk.device.capacity_oam:
+ - oam
+ - disk.device.capacity
+ requirements:
+ link_oam_oam02_port:
+ - oam_oam02_port
+ - link
+ local_storage_oam:
+ - oam
+ - local_storage
+ dependency_oam_oam02_port:
+ - oam_oam02_port
+ - dependency
+ dependency_oam:
+ - oam
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oam_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oam_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..f89ea642cc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_oam_1ServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_oam01_port_subnetpoolid:
+ type: string
+ required: true
+ port_oam01_port_order:
+ type: integer
+ required: true
+ port_oam01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam01_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_oam01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam01_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_oam01_port_network_role:
+ type: string
+ required: true
+ port_oam01_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_oam_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam01_port_network_role_tag:
+ type: string
+ required: true
+ compute_oam_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ oam_oam01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_oam01_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_oam01_port_mac_requirements
+ order:
+ get_input: port_oam01_port_order
+ security_groups:
+ get_input:
+ - port_oam01_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_oam01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_oam01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam01_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam01_port_network_role_tag
+ network_role:
+ get_input: port_oam01_port_network_role
+ fixed_ips:
+ get_input: port_oam01_port_fixed_ips
+ subnetpoolid:
+ get_input: port_oam01_port_subnetpoolid
+ network:
+ get_input:
+ - port_oam01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam
+ relationship: tosca.relationships.network.BindsTo
+ oam:
+ type: org.openecomp.resource.vfc.nodes.heat.oam
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_1
+ capabilities:
+ cpu_oam:
+ - oam
+ - cpu
+ network.outgoing.packets.rate_oam_oam01_port:
+ - oam_oam01_port
+ - network.outgoing.packets.rate
+ binding_oam_oam01_port:
+ - oam_oam01_port
+ - binding
+ network.outgoing.bytes.rate_oam_oam01_port:
+ - oam_oam01_port
+ - network.outgoing.bytes.rate
+ disk.usage_oam:
+ - oam
+ - disk.usage
+ memory.resident_oam:
+ - oam
+ - memory.resident
+ disk.device.write.bytes_oam:
+ - oam
+ - disk.device.write.bytes
+ disk.read.bytes_oam:
+ - oam
+ - disk.read.bytes
+ scalable_oam:
+ - oam
+ - scalable
+ attachment_oam_oam01_port:
+ - oam_oam01_port
+ - attachment
+ network.incoming.bytes_oam_oam01_port:
+ - oam_oam01_port
+ - network.incoming.bytes
+ feature_oam:
+ - oam
+ - feature
+ disk.allocation_oam:
+ - oam
+ - disk.allocation
+ disk.device.usage_oam:
+ - oam
+ - disk.device.usage
+ network.incoming.packets.rate_oam_oam01_port:
+ - oam_oam01_port
+ - network.incoming.packets.rate
+ binding_oam:
+ - oam
+ - binding
+ disk.device.read.bytes.rate_oam:
+ - oam
+ - disk.device.read.bytes.rate
+ disk.write.bytes.rate_oam:
+ - oam
+ - disk.write.bytes.rate
+ disk.device.write.bytes.rate_oam:
+ - oam
+ - disk.device.write.bytes.rate
+ disk.device.allocation_oam:
+ - oam
+ - disk.device.allocation
+ disk.ephemeral.size_oam:
+ - oam
+ - disk.ephemeral.size
+ feature_oam_oam01_port:
+ - oam_oam01_port
+ - feature
+ disk.write.requests_oam:
+ - oam
+ - disk.write.requests
+ disk.capacity_oam:
+ - oam
+ - disk.capacity
+ instance_oam:
+ - oam
+ - instance
+ network.outpoing.packets_oam_oam01_port:
+ - oam_oam01_port
+ - network.outpoing.packets
+ disk.root.size_oam:
+ - oam
+ - disk.root.size
+ memory_oam:
+ - oam
+ - memory
+ cpu.delta_oam:
+ - oam
+ - cpu.delta
+ disk.device.write.requests_oam:
+ - oam
+ - disk.device.write.requests
+ disk.device.read.requests.rate_oam:
+ - oam
+ - disk.device.read.requests.rate
+ network.outgoing.bytes_oam_oam01_port:
+ - oam_oam01_port
+ - network.outgoing.bytes
+ disk.write.requests.rate_oam:
+ - oam
+ - disk.write.requests.rate
+ disk.device.latency_oam:
+ - oam
+ - disk.device.latency
+ disk.device.iops_oam:
+ - oam
+ - disk.device.iops
+ vcpus_oam:
+ - oam
+ - vcpus
+ disk.device.write.requests.rate_oam:
+ - oam
+ - disk.device.write.requests.rate
+ disk.device.read.bytes_oam:
+ - oam
+ - disk.device.read.bytes
+ host_oam:
+ - oam
+ - host
+ endpoint_oam:
+ - oam
+ - endpoint
+ network.incoming.bytes.rate_oam_oam01_port:
+ - oam_oam01_port
+ - network.incoming.bytes.rate
+ disk.device.read.requests_oam:
+ - oam
+ - disk.device.read.requests
+ disk.iops_oam:
+ - oam
+ - disk.iops
+ disk.read.bytes.rate_oam:
+ - oam
+ - disk.read.bytes.rate
+ cpu_util_oam:
+ - oam
+ - cpu_util
+ os_oam:
+ - oam
+ - os
+ memory.usage_oam:
+ - oam
+ - memory.usage
+ disk.latency_oam:
+ - oam
+ - disk.latency
+ disk.write.bytes_oam:
+ - oam
+ - disk.write.bytes
+ disk.read.requests_oam:
+ - oam
+ - disk.read.requests
+ disk.device.capacity_oam:
+ - oam
+ - disk.device.capacity
+ network.incoming.packets_oam_oam01_port:
+ - oam_oam01_port
+ - network.incoming.packets
+ requirements:
+ local_storage_oam:
+ - oam
+ - local_storage
+ dependency_oam_oam01_port:
+ - oam_oam01_port
+ - dependency
+ link_oam_oam01_port:
+ - oam_oam01_port
+ - link
+ dependency_oam:
+ - oam
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..796b811eb4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd02_port_order:
+ type: integer
+ required: true
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd02_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd02_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd02_port_mac_requirements
+ order:
+ get_input: port_pd02_port_order
+ network_role:
+ get_input: port_pd02_port_network_role
+ subnetpoolid:
+ get_input: port_pd02_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ binding_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - binding
+ network.outgoing.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.outgoing.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes
+ feature_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - feature
+ network.incoming.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ network.incoming.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ network.outpoing.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outpoing.packets
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ attachment_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - attachment
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ network.incoming.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets.rate
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ network.incoming.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - link
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml
index a6d8533b57..a6d8533b57 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_psServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_psServiceTemplate.yaml
new file mode 100644
index 0000000000..ba4da444b1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_psServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd02_port_fixed_ips:
+ type: list
+ required: true
+ 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
+ constraints:
+ - greater_or_equal: 0
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd02_port_order:
+ type: integer
+ required: true
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd02_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_ps_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ compute_ps_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ ps:
+ type: org.openecomp.resource.vfc.nodes.heat.ps
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_name
+ - index_value
+ ps_pd02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_pd02_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_pd02_port_mac_requirements
+ order:
+ get_input: port_pd02_port_order
+ security_groups:
+ get_input:
+ - port_pd02_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pd02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd02_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd02_port_network_role_tag
+ network_role:
+ get_input: port_pd02_port_network_role
+ fixed_ips:
+ get_input: port_pd02_port_fixed_ips
+ subnetpoolid:
+ get_input: port_pd02_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps
+ capabilities:
+ disk.write.requests.rate_ps:
+ - ps
+ - disk.write.requests.rate
+ disk.device.iops_ps:
+ - ps
+ - disk.device.iops
+ scalable_ps:
+ - ps
+ - scalable
+ disk.write.requests_ps:
+ - ps
+ - disk.write.requests
+ host_ps:
+ - ps
+ - host
+ disk.device.allocation_ps:
+ - ps
+ - disk.device.allocation
+ disk.read.bytes_ps:
+ - ps
+ - disk.read.bytes
+ memory.resident_ps:
+ - ps
+ - memory.resident
+ disk.device.usage_ps:
+ - ps
+ - disk.device.usage
+ network.outgoing.bytes.rate_ps_pd02_port:
+ - ps_pd02_port
+ - network.outgoing.bytes.rate
+ endpoint_ps:
+ - ps
+ - endpoint
+ disk.device.capacity_ps:
+ - ps
+ - disk.device.capacity
+ cpu_ps:
+ - ps
+ - cpu
+ network.incoming.packets_ps_pd02_port:
+ - ps_pd02_port
+ - network.incoming.packets
+ disk.device.write.bytes_ps:
+ - ps
+ - disk.device.write.bytes
+ network.outgoing.packets.rate_ps_pd02_port:
+ - ps_pd02_port
+ - network.outgoing.packets.rate
+ cpu.delta_ps:
+ - ps
+ - cpu.delta
+ disk.root.size_ps:
+ - ps
+ - disk.root.size
+ disk.device.read.requests.rate_ps:
+ - ps
+ - disk.device.read.requests.rate
+ binding_ps:
+ - ps
+ - binding
+ binding_ps_pd02_port:
+ - ps_pd02_port
+ - binding
+ disk.device.write.requests.rate_ps:
+ - ps
+ - disk.device.write.requests.rate
+ network.outgoing.bytes_ps_pd02_port:
+ - ps_pd02_port
+ - network.outgoing.bytes
+ cpu_util_ps:
+ - ps
+ - cpu_util
+ network.outpoing.packets_ps_pd02_port:
+ - ps_pd02_port
+ - network.outpoing.packets
+ network.incoming.packets.rate_ps_pd02_port:
+ - ps_pd02_port
+ - network.incoming.packets.rate
+ network.incoming.bytes_ps_pd02_port:
+ - ps_pd02_port
+ - network.incoming.bytes
+ disk.read.bytes.rate_ps:
+ - ps
+ - disk.read.bytes.rate
+ disk.device.read.bytes.rate_ps:
+ - ps
+ - disk.device.read.bytes.rate
+ disk.read.requests_ps:
+ - ps
+ - disk.read.requests
+ vcpus_ps:
+ - ps
+ - vcpus
+ instance_ps:
+ - ps
+ - instance
+ disk.latency_ps:
+ - ps
+ - disk.latency
+ disk.device.read.bytes_ps:
+ - ps
+ - disk.device.read.bytes
+ memory.usage_ps:
+ - ps
+ - memory.usage
+ feature_ps:
+ - ps
+ - feature
+ disk.device.write.bytes.rate_ps:
+ - ps
+ - disk.device.write.bytes.rate
+ disk.ephemeral.size_ps:
+ - ps
+ - disk.ephemeral.size
+ memory_ps:
+ - ps
+ - memory
+ feature_ps_pd02_port:
+ - ps_pd02_port
+ - feature
+ disk.usage_ps:
+ - ps
+ - disk.usage
+ disk.write.bytes.rate_ps:
+ - ps
+ - disk.write.bytes.rate
+ os_ps:
+ - ps
+ - os
+ disk.iops_ps:
+ - ps
+ - disk.iops
+ disk.allocation_ps:
+ - ps
+ - disk.allocation
+ attachment_ps_pd02_port:
+ - ps_pd02_port
+ - attachment
+ disk.device.read.requests_ps:
+ - ps
+ - disk.device.read.requests
+ disk.capacity_ps:
+ - ps
+ - disk.capacity
+ disk.device.latency_ps:
+ - ps
+ - disk.device.latency
+ network.incoming.bytes.rate_ps_pd02_port:
+ - ps_pd02_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests_ps:
+ - ps
+ - disk.device.write.requests
+ disk.write.bytes_ps:
+ - ps
+ - disk.write.bytes
+ requirements:
+ dependency_ps_pd02_port:
+ - ps_pd02_port
+ - dependency
+ link_ps_pd02_port:
+ - ps_pd02_port
+ - link
+ dependency_ps:
+ - ps
+ - dependency
+ local_storage_ps:
+ - ps
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_ps_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_ps_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..55a8fa9ba5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/Nested_ps_1ServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ compute_ps_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ ps:
+ type: org.openecomp.resource.vfc.nodes.heat.ps
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_name
+ - index_value
+ ps_pd01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_pd01_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_pd01_port_mac_requirements
+ order:
+ get_input: port_pd01_port_order
+ security_groups:
+ get_input:
+ - port_pd01_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pd01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd01_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd01_port_network_role_tag
+ network_role:
+ get_input: port_pd01_port_network_role
+ fixed_ips:
+ get_input: port_pd01_port_fixed_ips
+ subnetpoolid:
+ get_input: port_pd01_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_1
+ capabilities:
+ disk.write.requests.rate_ps:
+ - ps
+ - disk.write.requests.rate
+ disk.device.iops_ps:
+ - ps
+ - disk.device.iops
+ network.incoming.packets_ps_pd01_port:
+ - ps_pd01_port
+ - network.incoming.packets
+ scalable_ps:
+ - ps
+ - scalable
+ disk.write.requests_ps:
+ - ps
+ - disk.write.requests
+ host_ps:
+ - ps
+ - host
+ disk.device.allocation_ps:
+ - ps
+ - disk.device.allocation
+ disk.read.bytes_ps:
+ - ps
+ - disk.read.bytes
+ memory.resident_ps:
+ - ps
+ - memory.resident
+ disk.device.usage_ps:
+ - ps
+ - disk.device.usage
+ endpoint_ps:
+ - ps
+ - endpoint
+ network.incoming.bytes.rate_ps_pd01_port:
+ - ps_pd01_port
+ - network.incoming.bytes.rate
+ disk.device.capacity_ps:
+ - ps
+ - disk.device.capacity
+ cpu_ps:
+ - ps
+ - cpu
+ attachment_ps_pd01_port:
+ - ps_pd01_port
+ - attachment
+ disk.device.write.bytes_ps:
+ - ps
+ - disk.device.write.bytes
+ cpu.delta_ps:
+ - ps
+ - cpu.delta
+ disk.root.size_ps:
+ - ps
+ - disk.root.size
+ disk.device.read.requests.rate_ps:
+ - ps
+ - disk.device.read.requests.rate
+ binding_ps:
+ - ps
+ - binding
+ network.incoming.packets.rate_ps_pd01_port:
+ - ps_pd01_port
+ - network.incoming.packets.rate
+ disk.device.write.requests.rate_ps:
+ - ps
+ - disk.device.write.requests.rate
+ feature_ps_pd01_port:
+ - ps_pd01_port
+ - feature
+ network.incoming.bytes_ps_pd01_port:
+ - ps_pd01_port
+ - network.incoming.bytes
+ cpu_util_ps:
+ - ps
+ - cpu_util
+ disk.read.bytes.rate_ps:
+ - ps
+ - disk.read.bytes.rate
+ disk.device.read.bytes.rate_ps:
+ - ps
+ - disk.device.read.bytes.rate
+ disk.read.requests_ps:
+ - ps
+ - disk.read.requests
+ vcpus_ps:
+ - ps
+ - vcpus
+ instance_ps:
+ - ps
+ - instance
+ disk.latency_ps:
+ - ps
+ - disk.latency
+ network.outpoing.packets_ps_pd01_port:
+ - ps_pd01_port
+ - network.outpoing.packets
+ disk.device.read.bytes_ps:
+ - ps
+ - disk.device.read.bytes
+ memory.usage_ps:
+ - ps
+ - memory.usage
+ binding_ps_pd01_port:
+ - ps_pd01_port
+ - binding
+ feature_ps:
+ - ps
+ - feature
+ disk.device.write.bytes.rate_ps:
+ - ps
+ - disk.device.write.bytes.rate
+ network.outgoing.bytes_ps_pd01_port:
+ - ps_pd01_port
+ - network.outgoing.bytes
+ disk.ephemeral.size_ps:
+ - ps
+ - disk.ephemeral.size
+ memory_ps:
+ - ps
+ - memory
+ disk.usage_ps:
+ - ps
+ - disk.usage
+ disk.write.bytes.rate_ps:
+ - ps
+ - disk.write.bytes.rate
+ os_ps:
+ - ps
+ - os
+ network.outgoing.packets.rate_ps_pd01_port:
+ - ps_pd01_port
+ - network.outgoing.packets.rate
+ disk.iops_ps:
+ - ps
+ - disk.iops
+ disk.allocation_ps:
+ - ps
+ - disk.allocation
+ disk.device.read.requests_ps:
+ - ps
+ - disk.device.read.requests
+ disk.capacity_ps:
+ - ps
+ - disk.capacity
+ disk.device.latency_ps:
+ - ps
+ - disk.device.latency
+ network.outgoing.bytes.rate_ps_pd01_port:
+ - ps_pd01_port
+ - network.outgoing.bytes.rate
+ disk.device.write.requests_ps:
+ - ps
+ - disk.device.write.requests
+ disk.write.bytes_ps:
+ - ps
+ - disk.write.bytes
+ requirements:
+ dependency_ps:
+ - ps
+ - dependency
+ local_storage_ps:
+ - ps
+ - local_storage
+ dependency_ps_pd01_port:
+ - ps_pd01_port
+ - dependency
+ link_ps_pd01_port:
+ - ps_pd01_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..c6daefdd25
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,1191 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_cmaui:
+ type: org.openecomp.resource.abstract.nodes.cmaui
+ directives:
+ - substitutable
+ properties:
+ port_cmaui02_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 1
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui02_port_replacement_policy:
+ - AUTO
+ port_cmaui02_port_security_groups:
+ - - get_input: p2
+ port_cmaui02_port_network:
+ - get_input: net
+ service_template_filter:
+ substitute_service_template: Nested_cmauiServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_cmaui_1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1
+ directives:
+ - substitutable
+ properties:
+ port_cmaui01_port_replacement_policy:
+ - AUTO
+ port_cmaui01_port_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 0
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui01_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui01_port_network:
+ - get_input: net
+ port_cmaui01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested2Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested2ServiceTemplate.yaml
+ p2:
+ get_input: p2
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - test_nested2Level
+ - abstract_cmaui
+ - abstract_cmaui_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ memory.resident_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_ps_1_test_nested3Level
+ disk.device.write.requests_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_oam_2
+ feature_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_pd01_port_1_test_nested3Level
+ network.outgoing.packets.rate_cmaui02_port_2:
+ - abstract_cmaui
+ - network.outgoing.packets.rate_cmaui_cmaui02_port
+ binding_cmaui02_port_2:
+ - abstract_cmaui
+ - binding_cmaui_cmaui02_port
+ disk.device.latency_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.latency_cmaui
+ network.outgoing.bytes.rate_cmaui02_port_2:
+ - abstract_cmaui
+ - network.outgoing.bytes.rate_cmaui_cmaui02_port
+ disk.device.latency_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.latency_cmaui
+ disk.device.read.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_ps_2_test_nested3Level
+ cpu.delta_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_oam_1
+ disk.root.size_server_cmaui_2:
+ - abstract_cmaui
+ - disk.root.size_cmaui
+ disk.root.size_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.root.size_cmaui
+ disk.device.latency_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_ps_1_test_nested3Level
+ attachment_cmaui01_port_1:
+ - abstract_cmaui_1
+ - attachment_cmaui_cmaui01_port
+ disk.write.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_ps_1_test_nested3Level
+ network.incoming.bytes.rate_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.incoming.bytes.rate_cmaui_cmaui01_port
+ disk.capacity_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_oam_1
+ disk.read.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.requests_cmaui
+ disk.read.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.requests_cmaui
+ memory.resident_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_oam_1
+ binding_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_server_ps_1_test_nested3Level
+ memory.usage_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_oam_1
+ network.incoming.bytes_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd01_port_1_test_nested3Level
+ disk.root.size_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_ps_1_test_nested3Level
+ cpu.delta_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_oam_2
+ disk.device.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.bytes.rate_cmaui
+ feature_cmaui02_port_2:
+ - abstract_cmaui
+ - feature_cmaui_cmaui02_port
+ disk.device.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.bytes.rate_cmaui
+ disk.read.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.bytes_cmaui
+ disk.read.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.bytes_cmaui
+ network.outgoing.packets.rate_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_oam02_port_2
+ disk.device.read.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.bytes_cmaui
+ disk.device.read.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.bytes_cmaui
+ disk.write.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_ps_2_test_nested3Level
+ disk.device.write.requests_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_ps_2_test_nested3Level
+ memory.resident_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_oam_2
+ disk.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.requests.rate_cmaui
+ disk.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.requests.rate_cmaui
+ disk.iops_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_oam_2
+ network.outpoing.packets_cmaui02_port_2:
+ - abstract_cmaui
+ - network.outpoing.packets_cmaui_cmaui02_port
+ attachment_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd01_port_1_test_nested3Level
+ disk.device.latency_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_ps_2_test_nested3Level
+ binding_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - binding_oam02_port_2
+ disk.write.requests_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_oam_2
+ endpoint_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_ps_2_test_nested3Level
+ disk.ephemeral.size_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.ephemeral.size_cmaui
+ disk.ephemeral.size_server_cmaui_2:
+ - abstract_cmaui
+ - disk.ephemeral.size_cmaui
+ cpu_util_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_ps_2_test_nested3Level
+ network.outgoing.bytes_cmaui02_port_2:
+ - abstract_cmaui
+ - network.outgoing.bytes_cmaui_cmaui02_port
+ feature_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_server_ps_1_test_nested3Level
+ disk.write.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_ps_2_test_nested3Level
+ disk.device.capacity_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_oam_1
+ disk.ephemeral.size_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_ps_2_test_nested3Level
+ network.incoming.bytes.rate_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_oam02_port_2
+ disk.device.read.requests.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_oam_2
+ disk.read.bytes_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_oam_1
+ network.outpoing.packets_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_oam01_port_1
+ disk.device.write.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_ps_2_test_nested3Level
+ network.outgoing.bytes.rate_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_oam02_port_2
+ disk.read.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_ps_2_test_nested3Level
+ feature_test_nested2Level:
+ - test_nested2Level
+ - feature
+ binding_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_pd01_port_1_test_nested3Level
+ attachment_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - attachment_oam02_port_2
+ disk.device.write.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.requests_cmaui
+ cpu_util_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_ps_1_test_nested3Level
+ disk.device.write.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.requests_cmaui
+ disk.device.write.requests_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_oam_1
+ disk.device.write.bytes.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_oam_2
+ network.outgoing.bytes_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd02_port_2_test_nested3Level
+ disk.capacity_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_oam_2
+ disk.device.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.bytes.rate_cmaui
+ disk.ephemeral.size_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_ps_1_test_nested3Level
+ network.incoming.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd02_port_2_test_nested3Level
+ cpu_util_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu_util_cmaui
+ disk.device.read.requests_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_oam_1
+ disk.device.write.bytes_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_oam_2
+ disk.device.write.requests.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_oam_2
+ cpu_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_oam_2
+ disk.device.read.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_ps_1_test_nested3Level
+ disk.root.size_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_ps_2_test_nested3Level
+ disk.write.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_ps_1_test_nested3Level
+ cpu_util_server_cmaui_2:
+ - abstract_cmaui
+ - cpu_util_cmaui
+ network.incoming.packets_cmaui02_port_2:
+ - abstract_cmaui
+ - network.incoming.packets_cmaui_cmaui02_port
+ disk.device.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.bytes.rate_cmaui
+ disk.device.usage_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_oam_1
+ disk.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.bytes.rate_cmaui
+ cpu_util_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_oam_1
+ disk.device.write.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.bytes_cmaui
+ disk.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.bytes.rate_cmaui
+ attachment_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - attachment_oam01_port_1
+ disk.device.write.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.bytes_cmaui
+ disk.write.bytes_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_oam_2
+ os_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - os_server_ps_2_test_nested3Level
+ disk.allocation_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_ps_2_test_nested3Level
+ cpu.delta_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_ps_1_test_nested3Level
+ network.incoming.bytes_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd02_port_2_test_nested3Level
+ binding_server_cmaui_1:
+ - abstract_cmaui_1
+ - binding_cmaui
+ disk.device.usage_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_oam_2
+ binding_server_cmaui_2:
+ - abstract_cmaui
+ - binding_cmaui
+ disk.allocation_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_oam_1
+ scalable_server_cmaui_2:
+ - abstract_cmaui
+ - scalable_cmaui
+ scalable_server_cmaui_1:
+ - abstract_cmaui_1
+ - scalable_cmaui
+ disk.device.usage_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_ps_2_test_nested3Level
+ network.incoming.bytes_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.incoming.bytes_cmaui_cmaui01_port
+ instance_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - instance_server_oam_2
+ endpoint_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_ps_1_test_nested3Level
+ network.incoming.packets_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_oam02_port_2
+ endpoint_server_cmaui_1:
+ - abstract_cmaui_1
+ - endpoint_cmaui
+ endpoint_server_cmaui_2:
+ - abstract_cmaui
+ - endpoint_cmaui
+ network.outpoing.packets_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_oam02_port_2
+ disk.device.latency_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_oam_1
+ feature_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - feature_oam02_port_2
+ disk.device.allocation_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_ps_1_test_nested3Level
+ memory.usage_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_ps_1_test_nested3Level
+ network.incoming.packets_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd02_port_2_test_nested3Level
+ disk.device.read.requests_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_ps_2_test_nested3Level
+ disk.device.capacity_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_oam_2
+ disk.read.requests_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_oam_1
+ disk.device.read.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_ps_1_test_nested3Level
+ disk.allocation_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_oam_2
+ os_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - os_server_oam_2
+ disk.device.iops_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_ps_1_test_nested3Level
+ disk.device.allocation_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.allocation_cmaui
+ disk.device.allocation_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.allocation_cmaui
+ vcpus_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_oam_1
+ network.incoming.packets_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_oam01_port_1
+ disk.device.write.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_ps_2_test_nested3Level
+ memory_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory_cmaui
+ network.outgoing.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd01_port_1_test_nested3Level
+ binding_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_server_ps_2_test_nested3Level
+ memory.usage_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_oam_2
+ disk.iops_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_oam_1
+ disk.usage_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_ps_2_test_nested3Level
+ network.outgoing.bytes_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd01_port_1_test_nested3Level
+ disk.capacity_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_ps_1_test_nested3Level
+ disk.latency_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_oam_1
+ vcpus_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_ps_2_test_nested3Level
+ feature_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - feature_oam01_port_1
+ network.outgoing.bytes_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.bytes_cmaui_cmaui01_port
+ instance_server_cmaui_2:
+ - abstract_cmaui
+ - instance_cmaui
+ disk.device.capacity_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.capacity_cmaui
+ memory.resident_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_ps_2_test_nested3Level
+ network.incoming.packets.rate_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.incoming.packets.rate_cmaui_cmaui01_port
+ disk.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_ps_1_test_nested3Level
+ instance_server_cmaui_1:
+ - abstract_cmaui_1
+ - instance_cmaui
+ host_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - host_server_ps_1_test_nested3Level
+ scalable_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_oam_1
+ network.incoming.packets.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd01_port_1_test_nested3Level
+ disk.write.requests_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_ps_2_test_nested3Level
+ cpu_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_ps_1_test_nested3Level
+ disk.device.read.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.requests_cmaui
+ disk.device.read.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.requests_cmaui
+ cpu.delta_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu.delta_cmaui
+ disk.device.write.bytes_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_oam_1
+ cpu.delta_server_cmaui_2:
+ - abstract_cmaui
+ - cpu.delta_cmaui
+ cpu_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_oam_1
+ disk.device.write.bytes.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_oam_1
+ disk.device.read.bytes_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_oam_2
+ disk.usage_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_oam_1
+ binding_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_pd02_port_2_test_nested3Level
+ disk.device.read.bytes.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_oam_2
+ network.outpoing.packets_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd01_port_1_test_nested3Level
+ disk.write.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_ps_2_test_nested3Level
+ disk.device.allocation_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_oam_2
+ disk.device.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.usage_cmaui
+ disk.device.usage_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.usage_cmaui
+ network.outgoing.packets.rate_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.packets.rate_cmaui_cmaui01_port
+ binding_cmaui01_port_1:
+ - abstract_cmaui_1
+ - binding_cmaui_cmaui01_port
+ scalable_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_oam_2
+ disk.capacity_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_ps_2_test_nested3Level
+ network.incoming.packets_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd01_port_1_test_nested3Level
+ disk.device.write.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_ps_2_test_nested3Level
+ network.outgoing.bytes.rate_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.bytes.rate_cmaui_cmaui01_port
+ memory_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory_server_ps_2_test_nested3Level
+ disk.read.bytes.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_oam_1
+ disk.device.capacity_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_ps_2_test_nested3Level
+ scalable_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_ps_1_test_nested3Level
+ disk.device.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.requests.rate_cmaui
+ disk.device.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.requests.rate_cmaui
+ disk.device.allocation_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_oam_1
+ network.incoming.bytes.rate_cmaui02_port_2:
+ - abstract_cmaui
+ - network.incoming.bytes.rate_cmaui_cmaui02_port
+ endpoint_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_oam_2
+ network.outgoing.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd02_port_2_test_nested3Level
+ disk.latency_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_ps_2_test_nested3Level
+ disk.iops_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_ps_2_test_nested3Level
+ attachment_cmaui02_port_2:
+ - abstract_cmaui
+ - attachment_cmaui_cmaui02_port
+ disk.write.bytes.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_oam_2
+ disk.latency_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_ps_1_test_nested3Level
+ disk.device.iops_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.iops_cmaui
+ disk.device.iops_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.iops_cmaui
+ disk.device.capacity_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.capacity_cmaui
+ feature_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - feature_server_oam_1
+ scalable_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_ps_2_test_nested3Level
+ disk.usage_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_ps_1_test_nested3Level
+ memory_server_cmaui_2:
+ - abstract_cmaui
+ - memory_cmaui
+ cpu_server_cmaui_2:
+ - abstract_cmaui
+ - cpu_cmaui
+ cpu_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu_cmaui
+ disk.read.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_ps_2_test_nested3Level
+ disk.usage_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_oam_2
+ binding_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - binding_server_oam_1
+ disk.device.read.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_ps_2_test_nested3Level
+ disk.capacity_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.capacity_cmaui
+ network.outpoing.packets_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd02_port_2_test_nested3Level
+ disk.read.requests_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_oam_2
+ disk.capacity_server_cmaui_2:
+ - abstract_cmaui
+ - disk.capacity_cmaui
+ disk.device.iops_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_oam_2
+ instance_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - instance_server_ps_2_test_nested3Level
+ disk.write.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_ps_1_test_nested3Level
+ host_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - host_server_oam_2
+ feature_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - feature_server_oam_2
+ disk.allocation_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_ps_1_test_nested3Level
+ disk.iops_server_cmaui_2:
+ - abstract_cmaui
+ - disk.iops_cmaui
+ memory_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory_server_ps_1_test_nested3Level
+ disk.iops_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.iops_cmaui
+ disk.root.size_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_oam_1
+ disk.read.bytes.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_oam_2
+ disk.device.capacity_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_ps_1_test_nested3Level
+ feature_cmaui01_port_1:
+ - abstract_cmaui_1
+ - feature_cmaui_cmaui01_port
+ disk.device.read.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_ps_1_test_nested3Level
+ endpoint_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_oam_1
+ disk.device.read.bytes.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_oam_1
+ network.incoming.packets.rate_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_oam02_port_2
+ disk.write.requests.rate_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_oam_2
+ disk.device.read.bytes_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_oam_1
+ network.outgoing.packets.rate_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_oam01_port_1
+ disk.device.read.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_ps_2_test_nested3Level
+ disk.device.write.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_ps_1_test_nested3Level
+ disk.device.iops_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_ps_2_test_nested3Level
+ disk.write.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.bytes_cmaui
+ disk.write.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.bytes_cmaui
+ feature_server_cmaui_1:
+ - abstract_cmaui_1
+ - feature_cmaui
+ disk.allocation_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.allocation_cmaui
+ host_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - host_server_oam_1
+ feature_server_cmaui_2:
+ - abstract_cmaui
+ - feature_cmaui
+ instance_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - instance_server_ps_1_test_nested3Level
+ disk.allocation_server_cmaui_2:
+ - abstract_cmaui
+ - disk.allocation_cmaui
+ memory_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - memory_server_oam_2
+ vcpus_server_cmaui_2:
+ - abstract_cmaui
+ - vcpus_cmaui
+ disk.root.size_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_oam_2
+ disk.device.allocation_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_ps_2_test_nested3Level
+ memory.usage_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_ps_2_test_nested3Level
+ network.incoming.bytes_cmaui02_port_2:
+ - abstract_cmaui
+ - network.incoming.bytes_cmaui_cmaui02_port
+ disk.write.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.requests_cmaui
+ disk.write.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.requests_cmaui
+ network.incoming.bytes_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_oam01_port_1
+ vcpus_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_oam_2
+ disk.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.usage_cmaui
+ os_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - os_server_ps_1_test_nested3Level
+ disk.usage_server_cmaui_2:
+ - abstract_cmaui
+ - disk.usage_cmaui
+ network.outgoing.packets.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd01_port_1_test_nested3Level
+ network.incoming.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd01_port_1_test_nested3Level
+ disk.latency_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_oam_2
+ attachment_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd02_port_2_test_nested3Level
+ disk.read.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_ps_1_test_nested3Level
+ memory_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - memory_server_oam_1
+ binding_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - binding_server_oam_2
+ disk.ephemeral.size_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_oam_2
+ vcpus_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_ps_1_test_nested3Level
+ os_server_cmaui_2:
+ - abstract_cmaui
+ - os_cmaui
+ os_server_cmaui_1:
+ - abstract_cmaui_1
+ - os_cmaui
+ network.incoming.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd02_port_2_test_nested3Level
+ disk.write.requests_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_ps_1_test_nested3Level
+ feature_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_server_ps_2_test_nested3Level
+ network.outgoing.bytes_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_oam02_port_2
+ disk.device.iops_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_oam_1
+ disk.ephemeral.size_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_oam_1
+ network.outgoing.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd02_port_2_test_nested3Level
+ network.incoming.packets_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.incoming.packets_cmaui_cmaui01_port
+ disk.read.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_ps_1_test_nested3Level
+ network.outgoing.bytes.rate_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_oam01_port_1
+ disk.device.read.requests_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_oam_2
+ network.incoming.bytes_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_oam02_port_2
+ host_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - host_server_ps_2_test_nested3Level
+ host_server_cmaui_2:
+ - abstract_cmaui
+ - host_cmaui
+ disk.device.usage_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_ps_1_test_nested3Level
+ disk.iops_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_ps_1_test_nested3Level
+ host_server_cmaui_1:
+ - abstract_cmaui_1
+ - host_cmaui
+ disk.read.bytes_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_oam_2
+ os_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - os_server_oam_1
+ cpu.delta_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_ps_2_test_nested3Level
+ disk.device.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_ps_1_test_nested3Level
+ disk.write.requests_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_oam_1
+ network.incoming.packets.rate_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_oam01_port_1
+ network.outgoing.bytes_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_oam01_port_1
+ network.incoming.packets.rate_cmaui02_port_2:
+ - abstract_cmaui
+ - network.incoming.packets.rate_cmaui_cmaui02_port
+ disk.device.write.requests_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_ps_1_test_nested3Level
+ disk.device.latency_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_oam_2
+ cpu_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_ps_2_test_nested3Level
+ disk.device.read.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.requests.rate_cmaui
+ disk.device.read.requests.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_oam_1
+ disk.write.requests.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_oam_1
+ binding_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - binding_oam01_port_1
+ vcpus_server_cmaui_1:
+ - abstract_cmaui_1
+ - vcpus_cmaui
+ feature_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_test_nested3Level
+ disk.device.write.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_ps_1_test_nested3Level
+ disk.device.write.requests.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_oam_1
+ disk.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.bytes.rate_cmaui
+ disk.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.bytes.rate_cmaui
+ disk.device.read.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.requests.rate_cmaui
+ instance_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - instance_server_oam_1
+ memory.resident_server_cmaui_2:
+ - abstract_cmaui
+ - memory.resident_cmaui
+ disk.read.requests_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_ps_2_test_nested3Level
+ network.incoming.bytes.rate_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_oam01_port_1
+ disk.write.bytes.rate_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_oam_1
+ cpu_util_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_oam_2
+ memory.resident_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory.resident_cmaui
+ disk.write.bytes_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_oam_1
+ feature_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_pd02_port_2_test_nested3Level
+ disk.latency_server_cmaui_2:
+ - abstract_cmaui
+ - disk.latency_cmaui
+ disk.device.write.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_ps_1_test_nested3Level
+ disk.latency_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.latency_cmaui
+ memory.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory.usage_cmaui
+ memory.usage_server_cmaui_2:
+ - abstract_cmaui
+ - memory.usage_cmaui
+ network.outpoing.packets_cmaui01_port_1:
+ - abstract_cmaui_1
+ - network.outpoing.packets_cmaui_cmaui01_port
+ requirements:
+ link_cmaui01_port_1:
+ - abstract_cmaui_1
+ - link_cmaui_cmaui01_port
+ local_storage_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_oam_2
+ link_cmaui02_port_2:
+ - abstract_cmaui
+ - link_cmaui_cmaui02_port
+ dependency_test_nested2Level:
+ - test_nested2Level
+ - dependency
+ link_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - link_pd02_port_2_test_nested3Level
+ local_storage_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_ps_1_test_nested3Level
+ dependency_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_oam_1
+ dependency_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - dependency_oam01_port_1
+ dependency_cmaui01_port_1:
+ - abstract_cmaui_1
+ - dependency_cmaui_cmaui01_port
+ dependency_cmaui02_port_2:
+ - abstract_cmaui
+ - dependency_cmaui_cmaui02_port
+ dependency_server_ps_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_ps_1_test_nested3Level
+ local_storage_server_oam_1_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_oam_1
+ link_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - link_oam02_port_2
+ link_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - link_pd01_port_1_test_nested3Level
+ dependency_server_oam_2_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_oam_2
+ local_storage_server_cmaui_2:
+ - abstract_cmaui
+ - local_storage_cmaui
+ local_storage_server_cmaui_1:
+ - abstract_cmaui_1
+ - local_storage_cmaui
+ dependency_oam02_port_2_test_nested2Level:
+ - test_nested2Level
+ - dependency_oam02_port_2
+ dependency_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_ps_2_test_nested3Level
+ local_storage_server_ps_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_ps_2_test_nested3Level
+ dependency_pd02_port_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd02_port_2_test_nested3Level
+ link_oam01_port_1_test_nested2Level:
+ - test_nested2Level
+ - link_oam01_port_1
+ dependency_pd01_port_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd01_port_1_test_nested3Level
+ dependency_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_nested3Level
+ dependency_server_cmaui_2:
+ - abstract_cmaui
+ - dependency_cmaui
+ dependency_server_cmaui_1:
+ - abstract_cmaui_1
+ - dependency_cmaui
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested2ServiceTemplate.yaml
new file mode 100644
index 0000000000..6432c9e3f4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested2ServiceTemplate.yaml
@@ -0,0 +1,847 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ oam_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_oam_1:
+ type: org.openecomp.resource.abstract.nodes.oam_1
+ directives:
+ - substitutable
+ properties:
+ port_oam01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_oam01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam01_port_security_groups:
+ - - get_input: p2
+ - get_input: p1
+ port_oam01_port_network:
+ - get_input: net
+ port_oam01_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ vm_image_name:
+ get_input: cmaui_image
+ port_oam01_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ compute_oam_availability_zone:
+ - get_input: availability_zone_0
+ compute_oam_name:
+ - get_input:
+ - oam_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_oam_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_oam:
+ type: org.openecomp.resource.abstract.nodes.oam
+ directives:
+ - substitutable
+ properties:
+ port_oam02_port_network:
+ - get_input: net
+ port_oam02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam02_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ port_oam02_port_security_groups:
+ - - get_input: p1
+ port_oam02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: cmaui_image
+ port_oam02_port_replacement_policy:
+ - AUTO
+ compute_oam_availability_zone:
+ - get_input: availability_zone_0
+ compute_oam_name:
+ - get_input:
+ - oam_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_oamServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested3Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested3ServiceTemplate.yaml
+ groups:
+ nested2_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2.yml
+ description: nested2
+ members:
+ - test_nested3Level
+ - abstract_oam
+ - abstract_oam_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+ capabilities:
+ network.incoming.packets.rate_oam02_port_2:
+ - abstract_oam
+ - network.incoming.packets.rate_oam_oam02_port
+ disk.latency_server_oam_2:
+ - abstract_oam
+ - disk.latency_oam
+ disk.device.write.requests.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests.rate_server_ps_1
+ memory.resident_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - memory.resident_server_ps_2
+ disk.latency_server_oam_1:
+ - abstract_oam_1
+ - disk.latency_oam
+ network.incoming.bytes_oam02_port_2:
+ - abstract_oam
+ - network.incoming.bytes_oam_oam02_port
+ endpoint_server_oam_1:
+ - abstract_oam_1
+ - endpoint_oam
+ endpoint_server_oam_2:
+ - abstract_oam
+ - endpoint_oam
+ binding_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - binding_pd01_port_1
+ disk.device.write.requests.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests.rate_server_ps_2
+ memory.resident_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - memory.resident_server_ps_1
+ cpu.delta_server_oam_2:
+ - abstract_oam
+ - cpu.delta_oam
+ disk.device.read.bytes_server_oam_1:
+ - abstract_oam_1
+ - disk.device.read.bytes_oam
+ disk.device.read.bytes_server_oam_2:
+ - abstract_oam
+ - disk.device.read.bytes_oam
+ cpu.delta_server_oam_1:
+ - abstract_oam_1
+ - cpu.delta_oam
+ attachment_oam01_port_1:
+ - abstract_oam_1
+ - attachment_oam_oam01_port
+ disk.write.bytes_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes_server_ps_1
+ disk.write.requests_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests_server_ps_2
+ scalable_server_oam_2:
+ - abstract_oam
+ - scalable_oam
+ scalable_server_oam_1:
+ - abstract_oam_1
+ - scalable_oam
+ disk.device.write.bytes_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes_server_ps_1
+ disk.write.requests_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests_server_ps_1
+ network.outgoing.bytes_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes_pd02_port_2
+ disk.write.bytes_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes_server_ps_2
+ disk.read.bytes.rate_server_oam_2:
+ - abstract_oam
+ - disk.read.bytes.rate_oam
+ disk.read.bytes.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.read.bytes.rate_oam
+ disk.capacity_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.capacity_server_ps_1
+ disk.device.write.requests_server_oam_1:
+ - abstract_oam_1
+ - disk.device.write.requests_oam
+ disk.device.write.requests_server_oam_2:
+ - abstract_oam
+ - disk.device.write.requests_oam
+ network.incoming.packets.rate_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets.rate_pd02_port_2
+ disk.device.write.bytes_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes_server_ps_2
+ disk.device.write.bytes_server_oam_2:
+ - abstract_oam
+ - disk.device.write.bytes_oam
+ disk.usage_server_oam_1:
+ - abstract_oam_1
+ - disk.usage_oam
+ disk.capacity_server_oam_2:
+ - abstract_oam
+ - disk.capacity_oam
+ disk.usage_server_oam_2:
+ - abstract_oam
+ - disk.usage_oam
+ disk.device.write.bytes_server_oam_1:
+ - abstract_oam_1
+ - disk.device.write.bytes_oam
+ disk.capacity_server_oam_1:
+ - abstract_oam_1
+ - disk.capacity_oam
+ network.incoming.packets_oam01_port_1:
+ - abstract_oam_1
+ - network.incoming.packets_oam_oam01_port
+ disk.device.read.requests.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests.rate_server_ps_1
+ disk.latency_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.latency_server_ps_1
+ endpoint_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - endpoint_server_ps_1
+ disk.capacity_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.capacity_server_ps_2
+ network.outgoing.bytes.rate_oam01_port_1:
+ - abstract_oam_1
+ - network.outgoing.bytes.rate_oam_oam01_port
+ disk.iops_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.iops_server_ps_2
+ disk.device.capacity_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.capacity_server_ps_2
+ disk.device.usage_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.usage_server_ps_1
+ cpu.delta_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - cpu.delta_server_ps_2
+ host_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - host_server_ps_2
+ disk.device.read.bytes_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes_server_ps_2
+ feature_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - feature_server_ps_1
+ disk.write.requests.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests.rate_server_ps_1
+ network.outpoing.packets_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.outpoing.packets_pd01_port_1
+ disk.device.allocation_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.allocation_server_ps_1
+ network.outgoing.bytes.rate_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes.rate_pd02_port_2
+ disk.allocation_server_oam_2:
+ - abstract_oam
+ - disk.allocation_oam
+ memory.resident_server_oam_2:
+ - abstract_oam
+ - memory.resident_oam
+ memory.resident_server_oam_1:
+ - abstract_oam_1
+ - memory.resident_oam
+ network.outgoing.packets.rate_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.packets.rate_pd01_port_1
+ memory.usage_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - memory.usage_server_ps_2
+ disk.read.bytes.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes.rate_server_ps_1
+ disk.device.read.requests.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.device.read.requests.rate_oam
+ disk.allocation_server_oam_1:
+ - abstract_oam_1
+ - disk.allocation_oam
+ memory_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - memory_server_ps_2
+ disk.device.read.requests.rate_server_oam_2:
+ - abstract_oam
+ - disk.device.read.requests.rate_oam
+ vcpus_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - vcpus_server_ps_1
+ disk.write.requests.rate_server_oam_2:
+ - abstract_oam
+ - disk.write.requests.rate_oam
+ disk.write.requests.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.write.requests.rate_oam
+ network.incoming.bytes_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes_pd01_port_1
+ memory_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - memory_server_ps_1
+ network.outpoing.packets_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.outpoing.packets_pd02_port_2
+ network.outgoing.bytes.rate_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes.rate_pd01_port_1
+ disk.write.bytes_server_oam_2:
+ - abstract_oam
+ - disk.write.bytes_oam
+ disk.write.bytes_server_oam_1:
+ - abstract_oam_1
+ - disk.write.bytes_oam
+ disk.allocation_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.allocation_server_ps_2
+ binding_oam02_port_2:
+ - abstract_oam
+ - binding_oam_oam02_port
+ binding_server_oam_1:
+ - abstract_oam_1
+ - binding_oam
+ binding_server_oam_2:
+ - abstract_oam
+ - binding_oam
+ endpoint_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - endpoint_server_ps_2
+ network.outgoing.bytes_oam02_port_2:
+ - abstract_oam
+ - network.outgoing.bytes_oam_oam02_port
+ network.outpoing.packets_oam01_port_1:
+ - abstract_oam_1
+ - network.outpoing.packets_oam_oam01_port
+ disk.device.read.bytes.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.device.read.bytes.rate_oam
+ disk.device.read.bytes.rate_server_oam_2:
+ - abstract_oam
+ - disk.device.read.bytes.rate_oam
+ os_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - os_server_ps_1
+ disk.ephemeral.size_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.ephemeral.size_server_ps_1
+ network.incoming.bytes.rate_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes.rate_pd01_port_1
+ instance_server_oam_1:
+ - abstract_oam_1
+ - instance_oam
+ disk.usage_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.usage_server_ps_1
+ instance_server_oam_2:
+ - abstract_oam
+ - instance_oam
+ network.incoming.packets_oam02_port_2:
+ - abstract_oam
+ - network.incoming.packets_oam_oam02_port
+ disk.read.bytes_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes_server_ps_2
+ disk.root.size_server_oam_1:
+ - abstract_oam_1
+ - disk.root.size_oam
+ disk.root.size_server_oam_2:
+ - abstract_oam
+ - disk.root.size_oam
+ cpu.delta_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - cpu.delta_server_ps_1
+ disk.iops_server_oam_2:
+ - abstract_oam
+ - disk.iops_oam
+ disk.iops_server_oam_1:
+ - abstract_oam_1
+ - disk.iops_oam
+ disk.write.bytes.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes.rate_server_ps_1
+ host_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - host_server_ps_1
+ attachment_oam02_port_2:
+ - abstract_oam
+ - attachment_oam_oam02_port
+ disk.device.iops_server_oam_2:
+ - abstract_oam
+ - disk.device.iops_oam
+ disk.device.iops_server_oam_1:
+ - abstract_oam_1
+ - disk.device.iops_oam
+ scalable_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - scalable_server_ps_2
+ disk.root.size_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.root.size_server_ps_2
+ host_server_oam_2:
+ - abstract_oam
+ - host_oam
+ host_server_oam_1:
+ - abstract_oam_1
+ - host_oam
+ disk.device.capacity_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.capacity_server_ps_1
+ network.incoming.bytes.rate_oam02_port_2:
+ - abstract_oam
+ - network.incoming.bytes.rate_oam_oam02_port
+ disk.write.requests.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests.rate_server_ps_2
+ disk.latency_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.latency_server_ps_2
+ network.incoming.packets.rate_oam01_port_1:
+ - abstract_oam_1
+ - network.incoming.packets.rate_oam_oam01_port
+ disk.device.latency_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.latency_server_ps_1
+ disk.ephemeral.size_server_oam_2:
+ - abstract_oam
+ - disk.ephemeral.size_oam
+ feature_server_oam_2:
+ - abstract_oam
+ - feature_oam
+ disk.ephemeral.size_server_oam_1:
+ - abstract_oam_1
+ - disk.ephemeral.size_oam
+ feature_server_oam_1:
+ - abstract_oam_1
+ - feature_oam
+ attachment_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - attachment_pd02_port_2
+ network.incoming.bytes_oam01_port_1:
+ - abstract_oam_1
+ - network.incoming.bytes_oam_oam01_port
+ cpu_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - cpu_server_ps_2
+ network.incoming.packets.rate_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets.rate_pd01_port_1
+ os_server_oam_1:
+ - abstract_oam_1
+ - os_oam
+ os_server_oam_2:
+ - abstract_oam
+ - os_oam
+ network.outgoing.packets.rate_oam02_port_2:
+ - abstract_oam
+ - network.outgoing.packets.rate_oam_oam02_port
+ disk.device.latency_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.latency_server_ps_2
+ feature_oam01_port_1:
+ - abstract_oam_1
+ - feature_oam_oam01_port
+ disk.device.allocation_server_oam_2:
+ - abstract_oam
+ - disk.device.allocation_oam
+ disk.device.allocation_server_oam_1:
+ - abstract_oam_1
+ - disk.device.allocation_oam
+ network.incoming.bytes_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes_pd02_port_2
+ cpu_util_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - cpu_util_server_ps_2
+ network.incoming.bytes.rate_oam01_port_1:
+ - abstract_oam_1
+ - network.incoming.bytes.rate_oam_oam01_port
+ vcpus_server_oam_2:
+ - abstract_oam
+ - vcpus_oam
+ disk.write.requests_server_oam_1:
+ - abstract_oam_1
+ - disk.write.requests_oam
+ cpu_util_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - cpu_util_server_ps_1
+ disk.write.requests_server_oam_2:
+ - abstract_oam
+ - disk.write.requests_oam
+ disk.ephemeral.size_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.ephemeral.size_server_ps_2
+ disk.read.bytes_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes_server_ps_1
+ disk.device.read.bytes.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes.rate_server_ps_2
+ os_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - os_server_ps_2
+ network.incoming.bytes.rate_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes.rate_pd02_port_2
+ network.outgoing.bytes.rate_oam02_port_2:
+ - abstract_oam
+ - network.outgoing.bytes.rate_oam_oam02_port
+ vcpus_server_oam_1:
+ - abstract_oam_1
+ - vcpus_oam
+ network.incoming.packets_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets_pd02_port_2
+ disk.usage_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.usage_server_ps_2
+ disk.device.write.requests.rate_server_oam_2:
+ - abstract_oam
+ - disk.device.write.requests.rate_oam
+ disk.device.write.requests.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.device.write.requests.rate_oam
+ cpu_server_oam_1:
+ - abstract_oam_1
+ - cpu_oam
+ cpu_server_oam_2:
+ - abstract_oam
+ - cpu_oam
+ binding_oam01_port_1:
+ - abstract_oam_1
+ - binding_oam_oam01_port
+ disk.device.write.requests_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests_server_ps_2
+ memory.usage_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - memory.usage_server_ps_1
+ disk.device.write.bytes.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes.rate_server_ps_1
+ cpu_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - cpu_server_ps_1
+ disk.write.bytes.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes.rate_server_ps_2
+ instance_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - instance_server_ps_1
+ disk.device.read.requests_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests_server_ps_2
+ feature_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - feature_server_ps_2
+ disk.device.read.requests_server_oam_1:
+ - abstract_oam_1
+ - disk.device.read.requests_oam
+ disk.read.requests_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.requests_server_ps_2
+ disk.root.size_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.root.size_server_ps_1
+ disk.read.requests_server_oam_2:
+ - abstract_oam
+ - disk.read.requests_oam
+ disk.device.read.requests_server_oam_2:
+ - abstract_oam
+ - disk.device.read.requests_oam
+ disk.read.requests_server_oam_1:
+ - abstract_oam_1
+ - disk.read.requests_oam
+ memory.usage_server_oam_1:
+ - abstract_oam_1
+ - memory.usage_oam
+ disk.device.iops_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.iops_server_ps_1
+ memory.usage_server_oam_2:
+ - abstract_oam
+ - memory.usage_oam
+ scalable_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - scalable_server_ps_1
+ network.outgoing.packets.rate_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.packets.rate_pd02_port_2
+ disk.read.bytes_server_oam_2:
+ - abstract_oam
+ - disk.read.bytes_oam
+ disk.read.bytes_server_oam_1:
+ - abstract_oam_1
+ - disk.read.bytes_oam
+ network.outgoing.bytes_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes_pd01_port_1
+ binding_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - binding_server_ps_2
+ feature_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - feature_pd02_port_2
+ disk.device.write.bytes.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.device.write.bytes.rate_oam
+ disk.device.iops_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.iops_server_ps_2
+ disk.write.bytes.rate_server_oam_1:
+ - abstract_oam_1
+ - disk.write.bytes.rate_oam
+ binding_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - binding_server_ps_1
+ disk.write.bytes.rate_server_oam_2:
+ - abstract_oam
+ - disk.write.bytes.rate_oam
+ attachment_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - attachment_pd01_port_1
+ disk.device.write.bytes.rate_server_oam_2:
+ - abstract_oam
+ - disk.device.write.bytes.rate_oam
+ memory_server_oam_1:
+ - abstract_oam_1
+ - memory_oam
+ memory_server_oam_2:
+ - abstract_oam
+ - memory_oam
+ disk.device.latency_server_oam_2:
+ - abstract_oam
+ - disk.device.latency_oam
+ disk.device.latency_server_oam_1:
+ - abstract_oam_1
+ - disk.device.latency_oam
+ disk.device.usage_server_oam_2:
+ - abstract_oam
+ - disk.device.usage_oam
+ disk.device.usage_server_oam_1:
+ - abstract_oam_1
+ - disk.device.usage_oam
+ disk.read.requests_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.requests_server_ps_1
+ disk.device.read.bytes.rate_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes.rate_server_ps_1
+ disk.device.read.requests.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests.rate_server_ps_2
+ disk.device.usage_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.usage_server_ps_2
+ feature_test_nested3Level:
+ - test_nested3Level
+ - feature
+ instance_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - instance_server_ps_2
+ disk.allocation_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.allocation_server_ps_1
+ disk.device.write.bytes.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes.rate_server_ps_2
+ disk.device.capacity_server_oam_2:
+ - abstract_oam
+ - disk.device.capacity_oam
+ network.outgoing.packets.rate_oam01_port_1:
+ - abstract_oam_1
+ - network.outgoing.packets.rate_oam_oam01_port
+ disk.device.read.requests_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests_server_ps_1
+ disk.read.bytes.rate_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes.rate_server_ps_2
+ feature_oam02_port_2:
+ - abstract_oam
+ - feature_oam_oam02_port
+ network.outgoing.bytes_oam01_port_1:
+ - abstract_oam_1
+ - network.outgoing.bytes_oam_oam01_port
+ network.outpoing.packets_oam02_port_2:
+ - abstract_oam
+ - network.outpoing.packets_oam_oam02_port
+ network.incoming.packets_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets_pd01_port_1
+ cpu_util_server_oam_2:
+ - abstract_oam
+ - cpu_util_oam
+ binding_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - binding_pd02_port_2
+ disk.device.allocation_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.allocation_server_ps_2
+ feature_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - feature_pd01_port_1
+ disk.iops_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.iops_server_ps_1
+ vcpus_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - vcpus_server_ps_2
+ disk.device.capacity_server_oam_1:
+ - abstract_oam_1
+ - disk.device.capacity_oam
+ cpu_util_server_oam_1:
+ - abstract_oam_1
+ - cpu_util_oam
+ disk.device.read.bytes_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes_server_ps_1
+ disk.device.write.requests_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests_server_ps_1
+ requirements:
+ link_oam02_port_2:
+ - abstract_oam
+ - link_oam_oam02_port
+ dependency_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - dependency_pd01_port_1
+ link_oam01_port_1:
+ - abstract_oam_1
+ - link_oam_oam01_port
+ dependency_server_oam_1:
+ - abstract_oam_1
+ - dependency_oam
+ dependency_server_oam_2:
+ - abstract_oam
+ - dependency_oam
+ local_storage_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - local_storage_server_ps_2
+ link_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - link_pd02_port_2
+ local_storage_server_oam_1:
+ - abstract_oam_1
+ - local_storage_oam
+ dependency_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - dependency_server_ps_1
+ local_storage_server_oam_2:
+ - abstract_oam
+ - local_storage_oam
+ link_pd01_port_1_test_nested3Level:
+ - test_nested3Level
+ - link_pd01_port_1
+ dependency_oam01_port_1:
+ - abstract_oam_1
+ - dependency_oam_oam01_port
+ dependency_oam02_port_2:
+ - abstract_oam
+ - dependency_oam_oam02_port
+ dependency_test_nested3Level:
+ - test_nested3Level
+ - dependency
+ dependency_pd02_port_2_test_nested3Level:
+ - test_nested3Level
+ - dependency_pd02_port_2
+ local_storage_server_ps_1_test_nested3Level:
+ - test_nested3Level
+ - local_storage_server_ps_1
+ dependency_server_ps_2_test_nested3Level:
+ - test_nested3Level
+ - dependency_server_ps_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested3ServiceTemplate.yaml
new file mode 100644
index 0000000000..c286cb2347
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/nested3ServiceTemplate.yaml
@@ -0,0 +1,495 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested3
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_ps:
+ type: org.openecomp.resource.abstract.nodes.ps
+ directives:
+ - substitutable
+ properties:
+ port_pd02_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_pd02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ vm_image_name:
+ get_input: cmaui_image
+ port_pd02_port_security_groups:
+ - - get_input: p1
+ compute_ps_availability_zone:
+ - get_input: availability_zone_0
+ port_pd02_port_replacement_policy:
+ - AUTO
+ compute_ps_name:
+ - get_input:
+ - ps_names
+ - 0
+ port_pd02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd02_port_network:
+ - get_input: net
+ service_template_filter:
+ substitute_service_template: Nested_psServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_1:
+ type: org.openecomp.resource.abstract.nodes.ps_1
+ directives:
+ - substitutable
+ properties:
+ port_pd01_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ port_pd01_port_security_groups:
+ - - get_input: p2
+ - get_input: p1
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: cmaui_image
+ compute_ps_availability_zone:
+ - get_input: availability_zone_0
+ port_pd01_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: net
+ compute_ps_name:
+ - get_input:
+ - ps_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_ps_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested3_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested3.yml
+ description: nested2
+ members:
+ - abstract_ps
+ - abstract_ps_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested3
+ capabilities:
+ binding_server_ps_2:
+ - abstract_ps
+ - binding_ps
+ instance_server_ps_2:
+ - abstract_ps
+ - instance_ps
+ instance_server_ps_1:
+ - abstract_ps_1
+ - instance_ps
+ binding_server_ps_1:
+ - abstract_ps_1
+ - binding_ps
+ disk.device.usage_server_ps_1:
+ - abstract_ps_1
+ - disk.device.usage_ps
+ disk.device.usage_server_ps_2:
+ - abstract_ps
+ - disk.device.usage_ps
+ disk.capacity_server_ps_1:
+ - abstract_ps_1
+ - disk.capacity_ps
+ network.outgoing.bytes_pd02_port_2:
+ - abstract_ps
+ - network.outgoing.bytes_ps_pd02_port
+ disk.capacity_server_ps_2:
+ - abstract_ps
+ - disk.capacity_ps
+ network.outgoing.bytes_pd01_port_1:
+ - abstract_ps_1
+ - network.outgoing.bytes_ps_pd01_port
+ memory.usage_server_ps_1:
+ - abstract_ps_1
+ - memory.usage_ps
+ memory.usage_server_ps_2:
+ - abstract_ps
+ - memory.usage_ps
+ disk.write.requests.rate_server_ps_2:
+ - abstract_ps
+ - disk.write.requests.rate_ps
+ disk.device.latency_server_ps_1:
+ - abstract_ps_1
+ - disk.device.latency_ps
+ disk.write.requests.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.write.requests.rate_ps
+ disk.device.latency_server_ps_2:
+ - abstract_ps
+ - disk.device.latency_ps
+ disk.device.write.requests_server_ps_2:
+ - abstract_ps
+ - disk.device.write.requests_ps
+ disk.device.write.requests_server_ps_1:
+ - abstract_ps_1
+ - disk.device.write.requests_ps
+ cpu_server_ps_2:
+ - abstract_ps
+ - cpu_ps
+ cpu_server_ps_1:
+ - abstract_ps_1
+ - cpu_ps
+ os_server_ps_2:
+ - abstract_ps
+ - os_ps
+ os_server_ps_1:
+ - abstract_ps_1
+ - os_ps
+ disk.device.allocation_server_ps_2:
+ - abstract_ps
+ - disk.device.allocation_ps
+ endpoint_server_ps_2:
+ - abstract_ps
+ - endpoint_ps
+ disk.device.allocation_server_ps_1:
+ - abstract_ps_1
+ - disk.device.allocation_ps
+ disk.read.bytes_server_ps_1:
+ - abstract_ps_1
+ - disk.read.bytes_ps
+ disk.read.bytes_server_ps_2:
+ - abstract_ps
+ - disk.read.bytes_ps
+ disk.device.write.bytes_server_ps_2:
+ - abstract_ps
+ - disk.device.write.bytes_ps
+ disk.device.write.bytes_server_ps_1:
+ - abstract_ps_1
+ - disk.device.write.bytes_ps
+ endpoint_server_ps_1:
+ - abstract_ps_1
+ - endpoint_ps
+ binding_pd01_port_1:
+ - abstract_ps_1
+ - binding_ps_pd01_port
+ disk.device.read.requests.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.device.read.requests.rate_ps
+ network.outgoing.bytes.rate_pd02_port_2:
+ - abstract_ps
+ - network.outgoing.bytes.rate_ps_pd02_port
+ host_server_ps_2:
+ - abstract_ps
+ - host_ps
+ disk.device.capacity_server_ps_1:
+ - abstract_ps_1
+ - disk.device.capacity_ps
+ host_server_ps_1:
+ - abstract_ps_1
+ - host_ps
+ disk.device.capacity_server_ps_2:
+ - abstract_ps
+ - disk.device.capacity_ps
+ disk.device.read.requests.rate_server_ps_2:
+ - abstract_ps
+ - disk.device.read.requests.rate_ps
+ scalable_server_ps_1:
+ - abstract_ps_1
+ - scalable_ps
+ network.incoming.packets.rate_pd02_port_2:
+ - abstract_ps
+ - network.incoming.packets.rate_ps_pd02_port
+ scalable_server_ps_2:
+ - abstract_ps
+ - scalable_ps
+ network.outgoing.packets.rate_pd01_port_1:
+ - abstract_ps_1
+ - network.outgoing.packets.rate_ps_pd01_port
+ disk.write.bytes.rate_server_ps_2:
+ - abstract_ps
+ - disk.write.bytes.rate_ps
+ disk.write.bytes.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.write.bytes.rate_ps
+ disk.device.write.requests.rate_server_ps_2:
+ - abstract_ps
+ - disk.device.write.requests.rate_ps
+ disk.device.write.requests.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.device.write.requests.rate_ps
+ memory.resident_server_ps_2:
+ - abstract_ps
+ - memory.resident_ps
+ disk.ephemeral.size_server_ps_1:
+ - abstract_ps_1
+ - disk.ephemeral.size_ps
+ feature_pd02_port_2:
+ - abstract_ps
+ - feature_ps_pd02_port
+ disk.ephemeral.size_server_ps_2:
+ - abstract_ps
+ - disk.ephemeral.size_ps
+ disk.write.bytes_server_ps_1:
+ - abstract_ps_1
+ - disk.write.bytes_ps
+ disk.write.bytes_server_ps_2:
+ - abstract_ps
+ - disk.write.bytes_ps
+ disk.allocation_server_ps_2:
+ - abstract_ps
+ - disk.allocation_ps
+ disk.allocation_server_ps_1:
+ - abstract_ps_1
+ - disk.allocation_ps
+ attachment_pd01_port_1:
+ - abstract_ps_1
+ - attachment_ps_pd01_port
+ memory.resident_server_ps_1:
+ - abstract_ps_1
+ - memory.resident_ps
+ disk.latency_server_ps_2:
+ - abstract_ps
+ - disk.latency_ps
+ disk.read.requests_server_ps_2:
+ - abstract_ps
+ - disk.read.requests_ps
+ disk.read.requests_server_ps_1:
+ - abstract_ps_1
+ - disk.read.requests_ps
+ disk.device.read.requests_server_ps_1:
+ - abstract_ps_1
+ - disk.device.read.requests_ps
+ disk.device.read.requests_server_ps_2:
+ - abstract_ps
+ - disk.device.read.requests_ps
+ network.incoming.bytes.rate_pd01_port_1:
+ - abstract_ps_1
+ - network.incoming.bytes.rate_ps_pd01_port
+ disk.read.bytes.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.read.bytes.rate_ps
+ disk.read.bytes.rate_server_ps_2:
+ - abstract_ps
+ - disk.read.bytes.rate_ps
+ disk.device.iops_server_ps_1:
+ - abstract_ps_1
+ - disk.device.iops_ps
+ feature_pd01_port_1:
+ - abstract_ps_1
+ - feature_ps_pd01_port
+ disk.device.iops_server_ps_2:
+ - abstract_ps
+ - disk.device.iops_ps
+ cpu_util_server_ps_2:
+ - abstract_ps
+ - cpu_util_ps
+ disk.iops_server_ps_1:
+ - abstract_ps_1
+ - disk.iops_ps
+ cpu_util_server_ps_1:
+ - abstract_ps_1
+ - cpu_util_ps
+ disk.iops_server_ps_2:
+ - abstract_ps
+ - disk.iops_ps
+ disk.device.read.bytes.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.device.read.bytes.rate_ps
+ disk.device.read.bytes.rate_server_ps_2:
+ - abstract_ps
+ - disk.device.read.bytes.rate_ps
+ disk.latency_server_ps_1:
+ - abstract_ps_1
+ - disk.latency_ps
+ disk.root.size_server_ps_1:
+ - abstract_ps_1
+ - disk.root.size_ps
+ attachment_pd02_port_2:
+ - abstract_ps
+ - attachment_ps_pd02_port
+ disk.root.size_server_ps_2:
+ - abstract_ps
+ - disk.root.size_ps
+ network.outgoing.bytes.rate_pd01_port_1:
+ - abstract_ps_1
+ - network.outgoing.bytes.rate_ps_pd01_port
+ binding_pd02_port_2:
+ - abstract_ps
+ - binding_ps_pd02_port
+ network.incoming.packets.rate_pd01_port_1:
+ - abstract_ps_1
+ - network.incoming.packets.rate_ps_pd01_port
+ disk.usage_server_ps_1:
+ - abstract_ps_1
+ - disk.usage_ps
+ network.outpoing.packets_pd01_port_1:
+ - abstract_ps_1
+ - network.outpoing.packets_ps_pd01_port
+ disk.usage_server_ps_2:
+ - abstract_ps
+ - disk.usage_ps
+ network.outpoing.packets_pd02_port_2:
+ - abstract_ps
+ - network.outpoing.packets_ps_pd02_port
+ network.incoming.bytes_pd01_port_1:
+ - abstract_ps_1
+ - network.incoming.bytes_ps_pd01_port
+ network.incoming.bytes_pd02_port_2:
+ - abstract_ps
+ - network.incoming.bytes_ps_pd02_port
+ network.outgoing.packets.rate_pd02_port_2:
+ - abstract_ps
+ - network.outgoing.packets.rate_ps_pd02_port
+ vcpus_server_ps_1:
+ - abstract_ps_1
+ - vcpus_ps
+ vcpus_server_ps_2:
+ - abstract_ps
+ - vcpus_ps
+ network.incoming.packets_pd01_port_1:
+ - abstract_ps_1
+ - network.incoming.packets_ps_pd01_port
+ network.incoming.packets_pd02_port_2:
+ - abstract_ps
+ - network.incoming.packets_ps_pd02_port
+ disk.device.write.bytes.rate_server_ps_1:
+ - abstract_ps_1
+ - disk.device.write.bytes.rate_ps
+ network.incoming.bytes.rate_pd02_port_2:
+ - abstract_ps
+ - network.incoming.bytes.rate_ps_pd02_port
+ disk.write.requests_server_ps_1:
+ - abstract_ps_1
+ - disk.write.requests_ps
+ disk.write.requests_server_ps_2:
+ - abstract_ps
+ - disk.write.requests_ps
+ disk.device.write.bytes.rate_server_ps_2:
+ - abstract_ps
+ - disk.device.write.bytes.rate_ps
+ memory_server_ps_2:
+ - abstract_ps
+ - memory_ps
+ disk.device.read.bytes_server_ps_1:
+ - abstract_ps_1
+ - disk.device.read.bytes_ps
+ disk.device.read.bytes_server_ps_2:
+ - abstract_ps
+ - disk.device.read.bytes_ps
+ memory_server_ps_1:
+ - abstract_ps_1
+ - memory_ps
+ feature_server_ps_2:
+ - abstract_ps
+ - feature_ps
+ cpu.delta_server_ps_1:
+ - abstract_ps_1
+ - cpu.delta_ps
+ cpu.delta_server_ps_2:
+ - abstract_ps
+ - cpu.delta_ps
+ feature_server_ps_1:
+ - abstract_ps_1
+ - feature_ps
+ requirements:
+ dependency_pd02_port_2:
+ - abstract_ps
+ - dependency_ps_pd02_port
+ local_storage_server_ps_2:
+ - abstract_ps
+ - local_storage_ps
+ link_pd01_port_1:
+ - abstract_ps_1
+ - link_ps_pd01_port
+ link_pd02_port_2:
+ - abstract_ps
+ - link_ps_pd02_port
+ local_storage_server_ps_1:
+ - abstract_ps_1
+ - local_storage_ps
+ dependency_server_ps_1:
+ - abstract_ps_1
+ - dependency_ps
+ dependency_server_ps_2:
+ - abstract_ps
+ - dependency_ps
+ dependency_pd01_port_1:
+ - abstract_ps_1
+ - dependency_ps_pd01_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/MANIFEST.json
new file mode 100644
index 0000000000..10f0e8cbdd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/MANIFEST.json
@@ -0,0 +1,27 @@
+{
+ "name": "Port to Network multi nested test",
+ "description": "HOT template to create multi nested of 4 levels",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested3.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/main.yml
new file mode 100644
index 0000000000..447b682110
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/main.yml
@@ -0,0 +1,73 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: network name of jsa log network
+ pd_server_names:
+ type: comma_delimited_list
+ label: PD server names
+ description: name of the PD instance
+ pd_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ pd_flavor_name:
+ type: string
+ label: PD flavor name
+ description: flavor name of PD instance
+ p1:
+ type: string
+ description: UID of OAM network
+ oam_net_name:
+ type: string
+ description: net name
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+
+resources:
+ server_pd_1:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+
+ server_pd_2:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd02_port_0}
+ user_data_format: RAW
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+ pd02_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+
+ test_nested1Level:
+ type: nested1.yml
+ properties:
+ p1: { get_param: p1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested1.yml
new file mode 100644
index 0000000000..e9a597fa6a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested1.yml
@@ -0,0 +1,70 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ oam_net_name:
+ type: string
+ net:
+ type: string
+
+resources:
+ server_pd_1:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+
+ server_pd_2:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: ps02_port_0}
+ user_data_format: RAW
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+ ps02_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+
+ test_nested2Level:
+ type: nested2.yml
+ properties:
+ p1: { get_param: p1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested2.yml
new file mode 100644
index 0000000000..fd398f4777
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested2.yml
@@ -0,0 +1,70 @@
+heat_template_version: 2013-05-23
+
+description: nested2
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ oam_net_name:
+ type: string
+ net:
+ type: string
+resources:
+
+ server_pd_1:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+
+ server_pd_2:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd02_port_0}
+ user_data_format: RAW
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+ pd02_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+
+ test_nested3Level:
+ type: nested3.yml
+ properties:
+ p1: { get_param: p1} \ 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/threeNestedLevelsSameVmTypePattern1B/in/nested3.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested3.yml
new file mode 100644
index 0000000000..e2912e8193
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/in/nested3.yml
@@ -0,0 +1,65 @@
+heat_template_version: 2013-05-23
+
+description: nested2
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ oam_net_name:
+ type: string
+ net:
+ type: string
+resources:
+
+ server_pd_1:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW
+
+ server_pd_2:
+ type: OS::Nova::Server
+ properties:
+# config_drive: "True"
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd02_port_0}
+ user_data_format: RAW
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name}
+ pd02_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_net_name} \ 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/threeNestedLevelsSameVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..eba51d82d0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,7527 @@
+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.pd_server_4:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_ps02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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_ps02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps02_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps02_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps02_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps02_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps02_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_ps02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_ps02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_server_ps02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_pd_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_pd_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.usage_pd_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_pd_server_ps02_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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_pd_server_ps02_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.resident_pd_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_pd_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_server_ps02_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server_ps02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_server_ps02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd_server_ps02_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_pd_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_pd_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_pd_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_pd_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.packets.rate_pd_server_ps02_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_ps02_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_pd_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.ephemeral.size_pd_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_pd_server_ps02_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_pd_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_pd_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_pd_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_pd_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_pd_server_ps02_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_pd_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.pd_server_5:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_6:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_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_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd02_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.iops_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server_pd02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd02_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_pd_server_pd02_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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.outpoing.packets_pd_server_pd02_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_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_pd_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.iops_pd_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_pd_server_pd02_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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_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_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd02_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.iops_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server_pd02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd02_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_pd_server_pd02_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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.outpoing.packets_pd_server_pd02_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_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_pd_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.iops_pd_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_pd_server_pd02_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.pd_server_7:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.pd_server_2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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_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_pd02_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd02_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd02_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd02_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_pd02_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.iops_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server_pd02_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_pd02_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_pd_server_pd02_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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.outpoing.packets_pd_server_pd02_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd02_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_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_pd_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_pd_server_pd02_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_pd_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_pd_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.iops_pd_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_pd_server_pd02_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.pd_server_3:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_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.ephemeral.size_pd_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_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ pd_server_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps02_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps02_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd01_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1:
+ 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_pd01_port_0_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd02_port_0_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_0_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_pd01_port_0_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd02_port_0_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_0_test_nested3Level_test_nested2Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ vcpus_server_pd_1_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_pd02_port_0_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_pd_2_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_server_pd_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_server_pd_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.bytes.rate_server_pd_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.bytes.rate_server_pd_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_2_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_pd_1_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_pd01_port_0_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.rate_server_pd_1_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_pd_2_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_pd02_port_0_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.ephemeral.size_server_pd_1_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_pd_2_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_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pd_1_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_pd_1_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pd_2_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pd_2_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_pd_2_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_pd_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_server_pd_2_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_1_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_pd_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
+ feature_server_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_1_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_pd01_port_0_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_pd_1_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.ephemeral.size_server_pd_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_server_pd_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.rate_server_pd_1_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_pd01_port_0_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ binding_pd01_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ host_server_pd_1_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pd_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_pd02_port_0_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_pd_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_pd01_port_0_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_pd_1_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_pd_1_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_pd01_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_pd_2_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_pd_2_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_pd_2_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_pd01_port_0_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps02_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_pd_1_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_pd02_port_0_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_pd02_port_0_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_pd_1_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_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd_2_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.requests_server_pd_1_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_pd_1_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_pd_2_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_pd_2_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_pd_1_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_pd_2_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_pd_1_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pd_2_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_pd_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.rate_server_pd_1_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_pd_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_server_pd_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_pd_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.root.size_server_pd_1_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_pd01_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd01_port_0_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_pd_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_pd_2_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_pd01_port_0_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_pd_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_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_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.rate_server_pd_2_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_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pd_1_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_pd_2_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_pd01_port_0_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_pd_2_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_pd01_port_0_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_pd_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_server_pd_1_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_pd_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_server_pd_1_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_pd_1_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_pd_2_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_pd01_port_0_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_pd_1_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_pd_2_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_pd01_port_0_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_pd_2_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_pd01_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_server_pd_1_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_pd02_port_0_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_1_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_pd_1_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_pd_2_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.iops_server_pd_2_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_pd_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.requests.rate_server_pd_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_pd02_port_0_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_pd_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.rate_server_pd_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.capacity_server_pd_1_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_pd02_port_0_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_ps02_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pd_2_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_pd_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_server_pd_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.bytes.rate_server_pd_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.capacity_server_pd_2_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_pd_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_server_pd_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_server_pd_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_pd_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_pd01_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.capacity_server_pd_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_server_pd_2_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_pd_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.allocation_server_pd_2_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_pd_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_server_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps02_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.delta_server_pd_1_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_pd_1_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_pd01_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_pd_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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
+ binding_server_pd_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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_server_pd_1_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_pd02_port_0_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests_server_pd_2_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_pd01_port_0_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_ps02_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_server_pd_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_server_pd_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_pd_1_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_pd_1_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_pd_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.root.size_server_pd_2_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_pd_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_server_pd_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.rate_server_pd_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_server_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_2_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_ps02_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
+ endpoint_server_pd_2_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_pd_1_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_pd_2_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_pd_1_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_pd_1_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_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_2_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_pd_1_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_pd_2_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pd_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.usage_server_pd_2_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_pd_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pd_1_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pd_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_server_pd_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd01_port_0_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ host_server_pd_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_pd_1_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_pd01_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.rate_server_pd_2_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_pd_2_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_pd_2_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_pd_1_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_pd_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
+ binding_server_pd_1_test_nested2Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_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.requests.rate_server_pd_1_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_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_pd_1_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_pd01_port_0_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_pd01_port_0_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_pd_1_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_pd_2_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_ps02_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pd_2_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_pd_1_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_pd01_port_0_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_pd_1_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_pd_2_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_pd_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
+ scalable_server_pd_2_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pd_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.bytes_server_pd_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_pd01_port_0_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_pd_2_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_pd_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.requests_server_pd_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_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_server_pd_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_server_pd_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_pd02_port_0_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_pd_2_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.rate_server_pd_1_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_pd_2_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_pd_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.requests.rate_server_pd_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.root.size_server_pd_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_pd_2_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_pd_1_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_pd_1_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_pd02_port_0_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.requests.rate_server_pd_2_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_ps02_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_pd02_port_0_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_pd_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.bytes_pd02_port_0_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_ps02_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.rate_server_pd_1_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_pd_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.capacity_server_pd_2_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_pd_2_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_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_1_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_pd_2_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_2_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_pd_1_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_pd01_port_0_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd_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.usage_server_pd_2_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_pd_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.usage_server_pd_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_1_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_pd_1_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_pd_2_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_server_pd_1_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_ps02_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_server_pd_2_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_pd_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.capacity_server_pd_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_pd_1_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_pd02_port_0_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_pd_2_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_pd02_port_0_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.iops_server_pd_1_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_pd_1_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_pd_2_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_pd_1_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.latency_server_pd_2_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_pd_1_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_pd01_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pd_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.rate_server_pd_1_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_pd_1_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.latency_server_pd_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.requests.rate_server_pd_2_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_pd_1_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_pd01_port_0_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_pd_2_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_pd02_port_0_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_pd_1_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_pd_2_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.ephemeral.size_server_pd_2_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_server_pd_1_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_pd02_port_0_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_pd_1_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pd_2_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_pd_1_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_pd_1_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_pd02_port_0_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_pd_2_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_pd_2_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_pd_1_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_pd01_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_server_pd_1_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_pd_1_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_ps02_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_pd01_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_pd_2_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_pd01_port_0_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_pd01_port_0_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.requests_server_pd_2_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.iops_server_pd_1_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_pd_1_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_pd_2_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_pd01_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_pd02_port_0_test_nested3Level_test_nested2Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_2_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_pd01_port_0_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_pd_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.allocation_server_pd_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
+ memory.usage_server_pd_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.usage_server_pd_1_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_pd02_port_0_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
+ network.incoming.bytes_pd02_port_0_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_pd_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_server_pd_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_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_pd_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_server_pd_2_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_pd_2_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_pd02_port_0_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_pd_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pd_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_2_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_ps02_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_server_pd_1_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_pd_2_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_pd_2_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_pd_2_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_pd_2_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_pd_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ pd_server_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd01_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd02_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_0:
+ 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_pd01_port_0_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1_test_nested3Level:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd02_port_0_test_nested3Level:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_0_test_nested3Level:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.read.bytes.rate_server_pd_2_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.root.size_server_pd_2_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.iops_server_pd_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_server_pd_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
+ binding_pd01_port_0_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_pd_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_pd01_port_0_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_pd_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.capacity_server_pd_2_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_pd_2_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd02_port_0_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_pd02_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_server_pd_1_test_nested3Level:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_pd_1_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_pd_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.resident_server_pd_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_pd02_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_pd_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_server_pd_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_pd01_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd02_port_0_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_pd_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_pd_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
+ feature_pd02_port_0_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pd_1_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd01_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_server_pd_2_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_pd_1_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_pd_1_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_pd_1_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_pd_2_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_pd_1_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.iops_server_pd_1_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_pd_2_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_pd_2_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.rate_server_pd_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.rate_server_pd_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_server_pd_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_pd_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_pd01_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_pd_1_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_pd_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_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_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_pd01_port_0_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pd_2_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_pd01_port_0_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_pd_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_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_server_pd_1_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_pd_2_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_pd01_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_server_pd_1_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_pd_2_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_pd_1_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_pd_1_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_pd02_port_0_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_pd_1_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_pd_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.requests.rate_server_pd_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.latency_server_pd_1_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_pd_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.rate_server_pd_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_pd_1_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_pd02_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_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_server_pd_2_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_pd_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.bytes.rate_server_pd_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_1_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_pd_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_server_pd_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_server_pd_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_pd_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_pd01_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.capacity_server_pd_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.capacity_server_pd_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_pd_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.delta_server_pd_2_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_pd02_port_0_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outpoing.packets_pd01_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_pd_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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
+ binding_server_pd_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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_server_pd_2_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_pd_2_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_pd_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_pd02_port_0_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_pd_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.requests_server_pd_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_server_pd_1_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_pd_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_server_pd_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.rate_server_pd_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_server_pd_1_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_pd_2_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_pd_1_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_pd_2_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_pd_1_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_pd01_port_0_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_pd01_port_0_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pd_1_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_pd_2_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
+ os_server_pd_1_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_pd_1_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_pd_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
+ feature_server_pd_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pd_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_pd_2_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_pd_2_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_pd_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_1_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_pd_2_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_pd_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd01_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_server_pd_2_test_nested3Level:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd_1_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_pd_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
+ memory_server_pd_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_pd02_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_server_pd_2_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_pd_1_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_pd_1_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_pd_2_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_pd_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_server_pd_2_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_pd_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.bytes_server_pd_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_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.requests_server_pd_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.bytes.rate_pd02_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_server_pd_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_server_pd_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_server_pd_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_pd02_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_pd02_port_0_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_pd01_port_0_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_pd_1_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_pd_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.requests.rate_server_pd_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.root.size_server_pd_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.allocation_server_pd_1_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_pd_1_test_nested3Level:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_pd_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_pd_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_pd02_port_0_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_pd_1_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_pd02_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd01_port_0_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.root.size_server_pd_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_2_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_pd_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.usage_server_pd_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.requests_server_pd_1_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_pd_2_test_nested3Level:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pd_1_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_pd_2_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_pd01_port_0_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_server_pd_2_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_pd_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.capacity_server_pd_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_server_pd_2_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.usage_server_pd_2_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_pd01_port_0_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_pd_2_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_pd_1_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_pd01_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pd_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.latency_server_pd_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.resident_server_pd_2_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_pd_2_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_pd02_port_0_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_pd_1_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_pd_1_test_nested3Level:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd01_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.allocation_server_pd_2_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_pd02_port_0_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_pd02_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes_server_pd_2_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.write.requests.rate_server_pd_1_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_pd_1_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_pd01_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_util_server_pd_2_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_pd02_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_pd02_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.iops_server_pd_2_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_pd01_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_pd02_port_0_test_nested3Level:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pd_2_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_pd_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_server_pd_2_test_nested3Level:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_pd_2_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_pd_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
+ memory.usage_server_pd_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_pd01_port_0_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_pd_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_pd02_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_server_pd_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_server_pd_1_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_pd_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_pd_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
+ scalable_server_pd_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pd_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd_1_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
+ os_server_pd_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested3:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ pd_flavor_name:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_image_name:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ pd_server_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd01_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd01_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_pd_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd02_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd02_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.iops_server_pd_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_server_pd_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.bytes.rate_server_pd_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.bytes.rate_server_pd_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.delta_server_pd_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
+ feature_server_pd_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_pd_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_pd_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_server_pd_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd02_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_server_pd_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd01_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_server_pd_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
+ memory_server_pd_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_pd02_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_server_pd_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.resident_server_pd_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_pd02_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_pd_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_server_pd_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_server_pd_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.requests_server_pd_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.bytes_server_pd_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_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.requests_server_pd_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.bytes.rate_pd02_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_pd01_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.requests_server_pd_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_server_pd_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_server_pd_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_pd_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_pd_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_pd02_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_pd01_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.rate_server_pd_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.requests.rate_server_pd_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.root.size_server_pd_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_pd_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_pd_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
+ feature_pd02_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd_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.usage_server_pd_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.usage_server_pd_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_server_pd_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.rate_server_pd_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_server_pd_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_pd_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_pd01_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pd_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_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_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.capacity_server_pd_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.capacity_server_pd_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_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_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_pd01_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_pd01_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_pd_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.latency_server_pd_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_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.requests.rate_server_pd_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_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.rate_server_pd_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_pd02_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_pd01_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_util_server_pd_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_server_pd_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.bytes.rate_server_pd_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
+ binding_pd02_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.allocation_server_pd_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_server_pd_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_server_pd_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_pd_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_pd01_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.capacity_server_pd_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.capacity_server_pd_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_pd_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_pd01_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_pd02_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_pd02_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_pd01_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_pd_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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
+ binding_server_pd_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_pd_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_pd01_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.allocation_server_pd_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.allocation_server_pd_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.rate_server_pd_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
+ memory.usage_server_pd_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_server_pd_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.requests_server_pd_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.requests_server_pd_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_server_pd_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
+ memory.usage_server_pd_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_pd02_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_server_pd_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_server_pd_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_pd_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_pd_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
+ scalable_server_pd_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pd_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pd_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..2c7daf72af
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/MainServiceTemplate.yaml
@@ -0,0 +1,151 @@
+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:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ entry_schema:
+ type: string
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: net name
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ abstract_pd_server_6:
+ type: org.openecomp.resource.abstract.nodes.pd_server_6
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ port_pd02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd02_port_network_role_tag: oam
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd02_port_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_6ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_7:
+ type: org.openecomp.resource.abstract.nodes.pd_server_7
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_7ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
+ - abstract_pd_server_6
+ - abstract_pd_server_7
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..796b811eb4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd02_port_order:
+ type: integer
+ required: true
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd02_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd02_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd02_port_mac_requirements
+ order:
+ get_input: port_pd02_port_order
+ network_role:
+ get_input: port_pd02_port_network_role
+ subnetpoolid:
+ get_input: port_pd02_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ binding_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - binding
+ network.outgoing.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.outgoing.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes
+ feature_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - feature
+ network.incoming.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ network.incoming.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ network.outpoing.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outpoing.packets
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ attachment_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - attachment
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ network.incoming.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets.rate
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ network.incoming.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - link
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml
index a6d8533b57..a6d8533b57 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/Nested_pd_server_1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_1ServiceTemplate.yaml
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_2ServiceTemplate.yaml
index 828bcb6145..2da0417107 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_2ServiceTemplate.yaml
@@ -28,45 +28,45 @@ topology_template:
required: true
entry_schema:
type: string
- port_pd01_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
vm_flavor_name:
type: string
required: true
- port_pd01_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_pd02_port_order:
+ type: integer
required: true
- vm_image_name:
+ port_pd02_port_subnetpoolid:
type: string
required: true
- port_pd01_port_ip_requirements:
- type: list
+ port_pd02_port_network_role_tag:
+ type: string
required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_pd01_port_network:
+ port_pd02_port_vlan_requirements:
type: list
required: true
entry_schema:
- type: string
- port_pd01_port_order:
- type: integer
- required: true
- port_pd01_port_subnetpoolid:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
type: string
required: true
- port_pd01_port_network_role:
+ port_pd02_port_network_role:
type: string
required: true
- port_pd01_port_network_role_tag:
- type: string
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
required: true
- port_pd01_port_vlan_requirements:
+ port_pd02_port_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
compute_pd_server_user_data_format:
type: list
required: true
@@ -92,28 +92,28 @@ topology_template:
get_input:
- compute_pd_server_user_data_format
- index_value
- pd_server_pd01_port:
+ pd_server_pd02_port:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
exCP_naming:
- get_input: port_pd01_port_exCP_naming
+ get_input: port_pd02_port_exCP_naming
vlan_requirements:
- get_input: port_pd01_port_vlan_requirements
+ get_input: port_pd02_port_vlan_requirements
ip_requirements:
- get_input: port_pd01_port_ip_requirements
+ get_input: port_pd02_port_ip_requirements
network_role_tag:
- get_input: port_pd01_port_network_role_tag
+ get_input: port_pd02_port_network_role_tag
mac_requirements:
- get_input: port_pd01_port_mac_requirements
+ get_input: port_pd02_port_mac_requirements
order:
- get_input: port_pd01_port_order
+ get_input: port_pd02_port_order
network_role:
- get_input: port_pd01_port_network_role
+ get_input: port_pd02_port_network_role
subnetpoolid:
- get_input: port_pd01_port_subnetpoolid
+ get_input: port_pd02_port_subnetpoolid
network:
get_input:
- - port_pd01_port_network
+ - port_pd02_port_network
- index_value
requirements:
- binding:
@@ -138,18 +138,12 @@ topology_template:
disk.device.usage_pd_server:
- pd_server
- disk.device.usage
- network.outgoing.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.packets.rate
os_pd_server:
- pd_server
- os
disk.write.bytes.rate_pd_server:
- pd_server
- disk.write.bytes.rate
- network.incoming.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes
cpu_pd_server:
- pd_server
- cpu
@@ -165,9 +159,12 @@ topology_template:
disk.device.read.bytes.rate_pd_server:
- pd_server
- disk.device.read.bytes.rate
- network.outgoing.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes
+ binding_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - binding
+ network.outgoing.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.packets.rate
disk.iops_pd_server:
- pd_server
- disk.iops
@@ -177,9 +174,18 @@ topology_template:
cpu.delta_pd_server:
- pd_server
- cpu.delta
- network.incoming.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets.rate
+ network.outgoing.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes
+ feature_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - feature
+ network.incoming.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes.rate
vcpus_pd_server:
- pd_server
- vcpus
@@ -192,9 +198,6 @@ topology_template:
endpoint_pd_server:
- pd_server
- endpoint
- attachment_pd_server_pd01_port:
- - pd_server_pd01_port
- - attachment
disk.capacity_pd_server:
- pd_server
- disk.capacity
@@ -204,6 +207,9 @@ topology_template:
disk.allocation_pd_server:
- pd_server
- disk.allocation
+ network.incoming.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets
binding_pd_server:
- pd_server
- binding
@@ -216,18 +222,12 @@ topology_template:
disk.usage_pd_server:
- pd_server
- disk.usage
- binding_pd_server_pd01_port:
- - pd_server_pd01_port
- - binding
+ network.outpoing.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outpoing.packets
disk.write.bytes_pd_server:
- pd_server
- disk.write.bytes
- network.incoming.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes.rate
- network.incoming.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets
disk.device.read.requests.rate_pd_server:
- pd_server
- disk.device.read.requests.rate
@@ -249,9 +249,9 @@ topology_template:
host_pd_server:
- pd_server
- host
- network.outpoing.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outpoing.packets
+ attachment_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - attachment
disk.write.requests.rate_pd_server:
- pd_server
- disk.write.requests.rate
@@ -261,34 +261,34 @@ topology_template:
disk.write.requests_pd_server:
- pd_server
- disk.write.requests
- feature_pd_server_pd01_port:
- - pd_server_pd01_port
- - feature
disk.device.latency_pd_server:
- pd_server
- disk.device.latency
+ network.incoming.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets.rate
disk.latency_pd_server:
- pd_server
- disk.latency
disk.device.capacity_pd_server:
- pd_server
- disk.device.capacity
- network.outgoing.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes.rate
disk.device.iops_pd_server:
- pd_server
- disk.device.iops
+ network.incoming.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes
requirements:
local_storage_pd_server:
- pd_server
- local_storage
- link_pd_server_pd01_port:
- - pd_server_pd01_port
+ link_pd_server_pd02_port:
+ - pd_server_pd02_port
- link
- dependency_pd_server_pd01_port:
- - pd_server_pd01_port
- - dependency
dependency_pd_server:
- pd_server
- dependency
+ dependency_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_3ServiceTemplate.yaml
index b1f51f3f57..9f140e097e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_3ServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_0
+ template_name: Nested_pd_server_3
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -121,7 +121,7 @@ topology_template:
node: pd_server
relationship: tosca.relationships.network.BindsTo
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_0
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_3
capabilities:
scalable_pd_server:
- pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_4ServiceTemplate.yaml
new file mode 100644
index 0000000000..0022b21c24
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_4ServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_4
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps02_port_network_role_tag:
+ type: string
+ required: true
+ port_ps02_port_network_role:
+ type: string
+ required: true
+ port_ps02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps02_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps02_port_order:
+ type: integer
+ required: true
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_ps02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_ps02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps02_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps02_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps02_port_mac_requirements
+ order:
+ get_input: port_ps02_port_order
+ network_role:
+ get_input: port_ps02_port_network_role
+ subnetpoolid:
+ get_input: port_ps02_port_subnetpoolid
+ network:
+ get_input:
+ - port_ps02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_4
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ binding_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - binding
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ network.incoming.bytes.rate_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.incoming.bytes.rate
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ network.incoming.packets.rate_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.incoming.packets.rate
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ network.incoming.bytes_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.incoming.bytes
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ attachment_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - attachment
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ feature_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - feature
+ network.outgoing.bytes.rate_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.outgoing.bytes.rate
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ network.outgoing.packets.rate_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.outgoing.packets.rate
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.outpoing.packets_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.outpoing.packets
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ network.outgoing.bytes_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.outgoing.bytes
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ network.incoming.packets_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - network.incoming.packets
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - link
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_ps02_port:
+ - pd_server_ps02_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_5ServiceTemplate.yaml
index 828bcb6145..1b0d54aedd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/Nested_pd_server_2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_5ServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_2
+ template_name: Nested_pd_server_5
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -121,7 +121,7 @@ topology_template:
node: pd_server
relationship: tosca.relationships.network.BindsTo
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_2
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_5
capabilities:
scalable_pd_server:
- pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_6ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_6ServiceTemplate.yaml
new file mode 100644
index 0000000000..653d1b6454
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_6ServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_6
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd02_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd02_port_order:
+ type: integer
+ required: true
+ port_pd02_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd02_port_network_role_tag:
+ type: string
+ required: true
+ port_pd02_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pd02_port_network_role:
+ type: string
+ required: true
+ port_pd02_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd02_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd02_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd02_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd02_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd02_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd02_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd02_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd02_port_mac_requirements
+ order:
+ get_input: port_pd02_port_order
+ network_role:
+ get_input: port_pd02_port_network_role
+ subnetpoolid:
+ get_input: port_pd02_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd02_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_6
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ binding_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - binding
+ network.outgoing.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.outgoing.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes
+ feature_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - feature
+ network.incoming.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes.rate
+ network.outgoing.bytes.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outgoing.bytes.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ network.incoming.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ network.outpoing.packets_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.outpoing.packets
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ attachment_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - attachment
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ network.incoming.packets.rate_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.packets.rate
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ network.incoming.bytes_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - network.incoming.bytes
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - link
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ dependency_pd_server_pd02_port:
+ - pd_server_pd02_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_7ServiceTemplate.yaml
index b1f51f3f57..6454173497 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/Nested_pd_server_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/Nested_pd_server_7ServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_0
+ template_name: Nested_pd_server_7
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -121,7 +121,7 @@ topology_template:
node: pd_server
relationship: tosca.relationships.network.BindsTo
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_0
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_7
capabilities:
scalable_pd_server:
- pd_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..303a1b05fa
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,1176 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ pd_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server_4:
+ type: org.openecomp.resource.abstract.nodes.pd_server_4
+ directives:
+ - substitutable
+ properties:
+ port_ps02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ port_ps02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_ps02_port_network_role_tag: oam
+ vm_image_name:
+ get_input: pd_image_name
+ compute_pd_server_user_data_format:
+ - RAW
+ port_ps02_port_network:
+ - get_input: oam_net_name
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_4ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_5:
+ type: org.openecomp.resource.abstract.nodes.pd_server_5
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_5ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested2Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested2ServiceTemplate.yaml
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - test_nested2Level
+ - abstract_pd_server_4
+ - abstract_pd_server_5
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ vcpus_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_1
+ network.incoming.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd02_port_0_test_nested3Level
+ feature_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_2
+ binding_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_2_test_nested3Level
+ disk.iops_server_pd_1:
+ - abstract_pd_server_5
+ - disk.iops_pd_server
+ disk.iops_server_pd_2:
+ - abstract_pd_server_4
+ - disk.iops_pd_server
+ disk.write.bytes.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.write.bytes.rate_pd_server
+ disk.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.write.bytes.rate_pd_server
+ disk.read.requests_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_2
+ disk.device.iops_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_1
+ network.outgoing.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd01_port_0_test_nested3Level
+ disk.device.write.bytes.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_1
+ disk.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_2_test_nested3Level
+ network.outgoing.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd02_port_0_test_nested3Level
+ disk.ephemeral.size_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_1
+ vcpus_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_2
+ feature_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_2_test_nested3Level
+ disk.device.usage_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_1_test_nested3Level
+ os_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_1
+ host_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_2
+ disk.ephemeral.size_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_2
+ disk.latency_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_2
+ memory.resident_server_pd_1:
+ - abstract_pd_server_5
+ - memory.resident_pd_server
+ os_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_2
+ disk.latency_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_1
+ memory.resident_server_pd_2:
+ - abstract_pd_server_4
+ - memory.resident_pd_server
+ feature_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_1_test_nested3Level
+ binding_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_1_test_nested3Level
+ feature_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - feature_server_pd_1
+ feature_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - feature_pd01_port_0
+ disk.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_1_test_nested3Level
+ disk.ephemeral.size_server_pd_2:
+ - abstract_pd_server_4
+ - disk.ephemeral.size_pd_server
+ disk.ephemeral.size_server_pd_1:
+ - abstract_pd_server_5
+ - disk.ephemeral.size_pd_server
+ disk.write.bytes.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_1
+ binding_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_pd01_port_0_test_nested3Level
+ binding_pd01_port_0:
+ - abstract_pd_server_5
+ - binding_pd_server_pd01_port
+ host_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_1
+ disk.device.read.bytes_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.read.bytes_pd_server
+ network.incoming.bytes.rate_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd02_port_0
+ disk.device.read.bytes_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.read.bytes_pd_server
+ attachment_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd01_port_0_test_nested3Level
+ instance_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_1_test_nested3Level
+ cpu_util_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_1
+ network.outgoing.packets.rate_pd01_port_0:
+ - abstract_pd_server_5
+ - network.outgoing.packets.rate_pd_server_pd01_port
+ disk.write.bytes.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_2
+ disk.device.latency_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_2_test_nested3Level
+ disk.root.size_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_2_test_nested3Level
+ feature_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_pd01_port_0_test_nested3Level
+ attachment_ps02_port_0:
+ - abstract_pd_server_4
+ - attachment_pd_server_ps02_port
+ disk.capacity_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_1
+ network.incoming.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd02_port_0_test_nested3Level
+ attachment_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd02_port_0
+ disk.device.usage_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_1
+ feature_test_nested2Level:
+ - test_nested2Level
+ - feature
+ disk.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_2_test_nested3Level
+ disk.read.requests_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_1
+ disk.device.write.bytes_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_1
+ disk.device.read.bytes_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_2
+ instance_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_2_test_nested3Level
+ disk.read.bytes_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_1
+ disk.device.usage_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_2_test_nested3Level
+ endpoint_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_1
+ disk.allocation_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_2
+ disk.read.bytes.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.read.bytes.rate_pd_server
+ disk.device.read.requests.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_1
+ disk.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.read.bytes.rate_pd_server
+ cpu_server_pd_2:
+ - abstract_pd_server_4
+ - cpu_pd_server
+ cpu_server_pd_1:
+ - abstract_pd_server_5
+ - cpu_pd_server
+ disk.root.size_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_1_test_nested3Level
+ attachment_pd01_port_0:
+ - abstract_pd_server_5
+ - attachment_pd_server_pd01_port
+ network.incoming.bytes.rate_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd01_port_0
+ endpoint_server_pd_2:
+ - abstract_pd_server_4
+ - endpoint_pd_server
+ memory.resident_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_2
+ network.outgoing.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd01_port_0_test_nested3Level
+ endpoint_server_pd_1:
+ - abstract_pd_server_5
+ - endpoint_pd_server
+ vcpus_server_pd_1:
+ - abstract_pd_server_5
+ - vcpus_pd_server
+ vcpus_server_pd_2:
+ - abstract_pd_server_4
+ - vcpus_pd_server
+ disk.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_2_test_nested3Level
+ endpoint_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_2_test_nested3Level
+ disk.write.requests_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_1
+ disk.device.write.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_2_test_nested3Level
+ network.outgoing.bytes_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd01_port_0
+ disk.device.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_2_test_nested3Level
+ network.incoming.bytes_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd01_port_0
+ disk.device.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.write.bytes.rate_pd_server
+ cpu_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_1
+ disk.device.write.bytes.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.write.bytes.rate_pd_server
+ disk.ephemeral.size_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_1_test_nested3Level
+ disk.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_1_test_nested3Level
+ disk.write.requests.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_2
+ network.incoming.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes.rate_pd01_port_0_test_nested3Level
+ disk.device.write.requests.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_1
+ disk.write.bytes_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_2
+ network.outgoing.bytes.rate_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd01_port_0
+ cpu.delta_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_2
+ network.incoming.bytes.rate_pd01_port_0:
+ - abstract_pd_server_5
+ - network.incoming.bytes.rate_pd_server_pd01_port
+ disk.latency_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_1_test_nested3Level
+ feature_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - feature_pd02_port_0
+ cpu_util_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_1_test_nested3Level
+ disk.device.allocation_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_1
+ disk.device.read.bytes_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_2_test_nested3Level
+ disk.iops_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_2_test_nested3Level
+ instance_server_pd_1:
+ - abstract_pd_server_5
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.read.requests.rate_pd_server
+ network.incoming.packets_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd02_port_0
+ instance_server_pd_2:
+ - abstract_pd_server_4
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.read.requests.rate_pd_server
+ disk.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_1_test_nested3Level
+ network.outgoing.packets.rate_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd02_port_0
+ binding_ps02_port_0:
+ - abstract_pd_server_4
+ - binding_pd_server_ps02_port
+ disk.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_2_test_nested3Level
+ cpu_util_server_pd_1:
+ - abstract_pd_server_5
+ - cpu_util_pd_server
+ cpu_util_server_pd_2:
+ - abstract_pd_server_4
+ - cpu_util_pd_server
+ disk.device.read.bytes.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.read.bytes.rate_pd_server
+ disk.capacity_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_2
+ disk.allocation_server_pd_2:
+ - abstract_pd_server_4
+ - disk.allocation_pd_server
+ disk.device.write.bytes_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.write.bytes_pd_server
+ disk.device.write.bytes_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.write.bytes_pd_server
+ disk.allocation_server_pd_1:
+ - abstract_pd_server_5
+ - disk.allocation_pd_server
+ network.incoming.packets.rate_pd01_port_0:
+ - abstract_pd_server_5
+ - network.incoming.packets.rate_pd_server_pd01_port
+ disk.capacity_server_pd_2:
+ - abstract_pd_server_4
+ - disk.capacity_pd_server
+ disk.read.bytes_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_2
+ disk.capacity_server_pd_1:
+ - abstract_pd_server_5
+ - disk.capacity_pd_server
+ disk.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_2_test_nested3Level
+ disk.device.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.read.bytes.rate_pd_server
+ os_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_2_test_nested3Level
+ network.outgoing.packets.rate_ps02_port_0:
+ - abstract_pd_server_4
+ - network.outgoing.packets.rate_pd_server_ps02_port
+ cpu.delta_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_1_test_nested3Level
+ disk.device.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_1_test_nested3Level
+ network.outpoing.packets_pd01_port_0:
+ - abstract_pd_server_5
+ - network.outpoing.packets_pd_server_pd01_port
+ binding_server_pd_2:
+ - abstract_pd_server_4
+ - binding_pd_server
+ disk.device.write.requests_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.write.requests_pd_server
+ binding_server_pd_1:
+ - abstract_pd_server_5
+ - binding_pd_server
+ disk.device.write.requests_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.write.requests_pd_server
+ disk.usage_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_1
+ binding_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - binding_pd02_port_0
+ disk.write.requests_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_2_test_nested3Level
+ network.incoming.packets.rate_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd01_port_0
+ network.incoming.bytes.rate_ps02_port_0:
+ - abstract_pd_server_4
+ - network.incoming.bytes.rate_pd_server_ps02_port
+ disk.device.write.requests.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.write.requests.rate_pd_server
+ disk.read.bytes_server_pd_1:
+ - abstract_pd_server_5
+ - disk.read.bytes_pd_server
+ disk.device.iops_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_1_test_nested3Level
+ cpu_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_1_test_nested3Level
+ disk.device.read.requests_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.read.requests_pd_server
+ disk.root.size_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_2
+ disk.device.read.requests_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.read.requests_pd_server
+ disk.read.bytes_server_pd_2:
+ - abstract_pd_server_4
+ - disk.read.bytes_pd_server
+ disk.device.write.requests.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.write.requests.rate_pd_server
+ host_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_1_test_nested3Level
+ vcpus_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_2_test_nested3Level
+ network.outpoing.packets_ps02_port_0:
+ - abstract_pd_server_4
+ - network.outpoing.packets_pd_server_ps02_port
+ endpoint_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_2
+ disk.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_1_test_nested3Level
+ memory.resident_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_2_test_nested3Level
+ disk.read.bytes.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_1
+ disk.root.size_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.root.size_server_pd_1
+ host_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - host_server_pd_2_test_nested3Level
+ memory_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_2
+ disk.device.capacity_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_1
+ binding_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_2
+ cpu.delta_server_pd_2:
+ - abstract_pd_server_4
+ - cpu.delta_pd_server
+ disk.usage_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_2_test_nested3Level
+ feature_server_pd_2:
+ - abstract_pd_server_4
+ - feature_pd_server
+ feature_server_pd_1:
+ - abstract_pd_server_5
+ - feature_pd_server
+ scalable_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_1
+ cpu.delta_server_pd_1:
+ - abstract_pd_server_5
+ - cpu.delta_pd_server
+ host_server_pd_1:
+ - abstract_pd_server_5
+ - host_pd_server
+ binding_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - binding_pd01_port_0
+ host_server_pd_2:
+ - abstract_pd_server_4
+ - host_pd_server
+ memory.usage_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_1_test_nested3Level
+ network.outgoing.bytes_pd01_port_0:
+ - abstract_pd_server_5
+ - network.outgoing.bytes_pd_server_pd01_port
+ disk.device.read.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_2_test_nested3Level
+ disk.device.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_2_test_nested3Level
+ memory.usage_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_2
+ disk.device.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_1_test_nested3Level
+ memory_server_pd_2:
+ - abstract_pd_server_4
+ - memory_pd_server
+ binding_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - binding_server_pd_1
+ memory_server_pd_1:
+ - abstract_pd_server_5
+ - memory_pd_server
+ disk.device.read.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_1_test_nested3Level
+ os_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - os_server_pd_1_test_nested3Level
+ disk.allocation_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_1_test_nested3Level
+ network.outgoing.bytes.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd01_port_0_test_nested3Level
+ network.outpoing.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd01_port_0_test_nested3Level
+ memory.usage_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_1
+ disk.read.bytes.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_2
+ feature_ps02_port_0:
+ - abstract_pd_server_4
+ - feature_pd_server_ps02_port
+ disk.device.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_2_test_nested3Level
+ disk.device.read.requests_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_1_test_nested3Level
+ network.outgoing.packets.rate_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.packets.rate_pd01_port_0
+ memory_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_1
+ disk.device.read.bytes.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_2
+ disk.write.requests_server_pd_1:
+ - abstract_pd_server_5
+ - disk.write.requests_pd_server
+ scalable_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_2
+ disk.write.requests_server_pd_2:
+ - abstract_pd_server_4
+ - disk.write.requests_pd_server
+ disk.write.bytes_server_pd_1:
+ - abstract_pd_server_5
+ - disk.write.bytes_pd_server
+ network.outpoing.packets_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd01_port_0
+ cpu_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_2_test_nested3Level
+ disk.write.bytes_server_pd_2:
+ - abstract_pd_server_4
+ - disk.write.bytes_pd_server
+ disk.read.requests_server_pd_1:
+ - abstract_pd_server_5
+ - disk.read.requests_pd_server
+ disk.read.requests_server_pd_2:
+ - abstract_pd_server_4
+ - disk.read.requests_pd_server
+ disk.device.usage_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.usage_pd_server
+ disk.device.usage_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.usage_pd_server
+ network.incoming.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd02_port_0_test_nested3Level
+ disk.device.read.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_2_test_nested3Level
+ disk.device.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_1_test_nested3Level
+ disk.capacity_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.capacity_server_pd_2_test_nested3Level
+ disk.write.requests.rate_server_pd_1:
+ - abstract_pd_server_5
+ - disk.write.requests.rate_pd_server
+ disk.write.requests.rate_server_pd_2:
+ - abstract_pd_server_4
+ - disk.write.requests.rate_pd_server
+ disk.root.size_server_pd_1:
+ - abstract_pd_server_5
+ - disk.root.size_pd_server
+ memory_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_2_test_nested3Level
+ cpu.delta_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_1
+ instance_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_1
+ binding_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - binding_pd02_port_0_test_nested3Level
+ disk.device.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_2_test_nested3Level
+ network.incoming.packets.rate_ps02_port_0:
+ - abstract_pd_server_4
+ - network.incoming.packets.rate_pd_server_ps02_port
+ network.outgoing.bytes.rate_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd02_port_0
+ disk.device.iops_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.iops_pd_server
+ network.outgoing.bytes_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd02_port_0
+ network.outgoing.bytes.rate_ps02_port_0:
+ - abstract_pd_server_4
+ - network.outgoing.bytes.rate_pd_server_ps02_port
+ disk.device.read.bytes.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes.rate_server_pd_1
+ disk.device.iops_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.iops_pd_server
+ disk.device.capacity_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_2
+ disk.iops_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_2
+ endpoint_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - endpoint_server_pd_1_test_nested3Level
+ memory_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory_server_pd_1_test_nested3Level
+ scalable_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_2_test_nested3Level
+ disk.device.write.requests_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_2
+ disk.device.capacity_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.capacity_server_pd_1_test_nested3Level
+ attachment_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd01_port_0
+ disk.root.size_server_pd_2:
+ - abstract_pd_server_4
+ - disk.root.size_pd_server
+ disk.usage_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_2
+ disk.usage_server_pd_2:
+ - abstract_pd_server_4
+ - disk.usage_pd_server
+ disk.usage_server_pd_1:
+ - abstract_pd_server_5
+ - disk.usage_pd_server
+ disk.write.bytes_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes_server_pd_1
+ disk.device.latency_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_1
+ cpu_util_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_2_test_nested3Level
+ disk.device.write.requests_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_1
+ network.outgoing.bytes_ps02_port_0:
+ - abstract_pd_server_4
+ - network.outgoing.bytes_pd_server_ps02_port
+ disk.device.read.requests_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_2
+ disk.device.capacity_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.capacity_pd_server
+ disk.device.capacity_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.capacity_pd_server
+ disk.device.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_1_test_nested3Level
+ feature_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_pd02_port_0_test_nested3Level
+ disk.device.allocation_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_2
+ network.outpoing.packets_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd02_port_0_test_nested3Level
+ disk.iops_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_1_test_nested3Level
+ disk.read.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes_server_pd_1_test_nested3Level
+ disk.write.requests_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_2
+ disk.device.write.bytes_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_1_test_nested3Level
+ disk.device.latency_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_2
+ disk.device.write.requests.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_1_test_nested3Level
+ feature_pd01_port_0:
+ - abstract_pd_server_5
+ - feature_pd_server_pd01_port
+ disk.device.latency_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.latency_pd_server
+ disk.read.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.bytes.rate_server_pd_1_test_nested3Level
+ vcpus_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - vcpus_server_pd_1_test_nested3Level
+ disk.device.latency_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.latency_pd_server
+ disk.write.requests.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_2_test_nested3Level
+ disk.write.requests.rate_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests.rate_server_pd_1
+ network.incoming.packets_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd01_port_0
+ disk.device.write.requests.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests.rate_server_pd_2
+ network.outpoing.packets_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.outpoing.packets_pd02_port_0
+ disk.device.latency_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.latency_server_pd_1_test_nested3Level
+ cpu.delta_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - cpu.delta_server_pd_2_test_nested3Level
+ disk.ephemeral.size_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.ephemeral.size_server_pd_2_test_nested3Level
+ disk.device.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.requests_server_pd_1_test_nested3Level
+ network.outgoing.bytes_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes_pd02_port_0_test_nested3Level
+ scalable_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - scalable_server_pd_1_test_nested3Level
+ disk.device.write.bytes.rate_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_2_test_nested3Level
+ disk.device.read.requests_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests_server_pd_1
+ disk.write.bytes.rate_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.bytes.rate_server_pd_1_test_nested3Level
+ network.incoming.packets.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd02_port_0_test_nested3Level
+ disk.device.read.requests.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.requests.rate_server_pd_2
+ disk.device.write.bytes_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes_server_pd_2
+ disk.allocation_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.allocation_server_pd_1
+ network.outgoing.bytes.rate_pd01_port_0:
+ - abstract_pd_server_5
+ - network.outgoing.bytes.rate_pd_server_pd01_port
+ memory.resident_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_1_test_nested3Level
+ disk.device.read.bytes_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.device.read.bytes_server_pd_1
+ network.incoming.bytes_ps02_port_0:
+ - abstract_pd_server_4
+ - network.incoming.bytes_pd_server_ps02_port
+ network.incoming.bytes_pd01_port_0:
+ - abstract_pd_server_5
+ - network.incoming.bytes_pd_server_pd01_port
+ disk.device.iops_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_2_test_nested3Level
+ network.incoming.bytes_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd01_port_0_test_nested3Level
+ network.incoming.packets_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets_pd01_port_0_test_nested3Level
+ disk.read.requests_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.read.requests_server_pd_2_test_nested3Level
+ disk.iops_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - disk.iops_server_pd_1
+ disk.write.requests_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.write.requests_server_pd_1_test_nested3Level
+ instance_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - instance_server_pd_2
+ network.incoming.packets_pd01_port_0:
+ - abstract_pd_server_5
+ - network.incoming.packets_pd_server_pd01_port
+ attachment_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - attachment_pd02_port_0_test_nested3Level
+ cpu_util_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_util_server_pd_2
+ network.incoming.packets.rate_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd01_port_0_test_nested3Level
+ disk.device.allocation_server_pd_1:
+ - abstract_pd_server_5
+ - disk.device.allocation_pd_server
+ disk.device.allocation_server_pd_2:
+ - abstract_pd_server_4
+ - disk.device.allocation_pd_server
+ memory.usage_server_pd_2:
+ - abstract_pd_server_4
+ - memory.usage_pd_server
+ disk.usage_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.usage_server_pd_1_test_nested3Level
+ network.incoming.packets.rate_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.packets.rate_pd02_port_0
+ feature_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - feature_test_nested3Level
+ network.incoming.bytes_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - network.incoming.bytes_pd02_port_0
+ memory.usage_server_pd_1:
+ - abstract_pd_server_5
+ - memory.usage_pd_server
+ os_server_pd_2:
+ - abstract_pd_server_4
+ - os_pd_server
+ disk.latency_server_pd_1:
+ - abstract_pd_server_5
+ - disk.latency_pd_server
+ disk.latency_server_pd_2:
+ - abstract_pd_server_4
+ - disk.latency_pd_server
+ disk.device.usage_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.usage_server_pd_2
+ disk.device.allocation_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.device.allocation_server_pd_2_test_nested3Level
+ network.outgoing.bytes.rate_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - network.outgoing.bytes.rate_pd02_port_0_test_nested3Level
+ scalable_server_pd_2:
+ - abstract_pd_server_4
+ - scalable_pd_server
+ scalable_server_pd_1:
+ - abstract_pd_server_5
+ - scalable_pd_server
+ disk.latency_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - disk.latency_server_pd_2_test_nested3Level
+ network.incoming.packets_ps02_port_0:
+ - abstract_pd_server_4
+ - network.incoming.packets_pd_server_ps02_port
+ memory.resident_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - memory.resident_server_pd_1
+ disk.device.write.bytes.rate_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.write.bytes.rate_server_pd_2
+ disk.device.iops_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - disk.device.iops_server_pd_2
+ memory.usage_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - memory.usage_server_pd_2_test_nested3Level
+ cpu_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - cpu_server_pd_2
+ os_server_pd_1:
+ - abstract_pd_server_5
+ - os_pd_server
+ requirements:
+ dependency_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd02_port_0
+ dependency_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd02_port_0_test_nested3Level
+ local_storage_server_pd_1:
+ - abstract_pd_server_5
+ - local_storage_pd_server
+ local_storage_server_pd_2:
+ - abstract_pd_server_4
+ - local_storage_pd_server
+ local_storage_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_1_test_nested3Level
+ dependency_test_nested2Level:
+ - test_nested2Level
+ - dependency
+ dependency_server_pd_1:
+ - abstract_pd_server_5
+ - dependency_pd_server
+ dependency_server_pd_2:
+ - abstract_pd_server_4
+ - dependency_pd_server
+ dependency_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_2_test_nested3Level
+ link_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - link_pd01_port_0
+ local_storage_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_2
+ dependency_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd01_port_0_test_nested3Level
+ link_pd02_port_0_test_nested2Level:
+ - test_nested2Level
+ - link_pd02_port_0
+ local_storage_server_pd_2_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_2_test_nested3Level
+ link_pd01_port_0:
+ - abstract_pd_server_5
+ - link_pd_server_pd01_port
+ link_ps02_port_0:
+ - abstract_pd_server_4
+ - link_pd_server_ps02_port
+ dependency_server_pd_2_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_2
+ local_storage_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - local_storage_server_pd_1
+ dependency_ps02_port_0:
+ - abstract_pd_server_4
+ - dependency_pd_server_ps02_port
+ dependency_pd01_port_0:
+ - abstract_pd_server_5
+ - dependency_pd_server_pd01_port
+ dependency_server_pd_1_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_1
+ link_pd01_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - link_pd01_port_0_test_nested3Level
+ dependency_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_test_nested3Level
+ link_pd02_port_0_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - link_pd02_port_0_test_nested3Level
+ dependency_pd01_port_0_test_nested2Level:
+ - test_nested2Level
+ - dependency_pd01_port_0
+ dependency_server_pd_1_test_nested3Level_test_nested2Level:
+ - test_nested2Level
+ - dependency_server_pd_1_test_nested3Level
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested2ServiceTemplate.yaml
new file mode 100644
index 0000000000..f837190c6c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested2ServiceTemplate.yaml
@@ -0,0 +1,834 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ pd_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ test_nested3Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: p1
+ service_template_filter:
+ substitute_service_template: nested3ServiceTemplate.yaml
+ abstract_pd_server_2:
+ type: org.openecomp.resource.abstract.nodes.pd_server_2
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ port_pd02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd02_port_network_role_tag: oam
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd02_port_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_3:
+ type: org.openecomp.resource.abstract.nodes.pd_server_3
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_3ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested2_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2.yml
+ description: nested2
+ members:
+ - test_nested3Level
+ - abstract_pd_server_2
+ - abstract_pd_server_3
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2
+ capabilities:
+ disk.read.bytes.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes.rate_server_pd_2
+ disk.root.size_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.root.size_server_pd_2
+ disk.iops_server_pd_1:
+ - abstract_pd_server_3
+ - disk.iops_pd_server
+ disk.iops_server_pd_2:
+ - abstract_pd_server_2
+ - disk.iops_pd_server
+ binding_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - binding_pd01_port_0
+ disk.write.bytes.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.write.bytes.rate_pd_server
+ network.outpoing.packets_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outpoing.packets_pd01_port_0
+ disk.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.write.bytes.rate_pd_server
+ disk.device.capacity_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.capacity_server_pd_2
+ scalable_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - scalable_server_pd_2
+ network.incoming.packets.rate_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets.rate_pd02_port_0
+ network.outgoing.bytes_pd02_port_0:
+ - abstract_pd_server_2
+ - network.outgoing.bytes_pd_server_pd02_port
+ scalable_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - scalable_server_pd_1
+ disk.read.bytes.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes.rate_server_pd_1
+ memory.resident_server_pd_1:
+ - abstract_pd_server_3
+ - memory.resident_pd_server
+ memory.resident_server_pd_2:
+ - abstract_pd_server_2
+ - memory.resident_pd_server
+ network.incoming.bytes_pd02_port_0:
+ - abstract_pd_server_2
+ - network.incoming.bytes_pd_server_pd02_port
+ disk.ephemeral.size_server_pd_2:
+ - abstract_pd_server_2
+ - disk.ephemeral.size_pd_server
+ disk.ephemeral.size_server_pd_1:
+ - abstract_pd_server_3
+ - disk.ephemeral.size_pd_server
+ binding_pd01_port_0:
+ - abstract_pd_server_3
+ - binding_pd_server_pd01_port
+ network.outgoing.bytes.rate_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes.rate_pd02_port_0
+ disk.device.read.bytes_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.read.bytes_pd_server
+ disk.device.read.bytes_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.read.bytes_pd_server
+ feature_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - feature_pd02_port_0
+ binding_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - binding_server_pd_1
+ network.outgoing.packets.rate_pd01_port_0:
+ - abstract_pd_server_3
+ - network.outgoing.packets.rate_pd_server_pd01_port
+ instance_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - instance_server_pd_2
+ memory.resident_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - memory.resident_server_pd_1
+ cpu.delta_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - cpu.delta_server_pd_1
+ memory_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - memory_server_pd_1
+ memory.usage_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - memory.usage_server_pd_2
+ disk.usage_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.usage_server_pd_1
+ disk.iops_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.iops_server_pd_1
+ disk.device.allocation_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.allocation_server_pd_2
+ disk.write.requests.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests.rate_server_pd_2
+ disk.read.bytes.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.read.bytes.rate_pd_server
+ disk.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.read.bytes.rate_pd_server
+ cpu_server_pd_2:
+ - abstract_pd_server_2
+ - cpu_pd_server
+ cpu_server_pd_1:
+ - abstract_pd_server_3
+ - cpu_pd_server
+ attachment_pd01_port_0:
+ - abstract_pd_server_3
+ - attachment_pd_server_pd01_port
+ disk.device.capacity_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.capacity_server_pd_1
+ endpoint_server_pd_2:
+ - abstract_pd_server_2
+ - endpoint_pd_server
+ endpoint_server_pd_1:
+ - abstract_pd_server_3
+ - endpoint_pd_server
+ vcpus_server_pd_1:
+ - abstract_pd_server_3
+ - vcpus_pd_server
+ vcpus_server_pd_2:
+ - abstract_pd_server_2
+ - vcpus_pd_server
+ attachment_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - attachment_pd01_port_0
+ disk.write.requests_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests_server_pd_2
+ network.incoming.bytes_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes_pd01_port_0
+ disk.device.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.write.bytes.rate_pd_server
+ disk.device.write.bytes.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.write.bytes.rate_pd_server
+ disk.device.usage_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.usage_server_pd_1
+ disk.device.write.requests.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests.rate_server_pd_2
+ network.incoming.bytes.rate_pd01_port_0:
+ - abstract_pd_server_3
+ - network.incoming.bytes.rate_pd_server_pd01_port
+ disk.device.write.requests.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests.rate_server_pd_1
+ disk.write.bytes_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes_server_pd_2
+ disk.device.read.bytes.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes.rate_server_pd_1
+ disk.device.read.requests.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests.rate_server_pd_1
+ network.incoming.bytes.rate_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes.rate_pd02_port_0
+ disk.device.write.bytes_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes_server_pd_1
+ instance_server_pd_1:
+ - abstract_pd_server_3
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.read.requests.rate_pd_server
+ disk.device.latency_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.latency_server_pd_1
+ instance_server_pd_2:
+ - abstract_pd_server_2
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.read.requests.rate_pd_server
+ disk.write.requests_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests_server_pd_1
+ attachment_pd02_port_0:
+ - abstract_pd_server_2
+ - attachment_pd_server_pd02_port
+ cpu_util_server_pd_1:
+ - abstract_pd_server_3
+ - cpu_util_pd_server
+ host_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - host_server_pd_2
+ cpu_util_server_pd_2:
+ - abstract_pd_server_2
+ - cpu_util_pd_server
+ disk.device.read.bytes.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.read.bytes.rate_pd_server
+ disk.device.allocation_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.allocation_server_pd_1
+ disk.allocation_server_pd_2:
+ - abstract_pd_server_2
+ - disk.allocation_pd_server
+ disk.device.write.bytes_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.write.bytes_pd_server
+ disk.device.write.bytes_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.write.bytes_pd_server
+ disk.allocation_server_pd_1:
+ - abstract_pd_server_3
+ - disk.allocation_pd_server
+ network.incoming.packets.rate_pd01_port_0:
+ - abstract_pd_server_3
+ - network.incoming.packets.rate_pd_server_pd01_port
+ disk.capacity_server_pd_2:
+ - abstract_pd_server_2
+ - disk.capacity_pd_server
+ disk.capacity_server_pd_1:
+ - abstract_pd_server_3
+ - disk.capacity_pd_server
+ disk.device.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.read.bytes.rate_pd_server
+ cpu.delta_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - cpu.delta_server_pd_2
+ binding_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - binding_pd02_port_0
+ network.outpoing.packets_pd01_port_0:
+ - abstract_pd_server_3
+ - network.outpoing.packets_pd_server_pd01_port
+ binding_server_pd_2:
+ - abstract_pd_server_2
+ - binding_pd_server
+ disk.device.write.requests_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.write.requests_pd_server
+ binding_server_pd_1:
+ - abstract_pd_server_3
+ - binding_pd_server
+ disk.device.write.requests_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.write.requests_pd_server
+ disk.usage_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.usage_server_pd_2
+ disk.capacity_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.capacity_server_pd_2
+ disk.device.write.requests.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.write.requests.rate_pd_server
+ network.outgoing.packets.rate_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.packets.rate_pd02_port_0
+ disk.read.bytes_server_pd_1:
+ - abstract_pd_server_3
+ - disk.read.bytes_pd_server
+ disk.device.read.requests_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.read.requests_pd_server
+ cpu_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - cpu_server_pd_1
+ disk.device.read.requests_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.read.requests_pd_server
+ disk.read.bytes_server_pd_2:
+ - abstract_pd_server_2
+ - disk.read.bytes_pd_server
+ disk.device.write.requests.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.write.requests.rate_pd_server
+ feature_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - feature_server_pd_1
+ memory_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - memory_server_pd_2
+ vcpus_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - vcpus_server_pd_1
+ disk.write.bytes.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes.rate_server_pd_2
+ instance_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - instance_server_pd_1
+ network.outgoing.bytes_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes_pd01_port_0
+ feature_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - feature_pd01_port_0
+ disk.ephemeral.size_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.ephemeral.size_server_pd_1
+ vcpus_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - vcpus_server_pd_2
+ os_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - os_server_pd_1
+ disk.device.write.bytes.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes.rate_server_pd_1
+ cpu.delta_server_pd_2:
+ - abstract_pd_server_2
+ - cpu.delta_pd_server
+ feature_server_pd_2:
+ - abstract_pd_server_2
+ - feature_pd_server
+ feature_server_pd_1:
+ - abstract_pd_server_3
+ - feature_pd_server
+ cpu.delta_server_pd_1:
+ - abstract_pd_server_3
+ - cpu.delta_pd_server
+ disk.device.iops_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.iops_server_pd_2
+ disk.device.write.bytes.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes.rate_server_pd_2
+ host_server_pd_1:
+ - abstract_pd_server_3
+ - host_pd_server
+ disk.device.iops_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.iops_server_pd_1
+ disk.ephemeral.size_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.ephemeral.size_server_pd_2
+ host_server_pd_2:
+ - abstract_pd_server_2
+ - host_pd_server
+ network.outgoing.bytes_pd01_port_0:
+ - abstract_pd_server_3
+ - network.outgoing.bytes_pd_server_pd01_port
+ os_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - os_server_pd_2
+ disk.read.bytes_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes_server_pd_1
+ memory_server_pd_2:
+ - abstract_pd_server_2
+ - memory_pd_server
+ memory_server_pd_1:
+ - abstract_pd_server_3
+ - memory_pd_server
+ network.incoming.packets_pd02_port_0:
+ - abstract_pd_server_2
+ - network.incoming.packets_pd_server_pd02_port
+ disk.read.requests_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.requests_server_pd_2
+ cpu_util_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - cpu_util_server_pd_1
+ disk.read.requests_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.read.requests_server_pd_1
+ disk.read.bytes_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.read.bytes_server_pd_2
+ disk.write.requests_server_pd_1:
+ - abstract_pd_server_3
+ - disk.write.requests_pd_server
+ endpoint_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - endpoint_server_pd_2
+ disk.write.requests_server_pd_2:
+ - abstract_pd_server_2
+ - disk.write.requests_pd_server
+ disk.write.bytes_server_pd_1:
+ - abstract_pd_server_3
+ - disk.write.bytes_pd_server
+ disk.write.bytes_server_pd_2:
+ - abstract_pd_server_2
+ - disk.write.bytes_pd_server
+ disk.read.requests_server_pd_1:
+ - abstract_pd_server_3
+ - disk.read.requests_pd_server
+ network.outgoing.bytes.rate_pd02_port_0:
+ - abstract_pd_server_2
+ - network.outgoing.bytes.rate_pd_server_pd02_port
+ disk.read.requests_server_pd_2:
+ - abstract_pd_server_2
+ - disk.read.requests_pd_server
+ disk.device.usage_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.usage_pd_server
+ disk.device.usage_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.usage_pd_server
+ network.incoming.packets.rate_pd02_port_0:
+ - abstract_pd_server_2
+ - network.incoming.packets.rate_pd_server_pd02_port
+ network.incoming.bytes_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes_pd02_port_0
+ network.incoming.packets.rate_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets.rate_pd01_port_0
+ disk.device.read.requests_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests_server_pd_1
+ disk.write.requests.rate_server_pd_1:
+ - abstract_pd_server_3
+ - disk.write.requests.rate_pd_server
+ disk.write.requests.rate_server_pd_2:
+ - abstract_pd_server_2
+ - disk.write.requests.rate_pd_server
+ disk.root.size_server_pd_1:
+ - abstract_pd_server_3
+ - disk.root.size_pd_server
+ disk.allocation_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.allocation_server_pd_1
+ host_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - host_server_pd_1
+ disk.device.iops_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.iops_pd_server
+ disk.device.iops_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.iops_pd_server
+ network.incoming.packets_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets_pd02_port_0
+ disk.write.bytes.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes.rate_server_pd_1
+ feature_pd02_port_0:
+ - abstract_pd_server_2
+ - feature_pd_server_pd02_port
+ network.incoming.packets_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.packets_pd01_port_0
+ disk.root.size_server_pd_2:
+ - abstract_pd_server_2
+ - disk.root.size_pd_server
+ disk.latency_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.latency_server_pd_2
+ disk.usage_server_pd_2:
+ - abstract_pd_server_2
+ - disk.usage_pd_server
+ disk.usage_server_pd_1:
+ - abstract_pd_server_3
+ - disk.usage_pd_server
+ disk.device.write.requests_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests_server_pd_1
+ feature_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - feature_server_pd_2
+ disk.device.read.bytes_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes_server_pd_1
+ disk.device.latency_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.latency_server_pd_2
+ network.outgoing.bytes.rate_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes.rate_pd01_port_0
+ disk.device.write.requests_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.requests_server_pd_2
+ disk.device.capacity_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.capacity_pd_server
+ disk.device.capacity_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.capacity_pd_server
+ cpu_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - cpu_server_pd_2
+ disk.device.usage_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.usage_server_pd_2
+ network.incoming.bytes.rate_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.incoming.bytes.rate_pd01_port_0
+ disk.device.write.bytes_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.write.bytes_server_pd_2
+ disk.capacity_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.capacity_server_pd_1
+ feature_pd01_port_0:
+ - abstract_pd_server_3
+ - feature_pd_server_pd01_port
+ disk.device.latency_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.latency_pd_server
+ disk.device.latency_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.latency_pd_server
+ memory.resident_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - memory.resident_server_pd_2
+ disk.device.read.requests.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests.rate_server_pd_2
+ network.outgoing.bytes_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.bytes_pd02_port_0
+ disk.write.bytes_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.bytes_server_pd_1
+ endpoint_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - endpoint_server_pd_1
+ network.outgoing.bytes.rate_pd01_port_0:
+ - abstract_pd_server_3
+ - network.outgoing.bytes.rate_pd_server_pd01_port
+ disk.allocation_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.allocation_server_pd_2
+ network.outpoing.packets_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outpoing.packets_pd02_port_0
+ binding_pd02_port_0:
+ - abstract_pd_server_2
+ - binding_pd_server_pd02_port
+ disk.device.read.bytes_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes_server_pd_2
+ feature_test_nested3Level:
+ - test_nested3Level
+ - feature
+ disk.write.requests.rate_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.write.requests.rate_server_pd_1
+ disk.latency_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.latency_server_pd_1
+ network.incoming.bytes_pd01_port_0:
+ - abstract_pd_server_3
+ - network.incoming.bytes_pd_server_pd01_port
+ cpu_util_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - cpu_util_server_pd_2
+ network.outgoing.packets.rate_pd02_port_0:
+ - abstract_pd_server_2
+ - network.outgoing.packets.rate_pd_server_pd02_port
+ network.outpoing.packets_pd02_port_0:
+ - abstract_pd_server_2
+ - network.outpoing.packets_pd_server_pd02_port
+ disk.iops_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.iops_server_pd_2
+ network.incoming.packets_pd01_port_0:
+ - abstract_pd_server_3
+ - network.incoming.packets_pd_server_pd01_port
+ attachment_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - attachment_pd02_port_0
+ disk.device.read.bytes.rate_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.bytes.rate_server_pd_2
+ disk.device.allocation_server_pd_1:
+ - abstract_pd_server_3
+ - disk.device.allocation_pd_server
+ binding_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - binding_server_pd_2
+ disk.device.read.requests_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - disk.device.read.requests_server_pd_2
+ disk.device.allocation_server_pd_2:
+ - abstract_pd_server_2
+ - disk.device.allocation_pd_server
+ memory.usage_server_pd_2:
+ - abstract_pd_server_2
+ - memory.usage_pd_server
+ network.outgoing.packets.rate_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - network.outgoing.packets.rate_pd01_port_0
+ memory.usage_server_pd_1:
+ - abstract_pd_server_3
+ - memory.usage_pd_server
+ network.incoming.bytes.rate_pd02_port_0:
+ - abstract_pd_server_2
+ - network.incoming.bytes.rate_pd_server_pd02_port
+ os_server_pd_2:
+ - abstract_pd_server_2
+ - os_pd_server
+ memory.usage_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - memory.usage_server_pd_1
+ disk.latency_server_pd_1:
+ - abstract_pd_server_3
+ - disk.latency_pd_server
+ disk.latency_server_pd_2:
+ - abstract_pd_server_2
+ - disk.latency_pd_server
+ scalable_server_pd_2:
+ - abstract_pd_server_2
+ - scalable_pd_server
+ scalable_server_pd_1:
+ - abstract_pd_server_3
+ - scalable_pd_server
+ disk.root.size_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - disk.root.size_server_pd_1
+ os_server_pd_1:
+ - abstract_pd_server_3
+ - os_pd_server
+ requirements:
+ link_pd01_port_0:
+ - abstract_pd_server_3
+ - link_pd_server_pd01_port
+ link_pd02_port_0:
+ - abstract_pd_server_2
+ - link_pd_server_pd02_port
+ link_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - link_pd02_port_0
+ local_storage_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - local_storage_server_pd_2
+ local_storage_server_pd_1:
+ - abstract_pd_server_3
+ - local_storage_pd_server
+ local_storage_server_pd_2:
+ - abstract_pd_server_2
+ - local_storage_pd_server
+ dependency_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - dependency_pd01_port_0
+ dependency_pd01_port_0:
+ - abstract_pd_server_3
+ - dependency_pd_server_pd01_port
+ dependency_server_pd_1:
+ - abstract_pd_server_3
+ - dependency_pd_server
+ dependency_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - dependency_server_pd_1
+ dependency_server_pd_2:
+ - abstract_pd_server_2
+ - dependency_pd_server
+ dependency_pd02_port_0:
+ - abstract_pd_server_2
+ - dependency_pd_server_pd02_port
+ dependency_server_pd_2_test_nested3Level:
+ - test_nested3Level
+ - dependency_server_pd_2
+ dependency_pd02_port_0_test_nested3Level:
+ - test_nested3Level
+ - dependency_pd02_port_0
+ local_storage_server_pd_1_test_nested3Level:
+ - test_nested3Level
+ - local_storage_server_pd_1
+ dependency_test_nested3Level:
+ - test_nested3Level
+ - dependency
+ link_pd01_port_0_test_nested3Level:
+ - test_nested3Level
+ - link_pd01_port_0
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested3ServiceTemplate.yaml
new file mode 100644
index 0000000000..7cf3a5a6cc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/nested3ServiceTemplate.yaml
@@ -0,0 +1,482 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested3
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ pd_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 1
+ port_pd02_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd02_port_network_role_tag: oam
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd02_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd02_port_network:
+ - get_input: oam_net_name
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested3_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested3.yml
+ description: nested2
+ members:
+ - abstract_pd_server
+ - abstract_pd_server_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested3
+ capabilities:
+ disk.iops_server_pd_1:
+ - abstract_pd_server_1
+ - disk.iops_pd_server
+ disk.iops_server_pd_2:
+ - abstract_pd_server
+ - disk.iops_pd_server
+ disk.write.bytes.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
+ disk.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.write.bytes.rate_pd_server
+ cpu.delta_server_pd_2:
+ - abstract_pd_server
+ - cpu.delta_pd_server
+ feature_server_pd_2:
+ - abstract_pd_server
+ - feature_pd_server
+ feature_server_pd_1:
+ - abstract_pd_server_1
+ - feature_pd_server
+ cpu.delta_server_pd_1:
+ - abstract_pd_server_1
+ - cpu.delta_pd_server
+ host_server_pd_1:
+ - abstract_pd_server_1
+ - host_pd_server
+ network.outgoing.bytes_pd02_port_0:
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pd02_port
+ host_server_pd_2:
+ - abstract_pd_server
+ - host_pd_server
+ network.outgoing.bytes_pd01_port_0:
+ - abstract_pd_server_1
+ - network.outgoing.bytes_pd_server_pd01_port
+ memory_server_pd_2:
+ - abstract_pd_server
+ - memory_pd_server
+ memory_server_pd_1:
+ - abstract_pd_server_1
+ - memory_pd_server
+ network.incoming.packets_pd02_port_0:
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pd02_port
+ memory.resident_server_pd_1:
+ - abstract_pd_server_1
+ - memory.resident_pd_server
+ memory.resident_server_pd_2:
+ - abstract_pd_server
+ - memory.resident_pd_server
+ network.incoming.bytes_pd02_port_0:
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pd02_port
+ disk.write.requests_server_pd_1:
+ - abstract_pd_server_1
+ - disk.write.requests_pd_server
+ disk.ephemeral.size_server_pd_2:
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
+ disk.ephemeral.size_server_pd_1:
+ - abstract_pd_server_1
+ - disk.ephemeral.size_pd_server
+ disk.write.requests_server_pd_2:
+ - abstract_pd_server
+ - disk.write.requests_pd_server
+ disk.write.bytes_server_pd_1:
+ - abstract_pd_server_1
+ - disk.write.bytes_pd_server
+ disk.write.bytes_server_pd_2:
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
+ disk.read.requests_server_pd_1:
+ - abstract_pd_server_1
+ - disk.read.requests_pd_server
+ network.outgoing.bytes.rate_pd02_port_0:
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pd02_port
+ binding_pd01_port_0:
+ - abstract_pd_server_1
+ - binding_pd_server_pd01_port
+ disk.read.requests_server_pd_2:
+ - abstract_pd_server
+ - disk.read.requests_pd_server
+ disk.device.usage_server_pd_2:
+ - abstract_pd_server
+ - disk.device.usage_pd_server
+ disk.device.usage_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.usage_pd_server
+ disk.device.read.bytes_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.read.bytes_pd_server
+ disk.device.read.bytes_server_pd_2:
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
+ network.incoming.packets.rate_pd02_port_0:
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pd02_port
+ network.outgoing.packets.rate_pd01_port_0:
+ - abstract_pd_server_1
+ - network.outgoing.packets.rate_pd_server_pd01_port
+ disk.write.requests.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.write.requests.rate_pd_server
+ disk.write.requests.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
+ disk.root.size_server_pd_1:
+ - abstract_pd_server_1
+ - disk.root.size_pd_server
+ disk.device.iops_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.iops_pd_server
+ disk.device.iops_server_pd_2:
+ - abstract_pd_server
+ - disk.device.iops_pd_server
+ feature_pd02_port_0:
+ - abstract_pd_server
+ - feature_pd_server_pd02_port
+ disk.root.size_server_pd_2:
+ - abstract_pd_server
+ - disk.root.size_pd_server
+ disk.usage_server_pd_2:
+ - abstract_pd_server
+ - disk.usage_pd_server
+ disk.usage_server_pd_1:
+ - abstract_pd_server_1
+ - disk.usage_pd_server
+ disk.read.bytes.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
+ disk.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.read.bytes.rate_pd_server
+ cpu_server_pd_2:
+ - abstract_pd_server
+ - cpu_pd_server
+ cpu_server_pd_1:
+ - abstract_pd_server_1
+ - cpu_pd_server
+ attachment_pd01_port_0:
+ - abstract_pd_server_1
+ - attachment_pd_server_pd01_port
+ endpoint_server_pd_2:
+ - abstract_pd_server
+ - endpoint_pd_server
+ endpoint_server_pd_1:
+ - abstract_pd_server_1
+ - endpoint_pd_server
+ vcpus_server_pd_1:
+ - abstract_pd_server_1
+ - vcpus_pd_server
+ vcpus_server_pd_2:
+ - abstract_pd_server
+ - vcpus_pd_server
+ disk.device.capacity_server_pd_2:
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
+ disk.device.capacity_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.capacity_pd_server
+ disk.device.write.bytes.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.write.bytes.rate_pd_server
+ disk.device.write.bytes.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
+ network.incoming.bytes.rate_pd01_port_0:
+ - abstract_pd_server_1
+ - network.incoming.bytes.rate_pd_server_pd01_port
+ feature_pd01_port_0:
+ - abstract_pd_server_1
+ - feature_pd_server_pd01_port
+ disk.device.latency_server_pd_2:
+ - abstract_pd_server
+ - disk.device.latency_pd_server
+ disk.device.latency_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.latency_pd_server
+ instance_server_pd_1:
+ - abstract_pd_server_1
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.read.requests.rate_pd_server
+ instance_server_pd_2:
+ - abstract_pd_server
+ - instance_pd_server
+ disk.device.read.requests.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
+ attachment_pd02_port_0:
+ - abstract_pd_server
+ - attachment_pd_server_pd02_port
+ network.outgoing.bytes.rate_pd01_port_0:
+ - abstract_pd_server_1
+ - network.outgoing.bytes.rate_pd_server_pd01_port
+ cpu_util_server_pd_1:
+ - abstract_pd_server_1
+ - cpu_util_pd_server
+ cpu_util_server_pd_2:
+ - abstract_pd_server
+ - cpu_util_pd_server
+ disk.device.read.bytes.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
+ binding_pd02_port_0:
+ - abstract_pd_server
+ - binding_pd_server_pd02_port
+ disk.allocation_server_pd_2:
+ - abstract_pd_server
+ - disk.allocation_pd_server
+ disk.device.write.bytes_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.write.bytes_pd_server
+ disk.device.write.bytes_server_pd_2:
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
+ disk.allocation_server_pd_1:
+ - abstract_pd_server_1
+ - disk.allocation_pd_server
+ network.incoming.packets.rate_pd01_port_0:
+ - abstract_pd_server_1
+ - network.incoming.packets.rate_pd_server_pd01_port
+ disk.capacity_server_pd_2:
+ - abstract_pd_server
+ - disk.capacity_pd_server
+ disk.capacity_server_pd_1:
+ - abstract_pd_server_1
+ - disk.capacity_pd_server
+ disk.device.read.bytes.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.read.bytes.rate_pd_server
+ network.incoming.bytes_pd01_port_0:
+ - abstract_pd_server_1
+ - network.incoming.bytes_pd_server_pd01_port
+ network.outgoing.packets.rate_pd02_port_0:
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pd02_port
+ network.outpoing.packets_pd02_port_0:
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pd02_port
+ network.outpoing.packets_pd01_port_0:
+ - abstract_pd_server_1
+ - network.outpoing.packets_pd_server_pd01_port
+ binding_server_pd_2:
+ - abstract_pd_server
+ - binding_pd_server
+ disk.device.write.requests_server_pd_2:
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
+ binding_server_pd_1:
+ - abstract_pd_server_1
+ - binding_pd_server
+ disk.device.write.requests_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.write.requests_pd_server
+ network.incoming.packets_pd01_port_0:
+ - abstract_pd_server_1
+ - network.incoming.packets_pd_server_pd01_port
+ disk.device.allocation_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.allocation_pd_server
+ disk.device.allocation_server_pd_2:
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
+ disk.device.write.requests.rate_server_pd_2:
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
+ memory.usage_server_pd_2:
+ - abstract_pd_server
+ - memory.usage_pd_server
+ disk.read.bytes_server_pd_1:
+ - abstract_pd_server_1
+ - disk.read.bytes_pd_server
+ disk.device.read.requests_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.read.requests_pd_server
+ disk.device.read.requests_server_pd_2:
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
+ disk.read.bytes_server_pd_2:
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
+ memory.usage_server_pd_1:
+ - abstract_pd_server_1
+ - memory.usage_pd_server
+ network.incoming.bytes.rate_pd02_port_0:
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pd02_port
+ disk.device.write.requests.rate_server_pd_1:
+ - abstract_pd_server_1
+ - disk.device.write.requests.rate_pd_server
+ os_server_pd_2:
+ - abstract_pd_server
+ - os_pd_server
+ disk.latency_server_pd_1:
+ - abstract_pd_server_1
+ - disk.latency_pd_server
+ disk.latency_server_pd_2:
+ - abstract_pd_server
+ - disk.latency_pd_server
+ scalable_server_pd_2:
+ - abstract_pd_server
+ - scalable_pd_server
+ scalable_server_pd_1:
+ - abstract_pd_server_1
+ - scalable_pd_server
+ os_server_pd_1:
+ - abstract_pd_server_1
+ - os_pd_server
+ requirements:
+ link_pd01_port_0:
+ - abstract_pd_server_1
+ - link_pd_server_pd01_port
+ link_pd02_port_0:
+ - abstract_pd_server
+ - link_pd_server_pd02_port
+ local_storage_server_pd_1:
+ - abstract_pd_server_1
+ - local_storage_pd_server
+ local_storage_server_pd_2:
+ - abstract_pd_server
+ - local_storage_pd_server
+ dependency_pd01_port_0:
+ - abstract_pd_server_1
+ - dependency_pd_server_pd01_port
+ dependency_server_pd_1:
+ - abstract_pd_server_1
+ - dependency_pd_server
+ dependency_server_pd_2:
+ - abstract_pd_server
+ - dependency_pd_server
+ dependency_pd02_port_0:
+ - abstract_pd_server
+ - dependency_pd_server_pd02_port
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/MANIFEST.json
new file mode 100644
index 0000000000..d149b6d9bb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/MANIFEST.json
@@ -0,0 +1,33 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-no-compute.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-pattern-4.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/main.yml
new file mode 100644
index 0000000000..8ed2026356
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/main.yml
@@ -0,0 +1,41 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_all_patterns:
+ type: nested1.yml
+ properties:
+ p1: {get_attr: [test_nested_pattern_4, pattern4_attr_1]}
+ p2: {get_attr: [test_nested_no_compute, no_compute_attr_1]}
+
+ test_nested_pattern_4:
+ type: nested-pattern-4.yml
+ depends_on:
+ - test_nested_all_patterns
+ properties:
+ p2: {get_attr: [test_nested_no_compute, no_compute_attr_1]}
+
+ test_nested_no_compute:
+ type: nested-no-compute.yml
+ depends_on:
+ - test_nested_all_patterns
+ - test_nested_pattern_4
+ properties:
+ p1: {get_attr: [test_nested_pattern_4, pattern4_attr_1]}
+
+ dependsOn_network:
+ type: OS::Neutron::Net
+ depends_on:
+ - test_nested_all_patterns
+ - test_nested_no_compute
+ - test_nested_pattern_4
+ properties:
+ name:
+ get_param: jsa_name \ 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/in/nested-no-compute.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-no-compute.yml
new file mode 100644
index 0000000000..5e0627f053
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-no-compute.yml
@@ -0,0 +1,67 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+
+resources:
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name
+
+outputs:
+ no_compute_attr_1:
+ description: no_compute_attr_1
+ value: { get_resource: packet_external_network } \ 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/in/nested-pattern-4.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-pattern-4.yml
new file mode 100644
index 0000000000..bbaa6a2636
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested-pattern-4.yml
@@ -0,0 +1,66 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ pd_server_image:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ pd_server_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port_1 }
+ - port: { get_resource: pd_server_port_2 }
+
+outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: { get_resource: server_pd }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested1.yml
new file mode 100644
index 0000000000..5907ec3648
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested1.yml
@@ -0,0 +1,197 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+ pd_server_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_1b_ips:
+ type: string
+ ps_server_1b_ips:
+ type: string
+
+resources:
+ pd_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1b_pd_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_1b_names, 0]}
+ image: { get_param: pd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_1b_port }
+
+ server_1b_pd_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_1b_names, 1]}
+ image: { get_param: pd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_1b_port }
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1c1_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 0]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_1c1_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 1]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ oam_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ oam_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_1c2_oam_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 0]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_1 }
+
+ server_1c2_oam_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 1]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_2 }
+ metadata: {
+ connectivity_to_pd_server_1b: {get_attr: [server_1b_pd_1, accessIPv4]},
+ connectivity_to_server_1c1_cmaui_1: {get_attr: [server_1c1_cmaui_1, accessIPv4]},
+ connectivity_to_server_1c1_cmaui_2: {get_attr: [server_1c1_cmaui_2, accessIPv4]},
+ connectivity_to_pattern_4: {get_attr: [nested1_pattern_4, pattern4_attr_1]}
+ }
+
+ nested1_pattern_4:
+ type: nested-pattern-4.yml
+ properties:
+ p2: {get_param: p2}
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name
+
+outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value: { get_attr: [server_1c2_oam_2, 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/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested2.yml
new file mode 100644
index 0000000000..3a5d110bd0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/in/nested2.yml
@@ -0,0 +1,197 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of osm network
+ p2:
+ type: string
+ description: UID of osm network
+ security_group_name:
+ type: comma_delimited_list
+ description: BE1, BE2 server names
+ BE_1c1_names:
+ type: comma_delimited_list
+ description: BE1, BE2 server names
+ BE_1c1_image:
+ type: string
+ description: Image for BE server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ BE_1c1_flavor:
+ type: string
+ description: Flavor for BE server
+ osm_server_1c2_names:
+ type: comma_delimited_list
+ description: BE1, BE2 server names
+ osm_server_1c2_image:
+ type: string
+ description: Image for BE server
+ osm_server_1c2_flavor:
+ type: string
+ description: Flavor for BE server
+ BE_osm_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+ rd_server_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ rd_server_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ rd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ rd_server_1b_ips:
+ type: string
+ ps_server_1b_ips:
+ type: string
+
+resources:
+ rd_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [rd_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1b_rd_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [rd_server_1b_names, 0]}
+ image: { get_param: rd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: rd_server_1b_flavor }
+ networks:
+ - port: { get_resource: rd_server_1b_port }
+
+ server_1b_rd_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [rd_server_1b_names, 1]}
+ image: { get_param: rd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: rd_server_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_1b_port }
+
+ BE_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [BE_osm_ips, 0]}}]
+ replacement_policy: AUTO
+
+ BE_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [BE_osm_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1c1_BE_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [BE_1c1_names, 0]}
+ image: { get_param: BE_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: BE_1c1_flavor }
+ networks:
+ - port: { get_resource: BE_port_1 }
+
+ server_1c1_BE_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [BE_1c1_names, 1]}
+ image: { get_param: BE_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: BE_1c1_flavor }
+ networks:
+ - port: { get_resource: BE_port_2 }
+
+ osm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [BE_osm_ips, 1]}}]
+ replacement_policy: AUTO
+
+ osm_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [BE_osm_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_1c2_osm_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [osm_server_1c2_names, 0]}
+ image: { get_param: osm_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: osm_server_1c2_flavor }
+ networks:
+ - port: { get_resource: osm_port_1 }
+
+ server_1c2_osm_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [osm_server_1c2_names, 1]}
+ image: { get_param: osm_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: osm_server_1c2_flavor }
+ networks:
+ - port: { get_resource: osm_port_2 }
+ metadata: {
+ connectivity_to_rd_server_1b: {get_attr: [server_1b_rd_1, accessIPv4]},
+ connectivity_to_server_1c1_BE_1: {get_attr: [server_1c1_BE_1, accessIPv4]},
+ connectivity_to_server_1c1_BE_2: {get_attr: [server_1c1_BE_2, accessIPv4]},
+ connectivity_to_pattern_4: {get_attr: [nested2_pattern_4, pattern4_attr_1]}
+ }
+
+ nested2_pattern_4:
+ type: nested-pattern-4.yml
+ properties:
+ p2: {get_param: p2}
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name
+
+outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value: { get_attr: [server_1c2_osm_2, 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/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..8ba567db2c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,7902 @@
+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.pd_server_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ attributes:
+ pd_server_1b_accessIPv4:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.bytes_pd_server_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
+ host_pd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_pd_server_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_pd_server_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.rate_pd_server_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_pd_server_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
+ endpoint_pd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server_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_pd_server_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.root.size_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pd_server_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
+ instance_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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.usage_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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
+ org.openecomp.resource.abstract.nodes.osm_server_1c2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_osm_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_osm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_osm_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
+ port_osm_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_osm_server_1c2_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_osm_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_osm_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_osm_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_osm_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_osm_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_osm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_osm_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_osm_server_1c2_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ compute_osm_server_1c2_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ osm_server_1c2_accessIPv4:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_osm_server_1c2_osm_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_osm_server_1c2_osm_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_osm_server_1c2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_osm_server_1c2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ endpoint_osm_server_1c2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_osm_server_1c2_osm_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_osm_server_1c2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: org.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_osm_server_1c2_osm_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_osm_server_1c2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.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_osm_server_1c2_osm_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_osm_server_1c2_osm_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_osm_server_1c2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2:
+ type: org.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.capabilities.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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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_osm_server_1c2:
+ type: org.openecomp.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_osm_server_1c2_osm_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.oam_server_1c2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ compute_oam_server_1c2_metadata:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ 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
+ requirements:
+ - dependency_oam_server_1c2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server_1c2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_oam_server_1c2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_oam_server_1c2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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: &id001
+ 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: &id002
+ 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.abstract.nodes.pd_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_pd_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.read.bytes_pd_server_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
+ host_pd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_server_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_pd_server_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.delta_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_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
+ endpoint_pd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_pd_server_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_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server_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_pd_server_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.root.size_pd_server_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_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pd_server_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
+ instance_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_pd_server_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_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_server_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.usage_pd_server_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_pd_server_1b_ps_server_b_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_pd_server_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
+ org.openecomp.resource.abstract.nodes.BE_1c1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_BE_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_BE_port_network_role:
+ 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
+ port_BE_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_BE_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_BE_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_BE_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_BE_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_BE_1c1_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_BE_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_BE_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_BE_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_BE_1c1_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_BE_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ BE_1c1_accessIPv4:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_BE_1c1_BE_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_BE_1c1_BE_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_BE_1c1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_BE_1c1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.ephemeral.size_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_BE_1c1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_BE_1c1_BE_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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1_BE_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_BE_1c1_BE_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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1_BE_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.usage_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_BE_1c1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_BE_1c1:
+ type: org.openecomp.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_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.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_BE_1c1_BE_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_BE_1c1:
+ type: org.openecomp.capabilities.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_BE_1c1:
+ type: org.openecomp.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_BE_1c1_BE_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_BE_1c1:
+ type: org.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_BE_1c1:
+ type: org.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:
+ 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_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ pd_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ all_pattern_attr_1:
+ type: string
+ description: all_pattern_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_nested1_pattern_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_port_1_nested1_pattern_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port_1_nested1_pattern_4:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port_2_nested1_pattern_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port_2_nested1_pattern_4:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_pd_nested1_pattern_4:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_pd_nested1_pattern_4:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1b_pd_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_pd_2:
+ 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
+ - dependency_server_1b_pd_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_pd_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.write.bytes.rate_server_1c2_oam_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_server_1c1_cmaui_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_1c2_oam_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_1c1_cmaui_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_pd_nested1_pattern_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_1c2_oam_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.capacity_server_1b_pd_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.capacity_server_1b_pd_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.usage_server_1c2_oam_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.requests_server_1c1_cmaui_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
+ feature_server_1c1_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_1c2_oam_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_1b_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c1_cmaui_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.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.capacity_server_pd_nested1_pattern_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.requests.rate_server_pd_nested1_pattern_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_1c2_oam_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.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.outgoing.packets.rate_oam_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_pd_server_port_1_nested1_pattern_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_server_pd_nested1_pattern_4:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_oam_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_server_1b_pd_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_server_pd_nested1_pattern_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_1b_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_ps_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_1c2_oam_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_1b_pd_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.rate_server_1c2_oam_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.requests_server_pd_nested1_pattern_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.write.bytes_server_pd_nested1_pattern_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.rate_server_1c2_oam_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_nested1_pattern_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
+ cpu.delta_server_pd_nested1_pattern_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
+ scalable_server_pd_nested1_pattern_4:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_server_1c2_oam_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_1b_pd_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.usage_server_pd_nested1_pattern_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.iops_server_1b_pd_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.bytes_pd_server_port_2_nested1_pattern_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
+ scalable_server_1c2_oam_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_1c2_oam_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_pd_nested1_pattern_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.requests_server_pd_nested1_pattern_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_pd_server_port_1_nested1_pattern_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_port_1_nested1_pattern_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.write.requests_server_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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.bytes_server_1c1_cmaui_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_1b_pd_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_1b_pd_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_server_1c2_oam_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_2_nested1_pattern_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.capacity_server_1c2_oam_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.capacity_server_pd_nested1_pattern_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.capacity_server_1c2_oam_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.requests.rate_server_1b_pd_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_server_1c2_oam_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_pd_nested1_pattern_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.write.requests.rate_server_1b_pd_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_oam_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_oam_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.rate_server_pd_nested1_pattern_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_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
+ os_server_pd_nested1_pattern_4:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_1c2_oam_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_server_1c2_oam_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_nested1_pattern_4:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_1c2_oam_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_1c2_oam_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.bytes_server_1c2_oam_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_1c2_oam_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
+ memory.resident_server_1c2_oam_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
+ memory.resident_server_1c2_oam_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_nested1_pattern_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_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.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.packets_pd_server_port_2_nested1_pattern_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
+ os_server_1c2_oam_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c1_cmaui_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_1c1_cmaui_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.resident_server_1b_pd_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_pd_nested1_pattern_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
+ os_server_1c2_oam_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_server_1b_pd_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.allocation_server_1c1_cmaui_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.allocation_server_1c1_cmaui_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_pd_nested1_pattern_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_server_1c2_oam_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_pd_nested1_pattern_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.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
+ vcpus_server_1c1_cmaui_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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_1b_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_oam_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
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_server_1c2_oam_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam_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.capacity_server_1c1_cmaui_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
+ instance_server_1c1_cmaui_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
+ instance_server_1c1_cmaui_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_pd_server_port_2_nested1_pattern_4:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pd_nested1_pattern_4:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_1c2_oam_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.requests.rate_server_1c2_oam_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_oam_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_1c2_oam_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_server_1b_pd_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_1c2_oam_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_pd_nested1_pattern_4:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1b_pd_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_oam_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_pd_nested1_pattern_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.bytes.rate_server_1c2_oam_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.rate_server_1c2_oam_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.root.size_server_1b_pd_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_1c1_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_1b_pd_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps_server_1b_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_1b_pd_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_server_1c1_cmaui_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_1c1_cmaui_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.capacity_server_1c1_cmaui_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_1c1_cmaui_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_ps_server_1b_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_1b_pd_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_1c1_cmaui_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
+ binding_ps_server_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.latency_server_1c2_oam_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.latency_server_1c2_oam_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_packet_external_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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.allocation_server_1b_pd_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.allocation_server_1b_pd_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_util_server_1c1_cmaui_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_1c2_oam_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_1c2_oam_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_server_1c1_cmaui_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.latency_server_pd_nested1_pattern_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_server_1b_pd_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
+ binding_pd_server_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_1b_pd_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.requests.rate_server_1b_pd_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_server_1c2_oam_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_pd_server_port_2_nested1_pattern_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_server_1c2_oam_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_1b_pd_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_oam_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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
+ binding_oam_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.resident_server_pd_nested1_pattern_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.rate_pd_server_port_2_nested1_pattern_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.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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.allocation_server_pd_nested1_pattern_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
+ host_server_1c1_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_1c1_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_1b_pd_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_1b_pd_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_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
+ disk.latency_server_1c2_oam_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_1_nested1_pattern_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.latency_server_1c2_oam_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.rate_server_1b_pd_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.rate_server_1b_pd_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_1b_pd_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
+ memory.usage_server_1c2_oam_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
+ memory.usage_server_1b_pd_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_ps_server_1b_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_server_1c2_oam_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_1c2_oam_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_1b_pd_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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c2_oam_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_1b_pd_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_pd_nested1_pattern_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.root.size_server_1c2_oam_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.resident_server_1c1_cmaui_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.root.size_server_1c2_oam_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
+ memory.resident_server_1c1_cmaui_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.requests_server_1b_pd_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_ps_server_1b_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_server_pd_nested1_pattern_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.write.requests_server_1b_pd_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_oam_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1c1_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_server_pd_nested1_pattern_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
+ instance_server_1c2_oam_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.bytes.rate_pd_server_port_1_nested1_pattern_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
+ instance_server_1c2_oam_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_oam_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
+ memory.usage_server_1c1_cmaui_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_1c1_cmaui_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
+ binding_server_1c1_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_1c1_cmaui_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
+ binding_server_1c1_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c2_oam_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_1c2_oam_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_nested1_pattern_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_server_1c2_oam_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1c2_oam_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_pd_nested1_pattern_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
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_1b_pd_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_1b_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_1b_pd_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.requests.rate_server_1b_pd_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
+ memory_server_1c1_cmaui_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.requests_server_1c2_oam_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.rate_server_pd_nested1_pattern_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_server_1c2_oam_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_1b_pd_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_pd_server_port_2_nested1_pattern_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.usage_server_1b_pd_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
+ vcpus_server_1c2_oam_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_1c2_oam_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.bytes.rate_server_1b_pd_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.rate_server_1b_pd_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_1b_pd_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_1b_pd_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_server_1b_pd_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_server_1c1_cmaui_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_server_1c1_cmaui_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.root.size_server_1c1_cmaui_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.root.size_server_1c1_cmaui_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_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.requests_server_1b_pd_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_1c1_cmaui_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_1c2_oam_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.requests_server_1b_pd_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.allocation_server_1c1_cmaui_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_1b_pd_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_1b_pd_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_server_1b_pd_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_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
+ cpu_util_server_1b_pd_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.bytes.rate_ps_server_1b_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_pd_nested1_pattern_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_server_1b_pd_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_ps_server_1b_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_server_1c1_cmaui_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_server_1c1_cmaui_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.requests.rate_server_1c1_cmaui_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_server_1b_pd_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_1c2_oam_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_1c1_cmaui_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_server_1c1_cmaui_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_1c2_oam_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_server_1b_pd_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
+ host_server_1c2_oam_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c2_oam_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_server_1b_pd_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_server_1c2_oam_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_pd_nested1_pattern_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.rate_oam_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_oam_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_1b_pd_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
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_pd_nested1_pattern_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_1b_pd_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_pd_server_1b_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_server_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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_server_1b_pd_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1b_pd_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_1c2_oam_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_1c2_oam_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.bytes_pd_server_1b_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_1c1_cmaui_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_1c1_cmaui_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.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
+ network.incoming.bytes_pd_server_port_1_nested1_pattern_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
+ cpu_server_1c1_cmaui_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_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_server_1c1_cmaui_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_pd_server_port_2_nested1_pattern_4:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_1c2_oam_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_server_1c2_oam_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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_1c1_cmaui_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_1c1_cmaui_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.rate_server_1c2_oam_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.bytes_server_1b_pd_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.delta_server_1c2_oam_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.bytes_server_1b_pd_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_pd_nested1_pattern_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.ephemeral.size_server_1b_pd_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.requests.rate_server_1c2_oam_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_server_1b_pd_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.usage_server_1c1_cmaui_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.usage_server_1c1_cmaui_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
+ end_point_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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.rate_server_pd_nested1_pattern_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
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_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_1b_pd_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.capacity_server_1b_pd_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.bytes.rate_oam_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
+ instance_server_1b_pd_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.capacity_server_1b_pd_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.capacity_server_1c1_cmaui_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_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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_1c1_cmaui_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_server_1c2_oam_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_server_1c2_oam_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_1b_pd_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_pd_nested1_pattern_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_server_1b_pd_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.requests.rate_server_1c1_cmaui_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_server_1b_pd_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_1c2_oam_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_1b_pd_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_server_1c2_oam_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.requests.rate_server_1c1_cmaui_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_ps_server_1b_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_pd_nested1_pattern_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_pd_server_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1c1_cmaui_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_1b_pd_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_1c1_cmaui_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
+ memory_server_1b_pd_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.delta_server_1c2_oam_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_1c2_oam_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_1b_pd_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_pd_server_port_1_nested1_pattern_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.usage_server_1b_pd_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_nested1_pattern_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.rate_server_1c2_oam_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.bytes_server_1c1_cmaui_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.bytes.rate_pd_server_1b_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_server_1c1_cmaui_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
+ feature_oam_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_oam_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1b_pd_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.latency_server_1b_pd_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_pd_server_1b_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_nested1_pattern_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_pd_server_port_1_nested1_pattern_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_1c1_cmaui_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
+ scalable_server_1c1_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_pd_nested1_pattern_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
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1c1_cmaui_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
+ scalable_server_1c1_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1c1_cmaui_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_1c1_cmaui_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_pd_nested1_pattern_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_oam_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_oam_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
+ scalable_server_1b_pd_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_1b_pd_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1b_pd_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.delta_server_1b_pd_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_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.bytes_ps_server_1b_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_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_1c1_cmaui_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_1c1_cmaui_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.requests_server_1b_pd_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_1b_pd_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_server_1c2_oam_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_server_1c2_oam_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
+ binding_pd_server_port_1_nested1_pattern_4:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_server_pd_nested1_pattern_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_pd_server_port_2_nested1_pattern_4:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_1c2_oam_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_1c2_oam_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.rd_server_1b_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ compute_rd_server_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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
+ compute_rd_server_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_rd_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_rd_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_rd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_rd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.usage_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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.capacity_rd_server_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_rd_server_1b_ps_server_b_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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.root.size_rd_server_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_rd_server_1b_ps_server_b_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_rd_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_rd_server_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_rd_server_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_rd_server_1b_ps_server_b_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_rd_server_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_rd_server_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
+ instance_rd_server_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.rate_rd_server_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_rd_server_1b_ps_server_b_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_rd_server_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_rd_server_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_rd_server_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_rd_server_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_rd_server_1b_ps_server_b_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_rd_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_rd_server_1b_ps_server_b_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_rd_server_1b_ps_server_b_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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.delta_rd_server_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
+ host_rd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_rd_server_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_rd_server_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_rd_server_1b_ps_server_b_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.iops_rd_server_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
+ endpoint_rd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_rd_server_1b_ps_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ memory.usage_rd_server_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
+ org.openecomp.resource.abstract.nodes.rd_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_rd_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
+ compute_rd_server_1b_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_rd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_rd_server_b_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_rd_server_1b_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_rd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_rd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_rd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ attributes:
+ rd_server_1b_accessIPv4:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_rd_server_1b_rd_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_rd_server_1b_rd_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_rd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_rd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ attachment_rd_server_1b_rd_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_rd_server_1b_rd_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_1b_rd_server_b_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_rd_server_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_rd_server_1b_rd_server_b_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_rd_server_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_rd_server_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_rd_server_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_rd_server_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_rd_server_1b_rd_server_b_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_rd_server_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.root.size_rd_server_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes_rd_server_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_rd_server_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_rd_server_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_rd_server_1b_rd_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.requests_rd_server_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
+ instance_rd_server_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.rate_rd_server_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_rd_server_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_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_rd_server_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_rd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_rd_server_1b_rd_server_b_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.resident_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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_rd_server_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.delta_rd_server_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
+ host_rd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_rd_server_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_rd_server_1b_rd_server_b_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_rd_server_1b_rd_server_b_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_rd_server_1b_rd_server_b_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_rd_server_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_rd_server_1b_rd_server_b_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.iops_rd_server_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
+ endpoint_rd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_rd_server_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
+ org.openecomp.resource.abstract.nodes.heat.nested-no-compute:
+ 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
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ 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
+ attributes:
+ no_compute_attr_1:
+ type: string
+ description: no_compute_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - binding_cmaui_port_2:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - binding_cmaui_port_1:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ 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
+ 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
+ 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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ 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
+ 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.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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ 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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ 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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_external_network:
+ type: tosca.capabilities.Node
+ 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
+ org.openecomp.resource.abstract.nodes.heat.pd_server_2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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: *id001
+ 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: *id002
+ 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.abstract.nodes.heat.pd_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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: *id001
+ 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: *id002
+ 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.abstract.nodes.cmaui_1c1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ attributes:
+ cmaui_1c1_accessIPv4:
+ type: string
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_cmaui_1c1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_cmaui_1c1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
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
new file mode 100644
index 0000000000..9051c994b6
--- /dev/null
+++ 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
@@ -0,0 +1,524 @@
+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:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of osm network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of osm network
+ rd_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ BE_1c1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: BE1, BE2 server names
+ entry_schema:
+ type: string
+ ps_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: BE1, BE2 server names
+ entry_schema:
+ type: string
+ osm_server_1c2_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: BE1, BE2 server names
+ entry_schema:
+ type: string
+ osm_server_1c2_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for BE server
+ rd_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ ps_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ rd_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ osm_server_1c2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for BE server
+ BE_osm_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ BE_1c1_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for BE server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ rd_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ ps_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ ps_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ BE_1c1_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for BE server
+ node_templates:
+ abstract_rd_server_1b_1:
+ type: org.openecomp.resource.abstract.nodes.rd_server_1b_1
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_b_port_replacement_policy:
+ - AUTO
+ compute_rd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_1b_ips
+ - 0
+ vm_flavor_name:
+ get_input: rd_server_1b_flavor
+ port_ps_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: rd_server_1b_image
+ compute_rd_server_1b_name:
+ - get_input:
+ - rd_server_1b_names
+ - 1
+ port_ps_server_b_port_network:
+ - get_input: net
+ service_template_filter:
+ substitute_service_template: Nested_rd_server_1b_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ dependsOn_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: jsa_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_all_patterns
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_pattern_4
+ relationship: tosca.relationships.DependsOn
+ abstract_rd_server_1b:
+ type: org.openecomp.resource.abstract.nodes.rd_server_1b
+ directives:
+ - substitutable
+ properties:
+ compute_rd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ vm_flavor_name:
+ get_input: rd_server_1b_flavor
+ port_rd_server_b_port_replacement_policy:
+ - AUTO
+ port_rd_server_b_port_network:
+ - get_input: net
+ vm_image_name:
+ get_input: rd_server_1b_image
+ port_rd_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_rd_server_1b_name:
+ - get_input:
+ - rd_server_1b_names
+ - 0
+ port_rd_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - rd_server_1b_ips
+ - 0
+ port_rd_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_rd_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ test_nested_pattern_4:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ p2:
+ get_attribute:
+ - test_nested_no_compute
+ - no_compute_attr_1
+ port_pd_server_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ test_nested_no_compute:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_attribute:
+ - test_nested_pattern_4
+ - pattern4_attr_1
+ service_template_filter:
+ substitute_service_template: nested-no-computeServiceTemplate.yaml
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_all_patterns
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_pattern_4
+ relationship: tosca.relationships.DependsOn
+ nested2_pattern_4:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ p2:
+ get_input: p2
+ port_pd_server_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_osm_server_1c2_0:
+ type: org.openecomp.resource.abstract.nodes.osm_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_osm_port_replacement_policy:
+ - AUTO
+ port_osm_port_network:
+ - packet_internal_network
+ compute_osm_server_1c2_name:
+ - get_input:
+ - osm_server_1c2_names
+ - 0
+ vm_flavor_name:
+ get_input: osm_server_1c2_flavor
+ port_osm_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_osm_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - BE_osm_ips
+ - 1
+ vm_image_name:
+ get_input: osm_server_1c2_image
+ port_osm_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_osm_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_osm_server_1c2_osm_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_osm_server_1c2_1:
+ type: org.openecomp.resource.abstract.nodes.osm_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_osm_port_replacement_policy:
+ - AUTO
+ port_osm_port_network:
+ - packet_external_network
+ compute_osm_server_1c2_name:
+ - get_input:
+ - osm_server_1c2_names
+ - 1
+ vm_flavor_name:
+ get_input: osm_server_1c2_flavor
+ port_osm_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_osm_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - BE_osm_ips
+ - 1
+ vm_image_name:
+ get_input: osm_server_1c2_image
+ port_osm_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_osm_server_1c2_metadata:
+ - connectivity_to_server_1c1_BE_1:
+ get_attribute:
+ - abstract_BE_1c1
+ - BE_1c1_accessIPv4
+ connectivity_to_pattern_4:
+ get_attribute:
+ - nested2_pattern_4
+ - pattern4_attr_1
+ connectivity_to_server_1c1_BE_2:
+ get_attribute:
+ - abstract_BE_1c1
+ - BE_1c1_accessIPv4
+ connectivity_to_rd_server_1b:
+ get_attribute:
+ - abstract_rd_server_1b
+ - rd_server_1b_accessIPv4
+ compute_osm_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_osm_server_1c2_osm_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_BE_1c1:
+ type: org.openecomp.resource.abstract.nodes.BE_1c1
+ directives:
+ - substitutable
+ properties:
+ vm_flavor_name:
+ get_input: BE_1c1_flavor
+ port_BE_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_BE_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - BE_osm_ips
+ - 0
+ compute_BE_1c1_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ port_BE_port_network:
+ - packet_internal_network
+ port_BE_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: BE_1c1_image
+ compute_BE_1c1_name:
+ - get_input:
+ - BE_1c1_names
+ - 1
+ - get_input:
+ - BE_1c1_names
+ - 0
+ port_BE_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_BE_1c1ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_BE_1c1_BE_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ test_nested_all_patterns:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_attribute:
+ - test_nested_pattern_4
+ - pattern4_attr_1
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2:
+ get_attribute:
+ - test_nested_no_compute
+ - no_compute_attr_1
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - dependsOn_network
+ - test_nested_pattern_4
+ - test_nested_no_compute
+ - test_nested_all_patterns
+ nested2_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2.yml
+ description: nested1
+ members:
+ - nested2_pattern_4
+ - packet_external_network
+ - packet_internal_network
+ - abstract_rd_server_1b
+ - abstract_rd_server_1b_1
+ - abstract_osm_server_1c2_0
+ - abstract_osm_server_1c2_1
+ - abstract_BE_1c1
+ outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value:
+ get_attribute:
+ - abstract_osm_server_1c2_1
+ - osm_server_1c2_accessIPv4
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/Nested_BE_1c1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_BE_1c1ServiceTemplate.yaml
new file mode 100644
index 0000000000..4b7e9aa977
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_BE_1c1ServiceTemplate.yaml
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_BE_1c1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.BE_1c1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_BE_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_BE_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_BE_port_order:
+ type: integer
+ required: true
+ port_BE_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_BE_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_BE_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_BE_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_BE_1c1_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_BE_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_BE_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_BE_port_network_role_tag:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ compute_BE_1c1_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_BE_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ BE_1c1_BE_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_BE_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_BE_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_BE_port_vlan_requirements
+ ip_requirements:
+ get_input: port_BE_port_ip_requirements
+ network_role_tag:
+ get_input: port_BE_port_network_role_tag
+ mac_requirements:
+ get_input: port_BE_port_mac_requirements
+ order:
+ get_input: port_BE_port_order
+ network_role:
+ get_input: port_BE_port_network_role
+ subnetpoolid:
+ get_input: port_BE_port_subnetpoolid
+ fixed_ips:
+ get_input: port_BE_port_fixed_ips
+ network:
+ get_input:
+ - port_BE_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: BE_1c1
+ relationship: tosca.relationships.network.BindsTo
+ BE_1c1:
+ type: org.openecomp.resource.vfc.nodes.heat.BE_1c1
+ properties:
+ availability_zone:
+ get_input:
+ - compute_BE_1c1_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_BE_1c1_name
+ - index_value
+ outputs:
+ BE_1c1_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - BE_1c1
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.BE_1c1
+ capabilities:
+ disk.ephemeral.size_BE_1c1:
+ - BE_1c1
+ - disk.ephemeral.size
+ disk.device.write.bytes_BE_1c1:
+ - BE_1c1
+ - disk.device.write.bytes
+ os_BE_1c1:
+ - BE_1c1
+ - os
+ endpoint_BE_1c1:
+ - BE_1c1
+ - endpoint
+ network.outpoing.packets_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.outpoing.packets
+ disk.device.write.requests_BE_1c1:
+ - BE_1c1
+ - disk.device.write.requests
+ disk.device.write.bytes.rate_BE_1c1:
+ - BE_1c1
+ - disk.device.write.bytes.rate
+ vcpus_BE_1c1:
+ - BE_1c1
+ - vcpus
+ network.incoming.packets.rate_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.incoming.packets.rate
+ attachment_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - attachment
+ network.incoming.bytes_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.incoming.bytes
+ disk.capacity_BE_1c1:
+ - BE_1c1
+ - disk.capacity
+ disk.read.bytes_BE_1c1:
+ - BE_1c1
+ - disk.read.bytes
+ host_BE_1c1:
+ - BE_1c1
+ - host
+ disk.usage_BE_1c1:
+ - BE_1c1
+ - disk.usage
+ disk.write.bytes_BE_1c1:
+ - BE_1c1
+ - disk.write.bytes
+ network.outgoing.packets.rate_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.outgoing.packets.rate
+ binding_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - binding
+ disk.device.usage_BE_1c1:
+ - BE_1c1
+ - disk.device.usage
+ disk.device.read.requests.rate_BE_1c1:
+ - BE_1c1
+ - disk.device.read.requests.rate
+ network.outgoing.bytes.rate_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.outgoing.bytes.rate
+ scalable_BE_1c1:
+ - BE_1c1
+ - scalable
+ disk.read.requests_BE_1c1:
+ - BE_1c1
+ - disk.read.requests
+ memory_BE_1c1:
+ - BE_1c1
+ - memory
+ disk.iops_BE_1c1:
+ - BE_1c1
+ - disk.iops
+ memory.usage_BE_1c1:
+ - BE_1c1
+ - memory.usage
+ network.incoming.packets_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.incoming.packets
+ disk.device.latency_BE_1c1:
+ - BE_1c1
+ - disk.device.latency
+ disk.device.read.requests_BE_1c1:
+ - BE_1c1
+ - disk.device.read.requests
+ memory.resident_BE_1c1:
+ - BE_1c1
+ - memory.resident
+ disk.allocation_BE_1c1:
+ - BE_1c1
+ - disk.allocation
+ disk.device.allocation_BE_1c1:
+ - BE_1c1
+ - disk.device.allocation
+ disk.device.write.requests.rate_BE_1c1:
+ - BE_1c1
+ - disk.device.write.requests.rate
+ instance_BE_1c1:
+ - BE_1c1
+ - instance
+ disk.read.bytes.rate_BE_1c1:
+ - BE_1c1
+ - disk.read.bytes.rate
+ disk.device.iops_BE_1c1:
+ - BE_1c1
+ - disk.device.iops
+ disk.root.size_BE_1c1:
+ - BE_1c1
+ - disk.root.size
+ network.incoming.bytes.rate_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.incoming.bytes.rate
+ cpu_BE_1c1:
+ - BE_1c1
+ - cpu
+ cpu.delta_BE_1c1:
+ - BE_1c1
+ - cpu.delta
+ disk.write.requests.rate_BE_1c1:
+ - BE_1c1
+ - disk.write.requests.rate
+ binding_BE_1c1:
+ - BE_1c1
+ - binding
+ feature_BE_1c1:
+ - BE_1c1
+ - feature
+ disk.write.bytes.rate_BE_1c1:
+ - BE_1c1
+ - disk.write.bytes.rate
+ disk.write.requests_BE_1c1:
+ - BE_1c1
+ - disk.write.requests
+ disk.device.read.bytes_BE_1c1:
+ - BE_1c1
+ - disk.device.read.bytes
+ feature_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - feature
+ disk.device.read.bytes.rate_BE_1c1:
+ - BE_1c1
+ - disk.device.read.bytes.rate
+ disk.device.capacity_BE_1c1:
+ - BE_1c1
+ - disk.device.capacity
+ network.outgoing.bytes_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - network.outgoing.bytes
+ disk.latency_BE_1c1:
+ - BE_1c1
+ - disk.latency
+ cpu_util_BE_1c1:
+ - BE_1c1
+ - cpu_util
+ requirements:
+ link_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - link
+ local_storage_BE_1c1:
+ - BE_1c1
+ - local_storage
+ dependency_BE_1c1_BE_port:
+ - BE_1c1_BE_port
+ - dependency
+ dependency_BE_1c1:
+ - BE_1c1
+ - dependency
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/Nested_cmaui_1c1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_cmaui_1c1ServiceTemplate.yaml
new file mode 100644
index 0000000000..9bdb0e301e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_cmaui_1c1ServiceTemplate.yaml
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_cmaui_1c1_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_1c1_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_name
+ - index_value
+ outputs:
+ cmaui_1c1_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - cmaui_1c1
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - binding
+ disk.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.iops
+ disk.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes
+ disk.device.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.capacity
+ endpoint_cmaui_1c1:
+ - cmaui_1c1
+ - endpoint
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets
+ network.outgoing.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes
+ network.outgoing.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes.rate
+ network.outpoing.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outpoing.packets
+ memory_cmaui_1c1:
+ - cmaui_1c1
+ - memory
+ disk.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.latency
+ disk.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes.rate
+ disk.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests.rate
+ disk.device.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.iops
+ disk.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests
+ disk.device.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes
+ cpu_util_cmaui_1c1:
+ - cmaui_1c1
+ - cpu_util
+ network.outgoing.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.packets.rate
+ disk.device.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes.rate
+ disk.ephemeral.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.ephemeral.size
+ instance_cmaui_1c1:
+ - cmaui_1c1
+ - instance
+ disk.device.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests
+ disk.device.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes.rate
+ cpu_cmaui_1c1:
+ - cmaui_1c1
+ - cpu
+ disk.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes
+ disk.device.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.usage
+ host_cmaui_1c1:
+ - cmaui_1c1
+ - host
+ disk.device.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests
+ disk.device.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.latency
+ network.incoming.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes
+ disk.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes.rate
+ memory.usage_cmaui_1c1:
+ - cmaui_1c1
+ - memory.usage
+ scalable_cmaui_1c1:
+ - cmaui_1c1
+ - scalable
+ disk.root.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.root.size
+ disk.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.capacity
+ os_cmaui_1c1:
+ - cmaui_1c1
+ - os
+ disk.device.read.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests.rate
+ feature_cmaui_1c1:
+ - cmaui_1c1
+ - feature
+ network.incoming.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets.rate
+ disk.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.allocation
+ disk.device.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.allocation
+ disk.device.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes
+ memory.resident_cmaui_1c1:
+ - cmaui_1c1
+ - memory.resident
+ attachment_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - attachment
+ disk.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.usage
+ disk.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.requests
+ binding_cmaui_1c1:
+ - cmaui_1c1
+ - binding
+ vcpus_cmaui_1c1:
+ - cmaui_1c1
+ - vcpus
+ feature_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - feature
+ cpu.delta_cmaui_1c1:
+ - cmaui_1c1
+ - cpu.delta
+ requirements:
+ dependency_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - dependency
+ dependency_cmaui_1c1:
+ - cmaui_1c1
+ - dependency
+ link_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - link
+ local_storage_cmaui_1c1:
+ - cmaui_1c1
+ - local_storage
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/Nested_oam_server_1c2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_oam_server_1c2ServiceTemplate.yaml
new file mode 100644
index 0000000000..37f21f7717
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_oam_server_1c2ServiceTemplate.yaml
@@ -0,0 +1,317 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server_1c2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_oam_server_1c2_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_oam_port_order:
+ type: integer
+ required: true
+ port_oam_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_oam_server_1c2_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ compute_oam_server_1c2_metadata:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_oam_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_oam_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_port_network_role:
+ type: string
+ required: true
+ node_templates:
+ oam_server_1c2:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server_1c2
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_1c2_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ metadata:
+ get_input:
+ - compute_oam_server_1c2_metadata
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_1c2_name
+ - index_value
+ oam_server_1c2_oam_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_oam_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_oam_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_oam_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_port_network_role_tag
+ mac_requirements:
+ get_input: port_oam_port_mac_requirements
+ order:
+ get_input: port_oam_port_order
+ network_role:
+ get_input: port_oam_port_network_role
+ subnetpoolid:
+ get_input: port_oam_port_subnetpoolid
+ fixed_ips:
+ get_input: port_oam_port_fixed_ips
+ network:
+ get_input:
+ - port_oam_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server_1c2
+ relationship: tosca.relationships.network.BindsTo
+ outputs:
+ oam_server_1c2_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - oam_server_1c2
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.usage
+ disk.device.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.latency
+ feature_oam_server_1c2:
+ - oam_server_1c2
+ - feature
+ disk.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.requests
+ disk.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes.rate
+ disk.device.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes.rate
+ network.outgoing.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.packets.rate
+ network.outpoing.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outpoing.packets
+ cpu_util_oam_server_1c2:
+ - oam_server_1c2
+ - cpu_util
+ disk.device.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes
+ disk.device.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.allocation
+ attachment_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - attachment
+ network.incoming.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes.rate
+ disk.root.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.root.size
+ disk.device.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.iops
+ disk.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes.rate
+ network.outgoing.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes
+ disk.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.allocation
+ disk.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes
+ network.incoming.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes.rate
+ vcpus_oam_server_1c2:
+ - oam_server_1c2
+ - vcpus
+ disk.device.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes.rate
+ network.incoming.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets
+ cpu_oam_server_1c2:
+ - oam_server_1c2
+ - cpu
+ disk.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests.rate
+ instance_oam_server_1c2:
+ - oam_server_1c2
+ - instance
+ host_oam_server_1c2:
+ - oam_server_1c2
+ - host
+ disk.device.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.capacity
+ disk.device.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests.rate
+ endpoint_oam_server_1c2:
+ - oam_server_1c2
+ - endpoint
+ disk.ephemeral.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.ephemeral.size
+ memory.resident_oam_server_1c2:
+ - oam_server_1c2
+ - memory.resident
+ memory_oam_server_1c2:
+ - oam_server_1c2
+ - memory
+ disk.device.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes
+ memory.usage_oam_server_1c2:
+ - oam_server_1c2
+ - memory.usage
+ disk.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.usage
+ network.incoming.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets.rate
+ binding_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - binding
+ os_oam_server_1c2:
+ - oam_server_1c2
+ - os
+ disk.device.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests
+ disk.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.latency
+ feature_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - feature
+ disk.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests
+ disk.device.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests
+ binding_oam_server_1c2:
+ - oam_server_1c2
+ - binding
+ scalable_oam_server_1c2:
+ - oam_server_1c2
+ - scalable
+ cpu.delta_oam_server_1c2:
+ - oam_server_1c2
+ - cpu.delta
+ disk.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes
+ disk.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.capacity
+ disk.device.read.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests.rate
+ disk.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.iops
+ requirements:
+ local_storage_oam_server_1c2:
+ - oam_server_1c2
+ - local_storage
+ dependency_oam_server_1c2:
+ - oam_server_1c2
+ - dependency
+ link_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - link
+ dependency_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - dependency
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/Nested_osm_server_1c2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_osm_server_1c2ServiceTemplate.yaml
new file mode 100644
index 0000000000..2164150c74
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_osm_server_1c2ServiceTemplate.yaml
@@ -0,0 +1,317 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_osm_server_1c2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.osm_server_1c2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_osm_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_osm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_osm_port_subnetpoolid:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_osm_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_osm_server_1c2_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_osm_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ vm_flavor_name:
+ type: string
+ required: true
+ port_osm_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_osm_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_osm_port_network_role_tag:
+ type: string
+ required: true
+ port_osm_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_osm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_osm_port_order:
+ type: integer
+ required: true
+ compute_osm_server_1c2_metadata:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_osm_server_1c2_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ osm_server_1c2_osm_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_osm_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_osm_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_osm_port_vlan_requirements
+ ip_requirements:
+ get_input: port_osm_port_ip_requirements
+ network_role_tag:
+ get_input: port_osm_port_network_role_tag
+ mac_requirements:
+ get_input: port_osm_port_mac_requirements
+ order:
+ get_input: port_osm_port_order
+ network_role:
+ get_input: port_osm_port_network_role
+ subnetpoolid:
+ get_input: port_osm_port_subnetpoolid
+ fixed_ips:
+ get_input: port_osm_port_fixed_ips
+ network:
+ get_input:
+ - port_osm_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: osm_server_1c2
+ relationship: tosca.relationships.network.BindsTo
+ osm_server_1c2:
+ type: org.openecomp.resource.vfc.nodes.heat.osm_server_1c2
+ properties:
+ availability_zone:
+ get_input:
+ - compute_osm_server_1c2_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ metadata:
+ get_input:
+ - compute_osm_server_1c2_metadata
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_osm_server_1c2_name
+ - index_value
+ outputs:
+ osm_server_1c2_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - osm_server_1c2
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.osm_server_1c2
+ capabilities:
+ endpoint_osm_server_1c2:
+ - osm_server_1c2
+ - endpoint
+ feature_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - feature
+ os_osm_server_1c2:
+ - osm_server_1c2
+ - os
+ disk.device.read.bytes.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.read.bytes.rate
+ disk.write.requests.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.write.requests.rate
+ disk.device.read.requests.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.read.requests.rate
+ disk.device.read.requests_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.read.requests
+ disk.device.iops_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.iops
+ disk.read.bytes.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.read.bytes.rate
+ host_osm_server_1c2:
+ - osm_server_1c2
+ - host
+ memory_osm_server_1c2:
+ - osm_server_1c2
+ - memory
+ cpu_util_osm_server_1c2:
+ - osm_server_1c2
+ - cpu_util
+ cpu_osm_server_1c2:
+ - osm_server_1c2
+ - cpu
+ disk.device.write.bytes.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.write.bytes.rate
+ disk.latency_osm_server_1c2:
+ - osm_server_1c2
+ - disk.latency
+ disk.read.requests_osm_server_1c2:
+ - osm_server_1c2
+ - disk.read.requests
+ memory.resident_osm_server_1c2:
+ - osm_server_1c2
+ - memory.resident
+ attachment_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - attachment
+ feature_osm_server_1c2:
+ - osm_server_1c2
+ - feature
+ disk.device.latency_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.latency
+ disk.device.write.requests_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.write.requests
+ network.outgoing.bytes_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.outgoing.bytes
+ disk.ephemeral.size_osm_server_1c2:
+ - osm_server_1c2
+ - disk.ephemeral.size
+ disk.allocation_osm_server_1c2:
+ - osm_server_1c2
+ - disk.allocation
+ binding_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - binding
+ disk.write.bytes_osm_server_1c2:
+ - osm_server_1c2
+ - disk.write.bytes
+ disk.capacity_osm_server_1c2:
+ - osm_server_1c2
+ - disk.capacity
+ network.incoming.bytes_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.incoming.bytes
+ disk.write.requests_osm_server_1c2:
+ - osm_server_1c2
+ - disk.write.requests
+ disk.iops_osm_server_1c2:
+ - osm_server_1c2
+ - disk.iops
+ binding_osm_server_1c2:
+ - osm_server_1c2
+ - binding
+ network.incoming.packets.rate_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.incoming.packets.rate
+ scalable_osm_server_1c2:
+ - osm_server_1c2
+ - scalable
+ cpu.delta_osm_server_1c2:
+ - osm_server_1c2
+ - cpu.delta
+ vcpus_osm_server_1c2:
+ - osm_server_1c2
+ - vcpus
+ disk.read.bytes_osm_server_1c2:
+ - osm_server_1c2
+ - disk.read.bytes
+ disk.root.size_osm_server_1c2:
+ - osm_server_1c2
+ - disk.root.size
+ disk.usage_osm_server_1c2:
+ - osm_server_1c2
+ - disk.usage
+ memory.usage_osm_server_1c2:
+ - osm_server_1c2
+ - memory.usage
+ network.outpoing.packets_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.outpoing.packets
+ disk.write.bytes.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.write.bytes.rate
+ disk.device.allocation_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.allocation
+ disk.device.usage_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.usage
+ network.outgoing.packets.rate_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.outgoing.packets.rate
+ disk.device.read.bytes_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.read.bytes
+ disk.device.capacity_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.capacity
+ network.outgoing.bytes.rate_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.outgoing.bytes.rate
+ disk.device.write.bytes_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.write.bytes
+ disk.device.write.requests.rate_osm_server_1c2:
+ - osm_server_1c2
+ - disk.device.write.requests.rate
+ network.incoming.bytes.rate_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.incoming.bytes.rate
+ instance_osm_server_1c2:
+ - osm_server_1c2
+ - instance
+ network.incoming.packets_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - network.incoming.packets
+ requirements:
+ link_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - link
+ dependency_osm_server_1c2_osm_port:
+ - osm_server_1c2_osm_port
+ - dependency
+ local_storage_osm_server_1c2:
+ - osm_server_1c2
+ - local_storage
+ dependency_osm_server_1c2:
+ - osm_server_1c2
+ - dependency
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/Nested_pd_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_pd_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..ad427131e4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_pd_server_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_b_port_network_role:
+ type: string
+ required: true
+ port_ps_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_b_port_order:
+ type: integer
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server_1b_ps_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_b_port_order
+ network_role:
+ get_input: port_ps_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ capabilities:
+ disk.device.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes
+ host_pd_server_1b:
+ - pd_server_1b
+ - host
+ disk.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes.rate
+ disk.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.allocation
+ cpu.delta_pd_server_1b:
+ - pd_server_1b
+ - cpu.delta
+ disk.device.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests
+ feature_pd_server_1b:
+ - pd_server_1b
+ - feature
+ disk.device.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.device.iops
+ network.outgoing.bytes.rate_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.outgoing.bytes.rate
+ cpu_pd_server_1b:
+ - pd_server_1b
+ - cpu
+ binding_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - binding
+ disk.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests.rate
+ endpoint_pd_server_1b:
+ - pd_server_1b
+ - endpoint
+ disk.device.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.device.allocation
+ network.outgoing.bytes_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.outgoing.bytes
+ memory.usage_pd_server_1b:
+ - pd_server_1b
+ - memory.usage
+ memory_pd_server_1b:
+ - pd_server_1b
+ - memory
+ disk.device.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.device.latency
+ disk.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes
+ disk.device.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.device.usage
+ network.outpoing.packets_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.outpoing.packets
+ disk.device.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests
+ feature_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - feature
+ disk.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.latency
+ disk.ephemeral.size_pd_server_1b:
+ - pd_server_1b
+ - disk.ephemeral.size
+ network.outgoing.packets.rate_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.outgoing.packets.rate
+ scalable_pd_server_1b:
+ - pd_server_1b
+ - scalable
+ disk.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests
+ disk.device.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes.rate
+ disk.root.size_pd_server_1b:
+ - pd_server_1b
+ - disk.root.size
+ disk.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.iops
+ network.incoming.packets.rate_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.incoming.packets.rate
+ network.incoming.packets_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.incoming.packets
+ disk.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes
+ os_pd_server_1b:
+ - pd_server_1b
+ - os
+ vcpus_pd_server_1b:
+ - pd_server_1b
+ - vcpus
+ instance_pd_server_1b:
+ - pd_server_1b
+ - instance
+ binding_pd_server_1b:
+ - pd_server_1b
+ - binding
+ cpu_util_pd_server_1b:
+ - pd_server_1b
+ - cpu_util
+ memory.resident_pd_server_1b:
+ - pd_server_1b
+ - memory.resident
+ network.incoming.bytes_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.incoming.bytes
+ disk.device.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests.rate
+ disk.device.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.device.capacity
+ disk.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.read.requests
+ attachment_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - attachment
+ disk.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.capacity
+ disk.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.usage
+ network.incoming.bytes.rate_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - network.incoming.bytes.rate
+ disk.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests.rate
+ requirements:
+ dependency_pd_server_1b:
+ - pd_server_1b
+ - dependency
+ local_storage_pd_server_1b:
+ - pd_server_1b
+ - local_storage
+ dependency_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - dependency
+ link_pd_server_1b_ps_server_b_port:
+ - pd_server_1b_ps_server_b_port
+ - link
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/Nested_pd_server_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_pd_server_1b_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..76cccdb7d7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_pd_server_1b_1ServiceTemplate.yaml
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_1b_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_order:
+ type: integer
+ required: true
+ port_pd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ pd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_1b_name
+ - index_value
+ pd_server_1b_pd_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_b_port_order
+ network_role:
+ get_input: port_pd_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ outputs:
+ pd_server_1b_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_1b
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_1b_1
+ capabilities:
+ disk.device.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes
+ host_pd_server_1b:
+ - pd_server_1b
+ - host
+ disk.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes.rate
+ feature_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - feature
+ disk.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.allocation
+ network.incoming.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes.rate
+ binding_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - binding
+ cpu.delta_pd_server_1b:
+ - pd_server_1b
+ - cpu.delta
+ disk.device.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests
+ feature_pd_server_1b:
+ - pd_server_1b
+ - feature
+ disk.device.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.device.iops
+ cpu_pd_server_1b:
+ - pd_server_1b
+ - cpu
+ disk.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests.rate
+ endpoint_pd_server_1b:
+ - pd_server_1b
+ - endpoint
+ disk.device.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.device.allocation
+ memory.usage_pd_server_1b:
+ - pd_server_1b
+ - memory.usage
+ attachment_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - attachment
+ memory_pd_server_1b:
+ - pd_server_1b
+ - memory
+ disk.device.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.device.latency
+ disk.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes
+ disk.device.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.device.usage
+ disk.device.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests
+ network.incoming.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes.rate
+ disk.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.latency
+ disk.ephemeral.size_pd_server_1b:
+ - pd_server_1b
+ - disk.ephemeral.size
+ scalable_pd_server_1b:
+ - pd_server_1b
+ - scalable
+ disk.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests
+ disk.device.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes.rate
+ disk.root.size_pd_server_1b:
+ - pd_server_1b
+ - disk.root.size
+ disk.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.iops
+ network.incoming.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets.rate
+ disk.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes
+ os_pd_server_1b:
+ - pd_server_1b
+ - os
+ vcpus_pd_server_1b:
+ - pd_server_1b
+ - vcpus
+ instance_pd_server_1b:
+ - pd_server_1b
+ - instance
+ binding_pd_server_1b:
+ - pd_server_1b
+ - binding
+ cpu_util_pd_server_1b:
+ - pd_server_1b
+ - cpu_util
+ memory.resident_pd_server_1b:
+ - pd_server_1b
+ - memory.resident
+ network.incoming.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests.rate
+ disk.device.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.device.capacity
+ disk.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.read.requests
+ network.outpoing.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outpoing.packets
+ disk.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.capacity
+ disk.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.usage
+ network.outgoing.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes
+ disk.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests.rate
+ requirements:
+ dependency_pd_server_1b:
+ - pd_server_1b
+ - dependency
+ local_storage_pd_server_1b:
+ - pd_server_1b
+ - local_storage
+ link_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - link
+ dependency_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - dependency
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/Nested_rd_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_rd_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..f8b5ba23ac
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_rd_server_1bServiceTemplate.yaml
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_rd_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.rd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_rd_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_rd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_rd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_rd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_rd_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_rd_server_b_port_order:
+ type: integer
+ required: true
+ port_rd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_rd_server_b_port_network_role:
+ type: string
+ required: true
+ compute_rd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_rd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_rd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_rd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_rd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ rd_server_1b_rd_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_rd_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_rd_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_rd_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_rd_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_rd_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_rd_server_b_port_mac_requirements
+ order:
+ get_input: port_rd_server_b_port_order
+ network_role:
+ get_input: port_rd_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_rd_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_rd_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_rd_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: rd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ rd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.rd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_rd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_rd_server_1b_name
+ - index_value
+ outputs:
+ rd_server_1b_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - rd_server_1b
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.rd_server_1b
+ capabilities:
+ attachment_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - attachment
+ feature_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - feature
+ disk.usage_rd_server_1b:
+ - rd_server_1b
+ - disk.usage
+ cpu_util_rd_server_1b:
+ - rd_server_1b
+ - cpu_util
+ vcpus_rd_server_1b:
+ - rd_server_1b
+ - vcpus
+ disk.device.write.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.requests
+ network.incoming.bytes_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.incoming.bytes
+ disk.device.write.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.bytes
+ network.outgoing.bytes.rate_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.outgoing.bytes.rate
+ disk.capacity_rd_server_1b:
+ - rd_server_1b
+ - disk.capacity
+ disk.write.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.write.requests
+ scalable_rd_server_1b:
+ - rd_server_1b
+ - scalable
+ disk.device.usage_rd_server_1b:
+ - rd_server_1b
+ - disk.device.usage
+ disk.device.latency_rd_server_1b:
+ - rd_server_1b
+ - disk.device.latency
+ disk.device.read.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.bytes.rate
+ network.incoming.bytes.rate_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.incoming.bytes.rate
+ disk.read.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.read.bytes.rate
+ disk.root.size_rd_server_1b:
+ - rd_server_1b
+ - disk.root.size
+ disk.device.write.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.requests.rate
+ os_rd_server_1b:
+ - rd_server_1b
+ - os
+ disk.device.read.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.bytes
+ disk.device.read.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.requests.rate
+ disk.device.allocation_rd_server_1b:
+ - rd_server_1b
+ - disk.device.allocation
+ binding_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - binding
+ disk.device.read.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.requests
+ instance_rd_server_1b:
+ - rd_server_1b
+ - instance
+ disk.write.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.write.bytes.rate
+ memory_rd_server_1b:
+ - rd_server_1b
+ - memory
+ disk.write.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.write.bytes
+ binding_rd_server_1b:
+ - rd_server_1b
+ - binding
+ disk.read.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.read.bytes
+ feature_rd_server_1b:
+ - rd_server_1b
+ - feature
+ network.incoming.packets.rate_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.incoming.packets.rate
+ memory.resident_rd_server_1b:
+ - rd_server_1b
+ - memory.resident
+ disk.read.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.read.requests
+ disk.ephemeral.size_rd_server_1b:
+ - rd_server_1b
+ - disk.ephemeral.size
+ disk.latency_rd_server_1b:
+ - rd_server_1b
+ - disk.latency
+ disk.write.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.write.requests.rate
+ disk.device.write.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.bytes.rate
+ disk.device.iops_rd_server_1b:
+ - rd_server_1b
+ - disk.device.iops
+ cpu_rd_server_1b:
+ - rd_server_1b
+ - cpu
+ cpu.delta_rd_server_1b:
+ - rd_server_1b
+ - cpu.delta
+ host_rd_server_1b:
+ - rd_server_1b
+ - host
+ disk.device.capacity_rd_server_1b:
+ - rd_server_1b
+ - disk.device.capacity
+ network.outgoing.packets.rate_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.incoming.packets
+ network.outpoing.packets_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.outpoing.packets
+ disk.allocation_rd_server_1b:
+ - rd_server_1b
+ - disk.allocation
+ network.outgoing.bytes_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - network.outgoing.bytes
+ disk.iops_rd_server_1b:
+ - rd_server_1b
+ - disk.iops
+ endpoint_rd_server_1b:
+ - rd_server_1b
+ - endpoint
+ memory.usage_rd_server_1b:
+ - rd_server_1b
+ - memory.usage
+ requirements:
+ dependency_rd_server_1b:
+ - rd_server_1b
+ - dependency
+ local_storage_rd_server_1b:
+ - rd_server_1b
+ - local_storage
+ link_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - link
+ dependency_rd_server_1b_rd_server_b_port:
+ - rd_server_1b_rd_server_b_port
+ - dependency
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/Nested_rd_server_1b_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_rd_server_1b_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..c59f8cefaa
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/Nested_rd_server_1b_1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_rd_server_1b_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.rd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_rd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_b_port_network_role:
+ type: string
+ required: true
+ port_ps_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_b_port_order:
+ type: integer
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_b_port_network_role_tag:
+ type: string
+ required: true
+ compute_rd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ rd_server_1b_ps_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_b_port_order
+ network_role:
+ get_input: port_ps_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: rd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ rd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.rd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_rd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_rd_server_1b_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.rd_server_1b_1
+ capabilities:
+ disk.usage_rd_server_1b:
+ - rd_server_1b
+ - disk.usage
+ cpu_util_rd_server_1b:
+ - rd_server_1b
+ - cpu_util
+ vcpus_rd_server_1b:
+ - rd_server_1b
+ - vcpus
+ disk.device.write.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.requests
+ disk.device.write.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.bytes
+ disk.capacity_rd_server_1b:
+ - rd_server_1b
+ - disk.capacity
+ disk.write.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.write.requests
+ scalable_rd_server_1b:
+ - rd_server_1b
+ - scalable
+ network.outgoing.packets.rate_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.outgoing.packets.rate
+ disk.device.usage_rd_server_1b:
+ - rd_server_1b
+ - disk.device.usage
+ disk.device.latency_rd_server_1b:
+ - rd_server_1b
+ - disk.device.latency
+ disk.device.read.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.bytes.rate
+ disk.read.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.read.bytes.rate
+ disk.root.size_rd_server_1b:
+ - rd_server_1b
+ - disk.root.size
+ network.incoming.packets.rate_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.incoming.packets.rate
+ disk.device.write.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.requests.rate
+ os_rd_server_1b:
+ - rd_server_1b
+ - os
+ attachment_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - attachment
+ disk.device.read.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.bytes
+ disk.device.read.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.requests.rate
+ network.incoming.bytes_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.incoming.bytes
+ disk.device.allocation_rd_server_1b:
+ - rd_server_1b
+ - disk.device.allocation
+ disk.device.read.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.device.read.requests
+ instance_rd_server_1b:
+ - rd_server_1b
+ - instance
+ disk.write.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.write.bytes.rate
+ network.outgoing.bytes_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.outgoing.bytes
+ memory_rd_server_1b:
+ - rd_server_1b
+ - memory
+ disk.write.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.write.bytes
+ binding_rd_server_1b:
+ - rd_server_1b
+ - binding
+ disk.read.bytes_rd_server_1b:
+ - rd_server_1b
+ - disk.read.bytes
+ feature_rd_server_1b:
+ - rd_server_1b
+ - feature
+ memory.resident_rd_server_1b:
+ - rd_server_1b
+ - memory.resident
+ disk.read.requests_rd_server_1b:
+ - rd_server_1b
+ - disk.read.requests
+ disk.ephemeral.size_rd_server_1b:
+ - rd_server_1b
+ - disk.ephemeral.size
+ network.incoming.packets_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.incoming.packets
+ feature_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - feature
+ network.outpoing.packets_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.outpoing.packets
+ network.incoming.bytes.rate_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.incoming.bytes.rate
+ disk.latency_rd_server_1b:
+ - rd_server_1b
+ - disk.latency
+ disk.write.requests.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.write.requests.rate
+ disk.device.write.bytes.rate_rd_server_1b:
+ - rd_server_1b
+ - disk.device.write.bytes.rate
+ disk.device.iops_rd_server_1b:
+ - rd_server_1b
+ - disk.device.iops
+ cpu_rd_server_1b:
+ - rd_server_1b
+ - cpu
+ cpu.delta_rd_server_1b:
+ - rd_server_1b
+ - cpu.delta
+ host_rd_server_1b:
+ - rd_server_1b
+ - host
+ disk.device.capacity_rd_server_1b:
+ - rd_server_1b
+ - disk.device.capacity
+ disk.allocation_rd_server_1b:
+ - rd_server_1b
+ - disk.allocation
+ network.outgoing.bytes.rate_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - network.outgoing.bytes.rate
+ disk.iops_rd_server_1b:
+ - rd_server_1b
+ - disk.iops
+ endpoint_rd_server_1b:
+ - rd_server_1b
+ - endpoint
+ binding_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - binding
+ memory.usage_rd_server_1b:
+ - rd_server_1b
+ - memory.usage
+ requirements:
+ link_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - link
+ dependency_rd_server_1b:
+ - rd_server_1b
+ - dependency
+ local_storage_rd_server_1b:
+ - rd_server_1b
+ - local_storage
+ dependency_rd_server_1b_ps_server_b_port:
+ - rd_server_1b_ps_server_b_port
+ - dependency
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/nested-no-computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested-no-computeServiceTemplate.yaml
new file mode 100644
index 0000000000..76061f4f9c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested-no-computeServiceTemplate.yaml
@@ -0,0 +1,252 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-no-compute
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_external_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_internal_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested-no-compute_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-no-compute.yml
+ description: nested1
+ members:
+ - cmaui_port_2
+ - packet_external_network
+ - packet_internal_network
+ - cmaui_port_1
+ outputs:
+ no_compute_attr_1:
+ description: no_compute_attr_1
+ value: packet_external_network
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+ capabilities:
+ network.incoming.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets
+ network.incoming.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets
+ network.incoming.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets.rate
+ feature_cmaui_port_1:
+ - cmaui_port_1
+ - feature
+ feature_cmaui_port_2:
+ - cmaui_port_2
+ - feature
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ attachment_cmaui_port_2:
+ - cmaui_port_2
+ - attachment
+ network.outgoing.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes
+ network.outgoing.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.packets.rate
+ network.outgoing.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes
+ attachment_cmaui_port_1:
+ - cmaui_port_1
+ - attachment
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ network.incoming.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes.rate
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ network.outpoing.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.outpoing.packets
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes.rate
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ network.incoming.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ network.incoming.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes
+ requirements:
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ dependency_cmaui_port_1:
+ - cmaui_port_1
+ - dependency
+ dependency_cmaui_port_2:
+ - cmaui_port_2
+ - dependency
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
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/nested-pattern-4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested-pattern-4ServiceTemplate.yaml
new file mode 100644
index 0000000000..72bdf7eba1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested-pattern-4ServiceTemplate.yaml
@@ -0,0 +1,425 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pattern-4
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ port_pd_server_port_1_order:
+ type: integer
+ required: true
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ port_pd_server_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_port_2_network_role:
+ type: string
+ required: true
+ port_pd_server_port_1_network_role:
+ type: string
+ required: true
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_subnetpoolid:
+ type: string
+ required: true
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_port_1_network_role_tag:
+ type: string
+ required: true
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ port_pd_server_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_order:
+ type: integer
+ required: true
+ port_pd_server_port_2_network_role_tag:
+ type: string
+ required: true
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ node_templates:
+ pd_server_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_port_1_ip_requirements
+ network_role:
+ get_input: port_pd_server_port_1_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ subnetpoolid:
+ get_input: port_pd_server_port_1_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_port_1_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_1_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_1_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_port_1_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_port_2_ip_requirements
+ network_role:
+ get_input: port_pd_server_port_2_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 1
+ subnetpoolid:
+ get_input: port_pd_server_port_2_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_port_2_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_2_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_2_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_port_2_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd
+ relationship: tosca.relationships.network.BindsTo
+ server_pd:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ flavor:
+ get_input: pd_server_flavor
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: pd_server_image
+ name:
+ get_input:
+ - pd_server_names
+ - 0
+ groups:
+ nested-pattern-4_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pattern-4.yml
+ description: nested1
+ members:
+ - pd_server_port_1
+ - pd_server_port_2
+ - server_pd
+ outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: server_pd
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.pd_server
+ capabilities:
+ disk.iops_server_pd:
+ - server_pd
+ - disk.iops
+ disk.device.read.bytes.rate_server_pd:
+ - server_pd
+ - disk.device.read.bytes.rate
+ memory.resident_server_pd:
+ - server_pd
+ - memory.resident
+ cpu_util_server_pd:
+ - server_pd
+ - cpu_util
+ network.incoming.bytes_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.bytes
+ network.incoming.bytes_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.bytes
+ disk.device.read.requests_server_pd:
+ - server_pd
+ - disk.device.read.requests
+ network.incoming.bytes.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.bytes.rate
+ disk.device.allocation_server_pd:
+ - server_pd
+ - disk.device.allocation
+ disk.usage_server_pd:
+ - server_pd
+ - disk.usage
+ disk.capacity_server_pd:
+ - server_pd
+ - disk.capacity
+ endpoint_server_pd:
+ - server_pd
+ - endpoint
+ disk.device.capacity_server_pd:
+ - server_pd
+ - disk.device.capacity
+ attachment_pd_server_port_2:
+ - pd_server_port_2
+ - attachment
+ network.incoming.packets_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.packets
+ attachment_pd_server_port_1:
+ - pd_server_port_1
+ - attachment
+ network.incoming.packets_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.packets
+ memory.usage_server_pd:
+ - server_pd
+ - memory.usage
+ disk.allocation_server_pd:
+ - server_pd
+ - disk.allocation
+ disk.read.bytes.rate_server_pd:
+ - server_pd
+ - disk.read.bytes.rate
+ memory_server_pd:
+ - server_pd
+ - memory
+ disk.device.write.requests_server_pd:
+ - server_pd
+ - disk.device.write.requests
+ disk.device.usage_server_pd:
+ - server_pd
+ - disk.device.usage
+ feature_pd_server_port_1:
+ - pd_server_port_1
+ - feature
+ feature_pd_server_port_2:
+ - pd_server_port_2
+ - feature
+ disk.read.bytes_server_pd:
+ - server_pd
+ - disk.read.bytes
+ disk.device.read.bytes_server_pd:
+ - server_pd
+ - disk.device.read.bytes
+ network.incoming.packets.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.packets.rate
+ instance_server_pd:
+ - server_pd
+ - instance
+ binding_pd_server_port_2:
+ - pd_server_port_2
+ - binding
+ binding_pd_server_port_1:
+ - pd_server_port_1
+ - binding
+ cpu.delta_server_pd:
+ - server_pd
+ - cpu.delta
+ host_server_pd:
+ - server_pd
+ - host
+ network.outpoing.packets_pd_server_port_1:
+ - pd_server_port_1
+ - network.outpoing.packets
+ vcpus_server_pd:
+ - server_pd
+ - vcpus
+ disk.ephemeral.size_server_pd:
+ - server_pd
+ - disk.ephemeral.size
+ network.outpoing.packets_pd_server_port_2:
+ - pd_server_port_2
+ - network.outpoing.packets
+ network.outgoing.packets.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.packets.rate
+ disk.latency_server_pd:
+ - server_pd
+ - disk.latency
+ network.outgoing.packets.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.bytes.rate_server_pd:
+ - server_pd
+ - disk.device.write.bytes.rate
+ disk.write.requests.rate_server_pd:
+ - server_pd
+ - disk.write.requests.rate
+ disk.write.requests_server_pd:
+ - server_pd
+ - disk.write.requests
+ network.outgoing.bytes_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.bytes
+ disk.device.iops_server_pd:
+ - server_pd
+ - disk.device.iops
+ network.outgoing.bytes_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.bytes
+ disk.read.requests_server_pd:
+ - server_pd
+ - disk.read.requests
+ os_server_pd:
+ - server_pd
+ - os
+ disk.device.latency_server_pd:
+ - server_pd
+ - disk.device.latency
+ binding_server_pd:
+ - server_pd
+ - binding
+ scalable_server_pd:
+ - server_pd
+ - scalable
+ network.outgoing.bytes.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.bytes.rate
+ disk.write.bytes_server_pd:
+ - server_pd
+ - disk.write.bytes
+ disk.write.bytes.rate_server_pd:
+ - server_pd
+ - disk.write.bytes.rate
+ feature_server_pd:
+ - server_pd
+ - feature
+ disk.root.size_server_pd:
+ - server_pd
+ - disk.root.size
+ disk.device.read.requests.rate_server_pd:
+ - server_pd
+ - disk.device.read.requests.rate
+ disk.device.write.requests.rate_server_pd:
+ - server_pd
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_server_pd:
+ - server_pd
+ - disk.device.write.bytes
+ cpu_server_pd:
+ - server_pd
+ - cpu
+ requirements:
+ local_storage_server_pd:
+ - server_pd
+ - local_storage
+ dependency_server_pd:
+ - server_pd
+ - dependency
+ link_pd_server_port_2:
+ - pd_server_port_2
+ - link
+ link_pd_server_port_1:
+ - pd_server_port_1
+ - link
+ dependency_pd_server_port_1:
+ - pd_server_port_1
+ - dependency
+ dependency_pd_server_port_2:
+ - pd_server_port_2
+ - dependency
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
new file mode 100644
index 0000000000..abadf775f4
--- /dev/null
+++ 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
@@ -0,0 +1,1669 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_1c1_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_1c1_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ ps_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ pd_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ ps_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ ps_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ oam_server_1c2_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ node_templates:
+ abstract_pd_server_1b_1:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1b_1
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_1b_name:
+ - get_input:
+ - pd_server_1b_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_server_1b_flavor
+ port_pd_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_1b_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_1b_image
+ port_pd_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_b_port_network:
+ - get_input: net
+ port_pd_server_b_port_replacement_policy:
+ - AUTO
+ compute_pd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1b_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_cmaui_1c1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - packet_internal_network
+ compute_cmaui_1c1_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ vm_flavor_name:
+ get_input: cmaui_1c1_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_name:
+ - get_input:
+ - cmaui_1c1_names
+ - 1
+ - get_input:
+ - cmaui_1c1_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ nested1_pattern_4:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ p2:
+ get_input: p2
+ port_pd_server_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ abstract_pd_server_1b:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_1b_name:
+ - get_input:
+ - pd_server_1b_names
+ - 1
+ port_ps_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_1b_ips
+ - 0
+ vm_flavor_name:
+ get_input: pd_server_1b_flavor
+ port_ps_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: pd_server_1b_image
+ port_ps_server_b_port_network:
+ - get_input: net
+ compute_pd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_oam_server_1c2_1:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 1
+ port_oam_port_network:
+ - packet_external_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ compute_oam_server_1c2_metadata:
+ - connectivity_to_pattern_4:
+ get_attribute:
+ - nested1_pattern_4
+ - pattern4_attr_1
+ connectivity_to_server_1c1_cmaui_1:
+ get_attribute:
+ - abstract_cmaui_1c1
+ - cmaui_1c1_accessIPv4
+ connectivity_to_pd_server_1b:
+ get_attribute:
+ - abstract_pd_server_1b_1
+ - pd_server_1b_accessIPv4
+ connectivity_to_server_1c1_cmaui_2:
+ get_attribute:
+ - abstract_cmaui_1c1
+ - cmaui_1c1_accessIPv4
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_oam_server_1c2_0:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 0
+ port_oam_port_network:
+ - packet_internal_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - nested1_pattern_4
+ - packet_external_network
+ - packet_internal_network
+ - abstract_oam_server_1c2_0
+ - abstract_oam_server_1c2_1
+ - abstract_pd_server_1b
+ - abstract_pd_server_1b_1
+ - abstract_cmaui_1c1
+ outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value:
+ get_attribute:
+ - abstract_oam_server_1c2_1
+ - oam_server_1c2_accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.device.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ disk.device.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ memory_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - memory_server_pd
+ disk.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.iops_oam_server_1c2
+ disk.capacity_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.capacity_pd_server_1b
+ disk.capacity_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.capacity_pd_server_1b
+ disk.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.usage_oam_server_1c2
+ disk.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ feature_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.usage_oam_server_1c2
+ network.incoming.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.incoming.bytes_pd_server_1b_pd_server_b_port
+ feature_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ disk.device.capacity_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.capacity_server_pd
+ disk.device.read.requests.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.read.requests.rate_server_pd
+ disk.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.iops_oam_server_1c2
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ network.outgoing.bytes_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.bytes_pd_server_port_1
+ binding_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - binding_server_pd
+ network.outgoing.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ cpu_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - cpu_pd_server_1b
+ feature_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - feature_server_pd
+ network.incoming.packets_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.incoming.packets_pd_server_1b_pd_server_b_port
+ attachment_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - attachment_pd_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.device.iops_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.iops_pd_server_1b
+ disk.device.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.read.requests_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.read.requests_server_pd
+ disk.device.write.bytes_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.write.bytes_server_pd
+ disk.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes.rate_oam_server_1c2
+ memory.usage_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - memory.usage_server_pd
+ cpu.delta_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - cpu.delta_server_pd
+ scalable_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - scalable_server_pd
+ disk.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes.rate_oam_server_1c2
+ cpu_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - cpu_pd_server_1b
+ disk.usage_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.usage_server_pd
+ disk.device.iops_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.iops_pd_server_1b
+ network.outgoing.bytes_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.bytes_pd_server_port_2
+ scalable_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - scalable_oam_server_1c2
+ scalable_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - scalable_oam_server_1c2
+ vcpus_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - vcpus_server_pd
+ disk.device.read.requests_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.read.requests_server_pd
+ feature_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - feature_pd_server_port_1
+ network.outpoing.packets_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outpoing.packets_pd_server_port_1
+ disk.device.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.write.bytes_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.write.bytes_pd_server_1b
+ disk.write.bytes_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.write.bytes_pd_server_1b
+ disk.device.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.usage_oam_server_1c2
+ network.incoming.packets.rate_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.packets.rate_pd_server_port_2
+ disk.device.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.capacity_oam_server_1c2
+ disk.capacity_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.capacity_server_pd
+ disk.device.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.capacity_oam_server_1c2
+ disk.device.write.requests.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.write.requests.rate_pd_server_1b
+ disk.device.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.usage_oam_server_1c2
+ disk.latency_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.latency_server_pd
+ disk.device.write.requests.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.write.requests.rate_pd_server_1b
+ network.outpoing.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ network.outpoing.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ disk.write.requests.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.write.requests.rate_server_pd
+ binding_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ os_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - os_server_pd
+ cpu_util_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_util_oam_server_1c2
+ cpu_util_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_util_oam_server_1c2
+ attachment_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - attachment_pd_server_port_1
+ memory_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory_oam_server_1c2
+ memory_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes_oam_server_1c2
+ memory.resident_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.resident_oam_server_1c2
+ memory.resident_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.resident_oam_server_1c2
+ network.incoming.bytes.rate_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.bytes.rate_pd_server_port_2
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ network.incoming.packets_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.packets_pd_server_port_2
+ os_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - os_oam_server_1c2
+ disk.device.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ disk.device.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ memory.resident_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - memory.resident_pd_server_1b
+ disk.allocation_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.allocation_server_pd
+ os_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - os_oam_server_1c2
+ memory.resident_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - memory.resident_pd_server_1b
+ disk.device.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ disk.device.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ disk.device.write.bytes.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.write.bytes.rate_server_pd
+ feature_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2
+ disk.root.size_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.root.size_server_pd
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ vcpus_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ feature_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ network.incoming.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.incoming.bytes.rate_pd_server_1b_pd_server_b_port
+ network.outgoing.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ feature_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2
+ network.outgoing.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ disk.device.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ instance_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ instance_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ attachment_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - attachment_pd_server_port_2
+ host_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - host_server_pd
+ disk.device.read.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests.rate_oam_server_1c2
+ disk.device.read.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests.rate_oam_server_1c2
+ attachment_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - attachment_oam_server_1c2_oam_port
+ disk.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.capacity_oam_server_1c2
+ os_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - os_pd_server_1b
+ disk.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.capacity_oam_server_1c2
+ endpoint_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - endpoint_server_pd
+ os_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - os_pd_server_1b
+ attachment_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - attachment_oam_server_1c2_oam_port
+ disk.device.read.bytes.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.read.bytes.rate_server_pd
+ disk.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes.rate_oam_server_1c2
+ disk.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes.rate_oam_server_1c2
+ disk.root.size_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.root.size_pd_server_1b
+ endpoint_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ host_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - host_pd_server_1b
+ network.outgoing.packets.rate_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.packets.rate_pd_server_1b_ps_server_b_port
+ disk.root.size_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.root.size_pd_server_1b
+ endpoint_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ disk.device.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ network.incoming.bytes_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes_pd_server_1b_ps_server_b_port
+ host_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - host_pd_server_1b
+ attachment_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - attachment_pd_server_1b_pd_server_b_port
+ vcpus_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ binding_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b_ps_server_b_port
+ disk.device.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.latency_oam_server_1c2
+ disk.device.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.latency_oam_server_1c2
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ disk.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.allocation_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.allocation_pd_server_1b
+ disk.allocation_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.allocation_pd_server_1b
+ cpu_util_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.allocation_oam_server_1c2
+ disk.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.allocation_oam_server_1c2
+ cpu_util_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.device.latency_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.latency_server_pd
+ disk.write.requests_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.write.requests_pd_server_1b
+ binding_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - binding_pd_server_1b_pd_server_b_port
+ disk.device.read.requests.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.read.requests.rate_pd_server_1b
+ disk.device.read.requests.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.read.requests.rate_pd_server_1b
+ disk.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes_oam_server_1c2
+ network.outpoing.packets_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outpoing.packets_pd_server_port_2
+ disk.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes_oam_server_1c2
+ disk.write.requests_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.write.requests_pd_server_1b
+ binding_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2_oam_port
+ disk.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ disk.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ binding_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2_oam_port
+ memory.resident_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - memory.resident_server_pd
+ network.outgoing.bytes.rate_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.bytes.rate_pd_server_port_2
+ disk.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ disk.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ disk.device.allocation_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.allocation_server_pd
+ host_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ host_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ vcpus_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - vcpus_pd_server_1b
+ vcpus_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - vcpus_pd_server_1b
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ disk.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.latency_oam_server_1c2
+ network.incoming.bytes.rate_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.bytes.rate_pd_server_port_1
+ disk.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.latency_oam_server_1c2
+ disk.read.bytes.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.read.bytes.rate_pd_server_1b
+ disk.read.bytes.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.read.bytes.rate_pd_server_1b
+ memory.usage_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - memory.usage_pd_server_1b
+ memory.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.usage_oam_server_1c2
+ memory.usage_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - memory.usage_pd_server_1b
+ network.outpoing.packets_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outpoing.packets_pd_server_1b_ps_server_b_port
+ memory.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.usage_oam_server_1c2
+ disk.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.requests_oam_server_1c2
+ disk.latency_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.latency_pd_server_1b
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ disk.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.requests_oam_server_1c2
+ disk.latency_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.latency_pd_server_1b
+ disk.device.usage_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.usage_server_pd
+ disk.root.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ disk.root.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ disk.device.write.requests_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.write.requests_pd_server_1b
+ network.incoming.bytes.rate_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes.rate_pd_server_1b_ps_server_b_port
+ cpu_util_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - cpu_util_server_pd
+ disk.device.write.requests_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.write.requests_pd_server_1b
+ network.incoming.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ os_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ os_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ disk.ephemeral.size_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.ephemeral.size_server_pd
+ instance_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - instance_oam_server_1c2
+ network.outgoing.bytes.rate_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.bytes.rate_pd_server_port_1
+ instance_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - instance_oam_server_1c2
+ network.incoming.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ memory.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ memory.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ binding_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ memory_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ binding_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ feature_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b_ps_server_b_port
+ disk.device.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.iops_oam_server_1c2
+ disk.device.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.iops_oam_server_1c2
+ network.incoming.bytes_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.bytes_pd_server_port_2
+ binding_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2
+ binding_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2
+ disk.device.write.requests.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.write.requests.rate_server_pd
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ disk.device.read.bytes.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes.rate_pd_server_1b
+ network.outgoing.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.outgoing.packets.rate_pd_server_1b_pd_server_b_port
+ disk.write.requests.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.write.requests.rate_pd_server_1b
+ disk.write.requests.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.write.requests.rate_pd_server_1b
+ memory_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ disk.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests_oam_server_1c2
+ disk.read.bytes.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.read.bytes.rate_server_pd
+ disk.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests_oam_server_1c2
+ disk.device.read.bytes.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.read.bytes.rate_pd_server_1b
+ network.outgoing.packets.rate_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.packets.rate_pd_server_port_2
+ disk.usage_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.usage_pd_server_1b
+ vcpus_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - vcpus_oam_server_1c2
+ vcpus_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - vcpus_oam_server_1c2
+ disk.write.bytes.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.write.bytes.rate_pd_server_1b
+ disk.write.bytes.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.write.bytes.rate_pd_server_1b
+ disk.device.allocation_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.allocation_pd_server_1b
+ disk.device.allocation_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.allocation_pd_server_1b
+ disk.usage_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.usage_pd_server_1b
+ disk.ephemeral.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.ephemeral.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.root.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ disk.root.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ disk.read.requests_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.read.requests_pd_server_1b
+ disk.device.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.device.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests_oam_server_1c2
+ disk.read.requests_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.read.requests_pd_server_1b
+ disk.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ disk.device.write.bytes.rate_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes.rate_pd_server_1b
+ disk.device.write.bytes.rate_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.write.bytes.rate_pd_server_1b
+ cpu_util_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - cpu_util_pd_server_1b
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ cpu_util_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - cpu_util_pd_server_1b
+ network.outgoing.bytes.rate_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes.rate_pd_server_1b_ps_server_b_port
+ disk.write.requests_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.write.requests_server_pd
+ feature_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - feature_pd_server_1b
+ network.incoming.packets.rate_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets.rate_pd_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ disk.device.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ feature_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b
+ disk.device.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests_oam_server_1c2
+ disk.device.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ disk.device.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests_oam_server_1c2
+ disk.device.write.bytes_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes_pd_server_1b
+ host_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - host_oam_server_1c2
+ disk.device.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests_oam_server_1c2
+ disk.device.write.bytes_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.write.bytes_pd_server_1b
+ host_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - host_oam_server_1c2
+ disk.device.read.bytes_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.read.bytes_server_pd
+ network.incoming.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ network.incoming.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ disk.iops_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.iops_pd_server_1b
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ cpu_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - cpu_server_pd
+ disk.iops_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.iops_pd_server_1b
+ network.outpoing.packets_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.outpoing.packets_pd_server_1b_pd_server_b_port
+ disk.device.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ disk.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ disk.device.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ binding_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b
+ binding_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - binding_pd_server_1b
+ disk.device.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.allocation_oam_server_1c2
+ disk.device.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.allocation_oam_server_1c2
+ network.outgoing.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.outgoing.bytes_pd_server_1b_pd_server_b_port
+ disk.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ disk.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ network.incoming.bytes_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.bytes_pd_server_port_1
+ cpu_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ cpu_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ binding_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - binding_pd_server_port_2
+ cpu_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_oam_server_1c2
+ cpu_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_oam_server_1c2
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ disk.device.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ disk.device.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ disk.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests.rate_oam_server_1c2
+ disk.device.read.bytes_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.read.bytes_pd_server_1b
+ cpu.delta_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu.delta_oam_server_1c2
+ disk.device.read.bytes_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes_pd_server_1b
+ disk.iops_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.iops_server_pd
+ disk.ephemeral.size_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.ephemeral.size_pd_server_1b
+ disk.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests.rate_oam_server_1c2
+ disk.ephemeral.size_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.ephemeral.size_pd_server_1b
+ disk.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ disk.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ network.incoming.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ network.incoming.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ disk.write.bytes.rate_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.write.bytes.rate_server_pd
+ attachment_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ network.outgoing.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ instance_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - instance_pd_server_1b
+ disk.device.capacity_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.capacity_pd_server_1b
+ network.outgoing.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ instance_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - instance_pd_server_1b
+ disk.device.capacity_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.capacity_pd_server_1b
+ disk.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ disk.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ disk.ephemeral.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.ephemeral.size_oam_server_1c2
+ disk.ephemeral.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.ephemeral.size_oam_server_1c2
+ disk.read.bytes_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.read.bytes_pd_server_1b
+ disk.device.write.requests_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.write.requests_server_pd
+ disk.read.bytes_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.read.bytes_pd_server_1b
+ disk.device.read.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ endpoint_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - endpoint_pd_server_1b
+ disk.device.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes_oam_server_1c2
+ endpoint_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - endpoint_pd_server_1b
+ disk.device.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes_oam_server_1c2
+ disk.device.read.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ network.incoming.packets_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets_pd_server_1b_ps_server_b_port
+ instance_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - instance_server_pd
+ feature_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - feature_pd_server_1b_pd_server_b_port
+ disk.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ memory_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - memory_pd_server_1b
+ disk.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ memory_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - memory_pd_server_1b
+ cpu.delta_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu.delta_oam_server_1c2
+ disk.device.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes.rate_oam_server_1c2
+ disk.device.usage_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.usage_pd_server_1b
+ network.outgoing.packets.rate_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.outgoing.packets.rate_pd_server_port_1
+ disk.device.usage_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.usage_pd_server_1b
+ network.incoming.packets.rate_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.packets.rate_pd_server_port_1
+ disk.device.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes.rate_oam_server_1c2
+ disk.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ network.outgoing.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port
+ disk.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ feature_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2_oam_port
+ feature_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2_oam_port
+ disk.device.latency_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.latency_pd_server_1b
+ disk.device.latency_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.latency_pd_server_1b
+ network.incoming.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - network.incoming.packets.rate_pd_server_1b_pd_server_b_port
+ feature_nested1_pattern_4:
+ - nested1_pattern_4
+ - feature
+ network.incoming.packets_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - network.incoming.packets_pd_server_port_1
+ disk.device.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ scalable_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ disk.read.bytes_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.read.bytes_server_pd
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ disk.device.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ scalable_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ cpu.delta_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ cpu.delta_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ disk.device.iops_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.device.iops_server_pd
+ network.incoming.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets_oam_server_1c2_oam_port
+ network.incoming.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets_oam_server_1c2_oam_port
+ scalable_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - scalable_pd_server_1b
+ scalable_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - scalable_pd_server_1b
+ cpu.delta_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - cpu.delta_pd_server_1b
+ cpu.delta_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - cpu.delta_pd_server_1b
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ network.outgoing.bytes_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes_pd_server_1b_ps_server_b_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ disk.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.device.read.requests_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - disk.device.read.requests_pd_server_1b
+ disk.device.read.requests_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - disk.device.read.requests_pd_server_1b
+ disk.device.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes_oam_server_1c2
+ disk.device.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes_oam_server_1c2
+ binding_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - binding_pd_server_port_1
+ disk.write.bytes_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - disk.write.bytes_server_pd
+ feature_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - feature_pd_server_port_2
+ endpoint_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - endpoint_oam_server_1c2
+ endpoint_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - endpoint_oam_server_1c2
+ requirements:
+ link_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - link_pd_server_1b_pd_server_b_port
+ dependency_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2_oam_port
+ dependency_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2_oam_port
+ dependency_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - dependency_pd_server_port_1
+ link_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - link_pd_server_port_2
+ link_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - link_pd_server_1b_ps_server_b_port
+ dependency_ps_server_1b_port:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b_ps_server_b_port
+ dependency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2
+ dependency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2
+ local_storage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - local_storage_oam_server_1c2
+ local_storage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - local_storage_oam_server_1c2
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - dependency_server_pd
+ dependency_pd_server_port_2_nested1_pattern_4:
+ - nested1_pattern_4
+ - dependency_pd_server_port_2
+ dependency_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
+ link_pd_server_port_1_nested1_pattern_4:
+ - nested1_pattern_4
+ - link_pd_server_port_1
+ dependency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ local_storage_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - local_storage_pd_server_1b
+ local_storage_server_pd_nested1_pattern_4:
+ - nested1_pattern_4
+ - local_storage_server_pd
+ local_storage_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - local_storage_pd_server_1b
+ dependency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ dependency_pd_server_1b_port:
+ - abstract_pd_server_1b_1
+ - dependency_pd_server_1b_pd_server_b_port
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ local_storage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ local_storage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ dependency_server_1b_pd_1:
+ - abstract_pd_server_1b_1
+ - dependency_pd_server_1b
+ dependency_nested1_pattern_4:
+ - nested1_pattern_4
+ - dependency
+ dependency_server_1b_pd_2:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/MANIFEST.json
new file mode 100644
index 0000000000..cc7753397c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/main.yml
new file mode 100644
index 0000000000..dc749bd088
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/main.yml
@@ -0,0 +1,16 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_all_patterns:
+ type: nested1.yml
+ properties:
+ p1: {get_param: jsa_name}
+ p2: image
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/nested1.yml
new file mode 100644
index 0000000000..065355486c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/in/nested1.yml
@@ -0,0 +1,181 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+ pd_server_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_1b_ips:
+ type: string
+ ps_server_1b_ips:
+ type: string
+
+resources:
+ pd_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1b_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_1b_names, 0]}
+ image: { get_param: pd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_1b_port }
+
+ server_1b_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_1b_names, 1]}
+ image: { get_param: ps_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_1b_port }
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1c1_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 0]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_1c1_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 1]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ oam_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ oam_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_1c2_oam_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 0]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_1 }
+
+ server_1c2_oam_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 1]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_2 }
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name \ 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/nestedAllNonNestedPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..ef3fc1ac7f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,3844 @@
+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.oam_server_1c2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_oam_server_1c2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server_1c2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_oam_server_1c2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_oam_server_1c2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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.pd_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.bytes_pd_server_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
+ host_pd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_pd_server_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_pd_server_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.rate_pd_server_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_pd_server_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
+ endpoint_pd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server_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_pd_server_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.root.size_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pd_server_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
+ instance_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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.usage_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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
+ org.openecomp.resource.abstract.nodes.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ cmaui_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ pd_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1b_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_2:
+ 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
+ - dependency_pd_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_1b_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.capacity_server_1b_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.rate_server_1c2_oam_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_server_1c1_cmaui_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_1c2_oam_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1b_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.iops_server_1c2_oam_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.usage_server_1c2_oam_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.requests_server_1c1_cmaui_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
+ feature_server_1c1_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_1c2_oam_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_1b_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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_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_1c2_oam_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.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.outgoing.packets.rate_oam_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_oam_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_server_1b_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_pd_server_1b_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_ps_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_1c2_oam_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.requests.rate_server_1c2_oam_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.bytes.rate_server_1b_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_1c2_oam_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_server_1c2_oam_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
+ scalable_server_1c2_oam_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1b_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
+ scalable_server_1c2_oam_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_1b_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_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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.bytes_server_1c1_cmaui_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.requests.rate_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.capacity_server_1c2_oam_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.capacity_server_1c2_oam_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_server_1b_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1b_pd:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_1c2_oam_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_1b_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_oam_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_oam_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
+ 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
+ memory.usage_server_1b_ps:
+ type: org.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_1b_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_1c2_oam_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_server_1c2_oam_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
+ memory_server_1c2_oam_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_1c2_oam_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.bytes_server_1c2_oam_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_1c2_oam_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
+ memory.resident_server_1c2_oam_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
+ memory.resident_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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
+ 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
+ os_server_1c2_oam_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c1_cmaui_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
+ instance_server_1b_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.iops_server_1c1_cmaui_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_server_1c2_oam_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_1b_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.allocation_server_1c1_cmaui_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.allocation_server_1c1_cmaui_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
+ feature_server_1c2_oam_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_1b_ps:
+ type: org.openecomp.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
+ vcpus_server_1c1_cmaui_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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_1b_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_oam_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
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_1b_ps:
+ type: org.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_1c2_oam_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam_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.capacity_server_1c1_cmaui_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
+ instance_server_1c1_cmaui_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_1b_ps:
+ type: org.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_1c1_cmaui_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.requests.rate_server_1c2_oam_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.requests.rate_server_1c2_oam_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_oam_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_1b_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_1c2_oam_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.capacity_server_1c2_oam_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_1b_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_oam_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_1b_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_1c2_oam_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.rate_server_1c2_oam_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_1c1_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps_server_1b_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_1c1_cmaui_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_1c1_cmaui_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.capacity_server_1c1_cmaui_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_1c1_cmaui_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_ps_server_1b_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_pd_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_1c1_cmaui_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
+ binding_ps_server_1b_port:
+ 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_1b_ps:
+ type: org.openecomp.capabilities.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_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.latency_server_1c2_oam_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_packet_external_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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.requests_server_1b_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.requests_server_1b_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_1c1_cmaui_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_1c2_oam_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_1c2_oam_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_server_1c1_cmaui_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.requests_server_1b_ps:
+ type: org.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_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes_server_1c2_oam_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_1c2_oam_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_1b_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_oam_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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_1b_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_oam_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.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_1c1_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_1b_ps:
+ type: org.openecomp.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
+ disk.allocation_server_1b_ps:
+ type: org.openecomp.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
+ disk.latency_server_1c2_oam_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_1c2_oam_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.requests_server_1b_ps:
+ type: org.openecomp.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_1b_ps:
+ type: org.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_1c2_oam_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_ps_server_1b_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_server_1c2_oam_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_1c2_oam_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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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_1c2_oam_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.resident_server_1c1_cmaui_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.root.size_server_1c2_oam_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
+ memory.resident_server_1c1_cmaui_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_ps_server_1b_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_oam_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1c1_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_1c2_oam_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_1c2_oam_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_oam_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
+ vcpus_server_1b_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.usage_server_1c1_cmaui_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.rate_server_1b_ps:
+ type: org.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_1c1_cmaui_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
+ binding_server_1c1_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_1c1_cmaui_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
+ binding_server_1c1_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c2_oam_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
+ vcpus_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.rate_server_1b_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_1c2_oam_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1c2_oam_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1b_pd:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_1b_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_1c1_cmaui_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.latency_server_1b_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_1c2_oam_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_server_1b_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_1c2_oam_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_1c2_oam_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_1c2_oam_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_1b_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1c1_cmaui_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.root.size_server_1c1_cmaui_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_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1b_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_1c2_oam_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_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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
+ network.outgoing.bytes.rate_ps_server_1b_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_ps_server_1b_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_server_1c1_cmaui_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_server_1c1_cmaui_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.requests.rate_server_1c1_cmaui_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_server_1b_ps:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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_1c1_cmaui_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_server_1c1_cmaui_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
+ host_server_1b_pd:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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_1b_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_1c2_oam_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c2_oam_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
+ memory_server_1b_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_1c2_oam_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_oam_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_1b_ps:
+ type: org.openecomp.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_oam_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
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_1b_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_server_1b_pd:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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.allocation_server_1b_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.root.size_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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_1c2_oam_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.bytes_pd_server_1b_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_server_1b_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_1c1_cmaui_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_1c1_cmaui_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.capacity_server_1b_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.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.root.size_server_1b_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_1c1_cmaui_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_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_server_1c1_cmaui_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_server_1c2_oam_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.capacity_server_1b_ps:
+ type: org.openecomp.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_1b_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_1c2_oam_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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_1c1_cmaui_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_1c1_cmaui_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
+ host_server_1b_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1c2_oam_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_1c2_oam_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_1b_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_1c2_oam_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_server_1c1_cmaui_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.usage_server_1c1_cmaui_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.allocation_server_1b_ps:
+ type: org.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_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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.requests.rate_server_1b_ps:
+ type: org.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
+ network.outgoing.bytes.rate_oam_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.bytes.rate_oam_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_1c1_cmaui_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_server_1c2_oam_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.rate_server_1b_ps:
+ type: org.openecomp.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_1c2_oam_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.requests.rate_server_1c1_cmaui_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_1c2_oam_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.bytes_server_1c2_oam_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.requests.rate_server_1c1_cmaui_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_ps_server_1b_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_1b_ps:
+ type: org.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_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1c1_cmaui_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
+ scalable_server_1b_ps:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1c1_cmaui_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_1c2_oam_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_1c2_oam_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_1c2_oam_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
+ scalable_server_1b_pd:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_1b_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.latency_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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.bytes.rate_pd_server_1b_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_server_1c1_cmaui_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
+ feature_oam_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_oam_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_1b_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_server_1c1_cmaui_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_server_1b_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
+ scalable_server_1c1_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1c1_cmaui_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
+ scalable_server_1c1_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1c1_cmaui_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_1b_pd:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1c1_cmaui_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_server_1b_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_oam_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_oam_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_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.bytes_ps_server_1b_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_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.read.bytes_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_1c1_cmaui_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.requests.rate_server_1b_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_1b_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_1c2_oam_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_server_1c2_oam_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
+ memory.resident_server_1b_ps:
+ type: org.openecomp.capabilities.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_1b_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_1c2_oam_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_1c2_oam_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.ps_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_ps_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes.rate_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_ps_server_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_ps_server_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_ps_server_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.capacity_ps_server_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_ps_server_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_ps_server_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_ps_server_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.root.size_ps_server_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_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_ps_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_ps_server_1b_ps_server_b_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_ps_server_1b_ps_server_b_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.resident_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b_ps_server_b_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_ps_server_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_ps_server_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
+ endpoint_ps_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_ps_server_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.delta_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_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
+ org.openecomp.resource.abstract.nodes.cmaui_1c1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_cmaui_1c1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_cmaui_1c1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..8db4155247
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/MainServiceTemplate.yaml
@@ -0,0 +1,35 @@
+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:
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested_all_patterns:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2: image
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested_all_patterns
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_cmaui_1c1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_cmaui_1c1ServiceTemplate.yaml
new file mode 100644
index 0000000000..cc211aeb7e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_cmaui_1c1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_cmaui_1c1_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_1c1_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - binding
+ disk.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.iops
+ disk.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes
+ disk.device.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.capacity
+ endpoint_cmaui_1c1:
+ - cmaui_1c1
+ - endpoint
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets
+ network.outgoing.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes
+ network.outgoing.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes.rate
+ network.outpoing.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outpoing.packets
+ memory_cmaui_1c1:
+ - cmaui_1c1
+ - memory
+ disk.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.latency
+ disk.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes.rate
+ disk.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests.rate
+ disk.device.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.iops
+ disk.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests
+ disk.device.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes
+ cpu_util_cmaui_1c1:
+ - cmaui_1c1
+ - cpu_util
+ network.outgoing.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.packets.rate
+ disk.device.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes.rate
+ disk.ephemeral.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.ephemeral.size
+ instance_cmaui_1c1:
+ - cmaui_1c1
+ - instance
+ disk.device.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests
+ disk.device.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes.rate
+ cpu_cmaui_1c1:
+ - cmaui_1c1
+ - cpu
+ disk.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes
+ disk.device.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.usage
+ host_cmaui_1c1:
+ - cmaui_1c1
+ - host
+ disk.device.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests
+ disk.device.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.latency
+ network.incoming.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes
+ disk.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes.rate
+ memory.usage_cmaui_1c1:
+ - cmaui_1c1
+ - memory.usage
+ scalable_cmaui_1c1:
+ - cmaui_1c1
+ - scalable
+ disk.root.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.root.size
+ disk.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.capacity
+ os_cmaui_1c1:
+ - cmaui_1c1
+ - os
+ disk.device.read.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests.rate
+ feature_cmaui_1c1:
+ - cmaui_1c1
+ - feature
+ network.incoming.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets.rate
+ disk.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.allocation
+ disk.device.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.allocation
+ disk.device.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes
+ memory.resident_cmaui_1c1:
+ - cmaui_1c1
+ - memory.resident
+ attachment_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - attachment
+ disk.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.usage
+ disk.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.requests
+ binding_cmaui_1c1:
+ - cmaui_1c1
+ - binding
+ vcpus_cmaui_1c1:
+ - cmaui_1c1
+ - vcpus
+ feature_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - feature
+ cpu.delta_cmaui_1c1:
+ - cmaui_1c1
+ - cpu.delta
+ requirements:
+ dependency_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - dependency
+ dependency_cmaui_1c1:
+ - cmaui_1c1
+ - dependency
+ link_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - link
+ local_storage_cmaui_1c1:
+ - cmaui_1c1
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_oam_server_1c2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_oam_server_1c2ServiceTemplate.yaml
new file mode 100644
index 0000000000..c07068f1fe
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_oam_server_1c2ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server_1c2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_oam_server_1c2_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_oam_port_order:
+ type: integer
+ required: true
+ port_oam_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_oam_server_1c2_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_oam_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_oam_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_port_network_role:
+ type: string
+ required: true
+ node_templates:
+ oam_server_1c2:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server_1c2
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_1c2_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_1c2_name
+ - index_value
+ oam_server_1c2_oam_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_oam_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_oam_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_oam_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_port_network_role_tag
+ mac_requirements:
+ get_input: port_oam_port_mac_requirements
+ order:
+ get_input: port_oam_port_order
+ network_role:
+ get_input: port_oam_port_network_role
+ subnetpoolid:
+ get_input: port_oam_port_subnetpoolid
+ fixed_ips:
+ get_input: port_oam_port_fixed_ips
+ network:
+ get_input:
+ - port_oam_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server_1c2
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.usage
+ disk.device.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.latency
+ feature_oam_server_1c2:
+ - oam_server_1c2
+ - feature
+ disk.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.requests
+ disk.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes.rate
+ disk.device.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes.rate
+ network.outgoing.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.packets.rate
+ network.outpoing.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outpoing.packets
+ cpu_util_oam_server_1c2:
+ - oam_server_1c2
+ - cpu_util
+ disk.device.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes
+ disk.device.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.allocation
+ attachment_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - attachment
+ network.incoming.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes.rate
+ disk.root.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.root.size
+ disk.device.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.iops
+ disk.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes.rate
+ network.outgoing.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes
+ disk.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.allocation
+ disk.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes
+ network.incoming.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes.rate
+ vcpus_oam_server_1c2:
+ - oam_server_1c2
+ - vcpus
+ disk.device.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes.rate
+ network.incoming.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets
+ cpu_oam_server_1c2:
+ - oam_server_1c2
+ - cpu
+ disk.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests.rate
+ instance_oam_server_1c2:
+ - oam_server_1c2
+ - instance
+ host_oam_server_1c2:
+ - oam_server_1c2
+ - host
+ disk.device.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.capacity
+ disk.device.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests.rate
+ endpoint_oam_server_1c2:
+ - oam_server_1c2
+ - endpoint
+ disk.ephemeral.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.ephemeral.size
+ memory.resident_oam_server_1c2:
+ - oam_server_1c2
+ - memory.resident
+ memory_oam_server_1c2:
+ - oam_server_1c2
+ - memory
+ disk.device.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes
+ memory.usage_oam_server_1c2:
+ - oam_server_1c2
+ - memory.usage
+ disk.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.usage
+ network.incoming.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets.rate
+ binding_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - binding
+ os_oam_server_1c2:
+ - oam_server_1c2
+ - os
+ disk.device.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests
+ disk.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.latency
+ feature_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - feature
+ disk.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests
+ disk.device.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests
+ binding_oam_server_1c2:
+ - oam_server_1c2
+ - binding
+ scalable_oam_server_1c2:
+ - oam_server_1c2
+ - scalable
+ cpu.delta_oam_server_1c2:
+ - oam_server_1c2
+ - cpu.delta
+ disk.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes
+ disk.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.capacity
+ disk.device.read.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests.rate
+ disk.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.iops
+ requirements:
+ local_storage_oam_server_1c2:
+ - oam_server_1c2
+ - local_storage
+ dependency_oam_server_1c2:
+ - oam_server_1c2
+ - dependency
+ link_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - link
+ dependency_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_pd_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_pd_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..0f30620893
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_pd_server_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_order:
+ type: integer
+ required: true
+ port_pd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ pd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_1b_name
+ - index_value
+ pd_server_1b_pd_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_b_port_order
+ network_role:
+ get_input: port_pd_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ capabilities:
+ disk.device.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes
+ host_pd_server_1b:
+ - pd_server_1b
+ - host
+ disk.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes.rate
+ feature_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - feature
+ disk.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.allocation
+ network.incoming.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes.rate
+ binding_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - binding
+ cpu.delta_pd_server_1b:
+ - pd_server_1b
+ - cpu.delta
+ disk.device.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests
+ feature_pd_server_1b:
+ - pd_server_1b
+ - feature
+ disk.device.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.device.iops
+ cpu_pd_server_1b:
+ - pd_server_1b
+ - cpu
+ disk.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests.rate
+ endpoint_pd_server_1b:
+ - pd_server_1b
+ - endpoint
+ disk.device.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.device.allocation
+ memory.usage_pd_server_1b:
+ - pd_server_1b
+ - memory.usage
+ attachment_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - attachment
+ memory_pd_server_1b:
+ - pd_server_1b
+ - memory
+ disk.device.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.device.latency
+ disk.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes
+ disk.device.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.device.usage
+ disk.device.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests
+ network.incoming.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes.rate
+ disk.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.latency
+ disk.ephemeral.size_pd_server_1b:
+ - pd_server_1b
+ - disk.ephemeral.size
+ scalable_pd_server_1b:
+ - pd_server_1b
+ - scalable
+ disk.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests
+ disk.device.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes.rate
+ disk.root.size_pd_server_1b:
+ - pd_server_1b
+ - disk.root.size
+ disk.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.iops
+ network.incoming.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets.rate
+ disk.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes
+ os_pd_server_1b:
+ - pd_server_1b
+ - os
+ vcpus_pd_server_1b:
+ - pd_server_1b
+ - vcpus
+ instance_pd_server_1b:
+ - pd_server_1b
+ - instance
+ binding_pd_server_1b:
+ - pd_server_1b
+ - binding
+ cpu_util_pd_server_1b:
+ - pd_server_1b
+ - cpu_util
+ memory.resident_pd_server_1b:
+ - pd_server_1b
+ - memory.resident
+ network.incoming.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests.rate
+ disk.device.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.device.capacity
+ disk.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.read.requests
+ network.outpoing.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outpoing.packets
+ disk.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.capacity
+ disk.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.usage
+ network.outgoing.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes
+ disk.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests.rate
+ requirements:
+ dependency_pd_server_1b:
+ - pd_server_1b
+ - dependency
+ local_storage_pd_server_1b:
+ - pd_server_1b
+ - local_storage
+ link_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - link
+ dependency_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_ps_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_ps_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..12e869e022
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/Nested_ps_server_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_b_port_network_role:
+ type: string
+ required: true
+ port_ps_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_b_port_order:
+ type: integer
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ ps_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_1b_name
+ - index_value
+ ps_server_1b_ps_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_b_port_order
+ network_role:
+ get_input: port_ps_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server_1b
+ capabilities:
+ disk.write.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.write.bytes.rate
+ disk.device.usage_ps_server_1b:
+ - ps_server_1b
+ - disk.device.usage
+ disk.device.allocation_ps_server_1b:
+ - ps_server_1b
+ - disk.device.allocation
+ disk.device.write.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.requests
+ cpu_util_ps_server_1b:
+ - ps_server_1b
+ - cpu_util
+ scalable_ps_server_1b:
+ - ps_server_1b
+ - scalable
+ disk.device.read.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_ps_server_1b:
+ - ps_server_1b
+ - disk.device.latency
+ disk.device.iops_ps_server_1b:
+ - ps_server_1b
+ - disk.device.iops
+ disk.device.capacity_ps_server_1b:
+ - ps_server_1b
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.packets.rate
+ instance_ps_server_1b:
+ - ps_server_1b
+ - instance
+ cpu_ps_server_1b:
+ - ps_server_1b
+ - cpu
+ disk.device.write.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.bytes
+ disk.read.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.read.bytes.rate
+ disk.device.read.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.requests
+ network.incoming.bytes.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.bytes.rate
+ host_ps_server_1b:
+ - ps_server_1b
+ - host
+ disk.usage_ps_server_1b:
+ - ps_server_1b
+ - disk.usage
+ disk.read.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.read.requests
+ disk.device.read.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.requests.rate
+ disk.capacity_ps_server_1b:
+ - ps_server_1b
+ - disk.capacity
+ disk.write.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.write.requests.rate
+ disk.device.read.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.bytes
+ disk.device.write.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.requests.rate
+ disk.root.size_ps_server_1b:
+ - ps_server_1b
+ - disk.root.size
+ feature_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - feature
+ binding_ps_server_1b:
+ - ps_server_1b
+ - binding
+ network.incoming.bytes_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.bytes.rate
+ memory.resident_ps_server_1b:
+ - ps_server_1b
+ - memory.resident
+ memory_ps_server_1b:
+ - ps_server_1b
+ - memory
+ disk.write.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.bytes.rate
+ binding_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - binding
+ disk.read.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.read.bytes
+ network.outgoing.bytes_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.bytes
+ feature_ps_server_1b:
+ - ps_server_1b
+ - feature
+ os_ps_server_1b:
+ - ps_server_1b
+ - os
+ attachment_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - attachment
+ disk.iops_ps_server_1b:
+ - ps_server_1b
+ - disk.iops
+ disk.allocation_ps_server_1b:
+ - ps_server_1b
+ - disk.allocation
+ disk.write.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.write.requests
+ network.outgoing.packets.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.packets
+ memory.usage_ps_server_1b:
+ - ps_server_1b
+ - memory.usage
+ disk.latency_ps_server_1b:
+ - ps_server_1b
+ - disk.latency
+ endpoint_ps_server_1b:
+ - ps_server_1b
+ - endpoint
+ vcpus_ps_server_1b:
+ - ps_server_1b
+ - vcpus
+ cpu.delta_ps_server_1b:
+ - ps_server_1b
+ - cpu.delta
+ network.outpoing.packets_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outpoing.packets
+ disk.ephemeral.size_ps_server_1b:
+ - ps_server_1b
+ - disk.ephemeral.size
+ requirements:
+ local_storage_ps_server_1b:
+ - ps_server_1b
+ - local_storage
+ dependency_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - dependency
+ link_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - link
+ dependency_ps_server_1b:
+ - ps_server_1b
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..ae05dd420d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,1404 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_1c1_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_1c1_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ ps_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ pd_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ ps_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ ps_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ oam_server_1c2_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ node_templates:
+ abstract_cmaui_1c1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - packet_internal_network
+ compute_cmaui_1c1_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ vm_flavor_name:
+ get_input: cmaui_1c1_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_name:
+ - get_input:
+ - cmaui_1c1_names
+ - 1
+ - get_input:
+ - cmaui_1c1_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_pd_server_1b:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_1b_name:
+ - get_input:
+ - pd_server_1b_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_server_1b_flavor
+ port_pd_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_1b_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_1b_image
+ port_pd_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_b_port_network:
+ - get_input: net
+ port_pd_server_b_port_replacement_policy:
+ - AUTO
+ compute_pd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server_1b:
+ type: org.openecomp.resource.abstract.nodes.ps_server_1b
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_1b_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_1b_flavor
+ port_ps_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_1b_image
+ port_ps_server_b_port_network:
+ - get_input: net
+ compute_ps_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ compute_ps_server_1b_name:
+ - get_input:
+ - ps_server_1b_names
+ - 1
+ service_template_filter:
+ substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_oam_server_1c2_1:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 1
+ port_oam_port_network:
+ - packet_external_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_oam_server_1c2_0:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 0
+ port_oam_port_network:
+ - packet_internal_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - packet_external_network
+ - packet_internal_network
+ - abstract_ps_server_1b
+ - abstract_oam_server_1c2_0
+ - abstract_oam_server_1c2_1
+ - abstract_pd_server_1b
+ - abstract_cmaui_1c1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.capacity_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.capacity_pd_server_1b
+ disk.device.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ disk.device.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.bytes.rate_ps_server_1b
+ disk.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ disk.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.usage_pd_server_1b
+ disk.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.iops_oam_server_1c2
+ disk.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.usage_oam_server_1c2
+ disk.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ feature_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.usage_oam_server_1c2
+ network.incoming.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes_pd_server_1b_pd_server_b_port
+ feature_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ disk.device.iops_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.iops_ps_server_1b
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ disk.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.iops_oam_server_1c2
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ network.outgoing.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ disk.device.iops_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.iops_pd_server_1b
+ network.incoming.packets_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets_pd_server_1b_pd_server_b_port
+ attachment_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - attachment_ps_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.device.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes.rate_pd_server_1b
+ disk.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes.rate_oam_server_1c2
+ disk.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes.rate_oam_server_1c2
+ scalable_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - scalable_oam_server_1c2
+ disk.latency_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.latency_pd_server_1b
+ scalable_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - scalable_oam_server_1c2
+ disk.device.read.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.requests.rate_pd_server_1b
+ disk.device.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.device.read.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.requests.rate_ps_server_1b
+ disk.device.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.usage_oam_server_1c2
+ disk.device.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.capacity_oam_server_1c2
+ disk.device.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.capacity_oam_server_1c2
+ binding_server_1b_ps:
+ - abstract_ps_server_1b
+ - binding_ps_server_1b
+ binding_server_1b_pd:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b
+ disk.device.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.usage_oam_server_1c2
+ memory.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory.usage_pd_server_1b
+ network.outpoing.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ network.outpoing.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ binding_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ memory.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory.usage_ps_server_1b
+ cpu_util_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu_util_pd_server_1b
+ cpu_util_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_util_oam_server_1c2
+ cpu_util_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_util_oam_server_1c2
+ memory_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory_oam_server_1c2
+ memory_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes_oam_server_1c2
+ memory.resident_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.resident_oam_server_1c2
+ memory.resident_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.resident_oam_server_1c2
+ cpu_util_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu_util_ps_server_1b
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ os_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - os_oam_server_1c2
+ disk.device.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ instance_server_1b_pd:
+ - abstract_pd_server_1b
+ - instance_pd_server_1b
+ disk.device.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ os_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - os_oam_server_1c2
+ disk.device.write.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes_pd_server_1b
+ disk.device.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ disk.device.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ feature_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2
+ disk.device.write.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.bytes_ps_server_1b
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ vcpus_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ feature_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ network.incoming.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes.rate_pd_server_1b_pd_server_b_port
+ network.outgoing.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ instance_server_1b_ps:
+ - abstract_ps_server_1b
+ - instance_ps_server_1b
+ feature_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2
+ network.outgoing.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ disk.device.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ instance_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ cpu.delta_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu.delta_ps_server_1b
+ instance_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ disk.device.read.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests.rate_oam_server_1c2
+ disk.device.read.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests.rate_oam_server_1c2
+ attachment_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - attachment_oam_server_1c2_oam_port
+ disk.device.write.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes.rate_pd_server_1b
+ disk.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.capacity_oam_server_1c2
+ disk.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.capacity_oam_server_1c2
+ cpu.delta_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu.delta_pd_server_1b
+ attachment_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - attachment_oam_server_1c2_oam_port
+ disk.device.write.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.requests_pd_server_1b
+ disk.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes.rate_oam_server_1c2
+ disk.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes.rate_oam_server_1c2
+ endpoint_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ network.outgoing.packets.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.packets.rate_ps_server_1b_ps_server_b_port
+ endpoint_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ disk.device.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ network.incoming.bytes_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.bytes_ps_server_1b_ps_server_b_port
+ attachment_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - attachment_pd_server_1b_pd_server_b_port
+ vcpus_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ binding_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - binding_ps_server_1b_ps_server_b_port
+ disk.device.write.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.bytes.rate_ps_server_1b
+ disk.device.write.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.requests_ps_server_1b
+ disk.device.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.latency_oam_server_1c2
+ disk.device.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.latency_oam_server_1c2
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ disk.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.device.read.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.requests_pd_server_1b
+ disk.read.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.requests_pd_server_1b
+ cpu_util_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.allocation_oam_server_1c2
+ disk.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.allocation_oam_server_1c2
+ cpu_util_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.device.read.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.requests_ps_server_1b
+ binding_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b_pd_server_b_port
+ disk.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes_oam_server_1c2
+ disk.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes_oam_server_1c2
+ cpu_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu_pd_server_1b
+ binding_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2_oam_port
+ disk.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ disk.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ disk.allocation_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.allocation_pd_server_1b
+ binding_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2_oam_port
+ disk.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ disk.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ host_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ host_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ cpu_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu_ps_server_1b
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ disk.allocation_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.allocation_ps_server_1b
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ disk.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.latency_oam_server_1c2
+ disk.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.latency_oam_server_1c2
+ disk.read.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.requests_ps_server_1b
+ disk.capacity_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.capacity_ps_server_1b
+ memory.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.usage_oam_server_1c2
+ network.outpoing.packets_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outpoing.packets_ps_server_1b_ps_server_b_port
+ memory.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.usage_oam_server_1c2
+ disk.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.requests_oam_server_1c2
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ disk.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.requests_oam_server_1c2
+ disk.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.usage_ps_server_1b
+ disk.root.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ disk.root.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ network.incoming.bytes.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.bytes.rate_ps_server_1b_ps_server_b_port
+ network.incoming.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ os_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ os_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ instance_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - instance_oam_server_1c2
+ instance_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - instance_oam_server_1c2
+ network.incoming.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ vcpus_server_1b_pd:
+ - abstract_pd_server_1b
+ - vcpus_pd_server_1b
+ memory.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ disk.write.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.bytes.rate_ps_server_1b
+ memory.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ binding_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ memory_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ binding_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ feature_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - feature_ps_server_1b_ps_server_b_port
+ disk.device.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.iops_oam_server_1c2
+ vcpus_server_1b_ps:
+ - abstract_ps_server_1b
+ - vcpus_ps_server_1b
+ disk.device.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.iops_oam_server_1c2
+ disk.write.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.bytes.rate_pd_server_1b
+ binding_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2
+ binding_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2
+ os_server_1b_pd:
+ - abstract_pd_server_1b
+ - os_pd_server_1b
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ network.outgoing.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.packets.rate_pd_server_1b_pd_server_b_port
+ memory_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ disk.device.latency_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.latency_pd_server_1b
+ disk.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests_oam_server_1c2
+ disk.device.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.usage_pd_server_1b
+ disk.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests_oam_server_1c2
+ vcpus_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - vcpus_oam_server_1c2
+ vcpus_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - vcpus_oam_server_1c2
+ os_server_1b_ps:
+ - abstract_ps_server_1b
+ - os_ps_server_1b
+ disk.device.latency_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.latency_ps_server_1b
+ disk.ephemeral.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.ephemeral.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.root.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ disk.device.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.usage_ps_server_1b
+ disk.root.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ disk.read.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.bytes_ps_server_1b
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ disk.device.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.ephemeral.size_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.ephemeral.size_pd_server_1b
+ disk.device.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests_oam_server_1c2
+ disk.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ memory_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory_ps_server_1b
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ network.outgoing.bytes.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.bytes.rate_ps_server_1b_ps_server_b_port
+ network.incoming.packets.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.packets.rate_ps_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ disk.device.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ feature_server_1b_ps:
+ - abstract_ps_server_1b
+ - feature_ps_server_1b
+ disk.write.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.requests.rate_ps_server_1b
+ disk.device.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests_oam_server_1c2
+ disk.device.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ host_server_1b_pd:
+ - abstract_pd_server_1b
+ - host_pd_server_1b
+ disk.device.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests_oam_server_1c2
+ disk.ephemeral.size_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.ephemeral.size_ps_server_1b
+ disk.read.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.bytes_pd_server_1b
+ host_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - host_oam_server_1c2
+ disk.device.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests_oam_server_1c2
+ memory_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory_pd_server_1b
+ host_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - host_oam_server_1c2
+ network.incoming.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ disk.write.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.bytes_ps_server_1b
+ network.incoming.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ network.outpoing.packets_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outpoing.packets_pd_server_1b_pd_server_b_port
+ feature_server_1b_pd:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b
+ disk.device.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ disk.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ disk.device.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ disk.device.allocation_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.allocation_pd_server_1b
+ disk.root.size_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.root.size_ps_server_1b
+ disk.device.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.allocation_oam_server_1c2
+ disk.device.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.allocation_oam_server_1c2
+ network.outgoing.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes_pd_server_1b_pd_server_b_port
+ disk.write.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.bytes_pd_server_1b
+ disk.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ disk.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ disk.device.capacity_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.capacity_pd_server_1b
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ disk.root.size_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.root.size_pd_server_1b
+ cpu_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ cpu_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ cpu_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_oam_server_1c2
+ disk.device.capacity_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.capacity_ps_server_1b
+ disk.write.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.requests.rate_pd_server_1b
+ cpu_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_oam_server_1c2
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ disk.device.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ disk.device.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ host_server_1b_ps:
+ - abstract_ps_server_1b
+ - host_ps_server_1b
+ disk.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests.rate_oam_server_1c2
+ cpu.delta_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu.delta_oam_server_1c2
+ disk.iops_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.iops_pd_server_1b
+ disk.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests.rate_oam_server_1c2
+ disk.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ disk.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ disk.device.allocation_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.allocation_ps_server_1b
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ network.incoming.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ network.incoming.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ disk.device.write.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.requests.rate_ps_server_1b
+ attachment_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ network.outgoing.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ network.outgoing.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ disk.iops_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.iops_ps_server_1b
+ disk.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ disk.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ disk.ephemeral.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.ephemeral.size_oam_server_1c2
+ disk.read.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.bytes.rate_ps_server_1b
+ disk.ephemeral.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.ephemeral.size_oam_server_1c2
+ disk.device.read.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ disk.device.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes_oam_server_1c2
+ disk.device.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes_oam_server_1c2
+ disk.device.read.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ network.incoming.packets_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.packets_ps_server_1b_ps_server_b_port
+ disk.write.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.requests_ps_server_1b
+ feature_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b_pd_server_b_port
+ disk.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ scalable_server_1b_ps:
+ - abstract_ps_server_1b
+ - scalable_ps_server_1b
+ disk.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ cpu.delta_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu.delta_oam_server_1c2
+ disk.device.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes.rate_oam_server_1c2
+ scalable_server_1b_pd:
+ - abstract_pd_server_1b
+ - scalable_pd_server_1b
+ disk.write.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.requests_pd_server_1b
+ disk.latency_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.latency_ps_server_1b
+ disk.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ network.outgoing.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port
+ disk.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ feature_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2_oam_port
+ feature_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2_oam_port
+ network.incoming.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets.rate_pd_server_1b_pd_server_b_port
+ disk.device.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ disk.read.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.bytes.rate_pd_server_1b
+ scalable_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ disk.device.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ scalable_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ cpu.delta_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ endpoint_server_1b_pd:
+ - abstract_pd_server_1b
+ - endpoint_pd_server_1b
+ cpu.delta_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ endpoint_server_1b_ps:
+ - abstract_ps_server_1b
+ - endpoint_ps_server_1b
+ network.incoming.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets_oam_server_1c2_oam_port
+ network.incoming.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets_oam_server_1c2_oam_port
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ network.outgoing.bytes_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.bytes_ps_server_1b_ps_server_b_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ disk.device.read.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.bytes_ps_server_1b
+ disk.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.device.write.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.requests.rate_pd_server_1b
+ memory.resident_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory.resident_pd_server_1b
+ disk.device.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes_oam_server_1c2
+ disk.device.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes_oam_server_1c2
+ memory.resident_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory.resident_ps_server_1b
+ disk.device.read.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes_pd_server_1b
+ endpoint_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - endpoint_oam_server_1c2
+ endpoint_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - endpoint_oam_server_1c2
+ requirements:
+ dependency_server_1b_pd:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b
+ link_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - link_pd_server_1b_pd_server_b_port
+ local_storage_server_1b_ps:
+ - abstract_ps_server_1b
+ - local_storage_ps_server_1b
+ dependency_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2_oam_port
+ dependency_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2_oam_port
+ dependency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ dependency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ link_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - link_ps_server_1b_ps_server_b_port
+ local_storage_server_1b_pd:
+ - abstract_pd_server_1b
+ - local_storage_pd_server_1b
+ dependency_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - dependency_ps_server_1b_ps_server_b_port
+ dependency_server_1b_ps:
+ - abstract_ps_server_1b
+ - dependency_ps_server_1b
+ dependency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2
+ dependency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2
+ local_storage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - local_storage_oam_server_1c2
+ local_storage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - local_storage_oam_server_1c2
+ dependency_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b_pd_server_b_port
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ local_storage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ local_storage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ dependency_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/MANIFEST.json
new file mode 100644
index 0000000000..7e4cb83eb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/MANIFEST.json
@@ -0,0 +1,28 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-no-compute.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-pattern-4.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/main.yml
new file mode 100644
index 0000000000..806280afd4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/main.yml
@@ -0,0 +1,47 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_all_patterns:
+ type: nested1.yml
+ #depends_on:
+ # - test_nested_no_compute
+ # - test_nested_pattern_4
+ properties:
+ p1: {get_attr: [test_nested_pattern_4, pattern4_attr_1]}
+ p2: {get_attr: [test_nested_no_compute, no_compute_attr_1]}
+
+ test_nested_pattern_4:
+ type: nested-pattern-4.yml
+ depends_on:
+ - test_nested_all_patterns
+ #- test_nested_no_compute
+ properties:
+ #p1: {get_attr: [test_nested_pattern_4, all_pattern_attr_1]}
+ p2: {get_attr: [test_nested_no_compute, no_compute_attr_1]}
+
+ test_nested_no_compute:
+ type: nested-no-compute.yml
+ depends_on:
+ - test_nested_all_patterns
+ - test_nested_pattern_4
+ properties:
+ p1: {get_attr: [test_nested_pattern_4, pattern4_attr_1]}
+ #p2: {get_attr: [test_nested_no_compute, all_pattern_attr_1]}
+
+ dependsOn_network:
+ type: OS::Neutron::Net
+ depends_on:
+ - test_nested_all_patterns
+ - test_nested_no_compute
+ - test_nested_pattern_4
+ properties:
+ name:
+ get_param: jsa_name \ 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/in/nested-no-compute.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-no-compute.yml
new file mode 100644
index 0000000000..5e0627f053
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-no-compute.yml
@@ -0,0 +1,67 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+
+resources:
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name
+
+outputs:
+ no_compute_attr_1:
+ description: no_compute_attr_1
+ value: { get_resource: packet_external_network } \ 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/in/nested-pattern-4.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-pattern-4.yml
new file mode 100644
index 0000000000..bbaa6a2636
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested-pattern-4.yml
@@ -0,0 +1,66 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ pd_server_image:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ pd_server_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port_1 }
+ - port: { get_resource: pd_server_port_2 }
+
+outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: { get_resource: server_pd }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested1.yml
new file mode 100644
index 0000000000..625831f052
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/in/nested1.yml
@@ -0,0 +1,186 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+ pd_server_1b_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ ps_server_1b_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_1b_ips:
+ type: string
+ ps_server_1b_ips:
+ type: string
+
+resources:
+ pd_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_1b_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_1b_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1b_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_1b_names, 0]}
+ image: { get_param: pd_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_1b_flavor }
+ networks:
+ - port: { get_resource: pd_server_1b_port }
+
+ server_1b_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_1b_names, 1]}
+ image: { get_param: ps_server_1b_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_1b_flavor }
+ networks:
+ - port: { get_resource: ps_server_1b_port }
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_1c1_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 0]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_1c1_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_1c1_names, 1]}
+ image: { get_param: cmaui_1c1_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_1c1_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ oam_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ oam_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 1]}}]
+ replacement_policy: AUTO
+
+ server_1c2_oam_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 0]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_1 }
+
+ server_1c2_oam_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_1c2_names, 1]}
+ image: { get_param: oam_server_1c2_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_1c2_flavor }
+ networks:
+ - port: { get_resource: oam_port_2 }
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name
+
+outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value: { get_attr: [server_1c2_oam_2, 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/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
new file mode 100644
index 0000000000..d8db407d94
--- /dev/null
+++ 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
@@ -0,0 +1,4674 @@
+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.oam_server_1c2:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_oam_server_1c2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server_1c2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.ephemeral.size_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2_oam_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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ os_oam_server_1c2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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_oam_server_1c2_oam_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.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_oam_server_1c2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_oam_server_1c2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.openecomp.capabilities.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_oam_server_1c2:
+ type: org.openecomp.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_oam_server_1c2:
+ type: org.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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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.abstract.nodes.pd_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_pd_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.bytes_pd_server_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
+ host_pd_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu.delta_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_pd_server_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_pd_server_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.rate_pd_server_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_pd_server_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
+ endpoint_pd_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_pd_server_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_pd_server_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.root.size_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_pd_server_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
+ instance_pd_server_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_pd_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_1b_pd_server_b_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_pd_server_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_pd_server_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_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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.usage_pd_server_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_pd_server_1b_pd_server_b_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_pd_server_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
+ org.openecomp.resource.abstract.nodes.heat.nested-no-compute:
+ 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
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ 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
+ attributes:
+ no_compute_attr_1:
+ type: string
+ description: no_compute_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - binding_cmaui_port_2:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - binding_cmaui_port_1:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ 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
+ 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
+ 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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ 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
+ 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.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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ 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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ 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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_external_network:
+ type: tosca.capabilities.Node
+ 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
+ org.openecomp.resource.abstract.nodes.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ cmaui_1c1_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ type: string
+ description: Image for CMAUI server
+ required: true
+ status: SUPPORTED
+ cmaui_1c1_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ ps_server_1b_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ pd_server_1b_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ ps_server_1b_flavor:
+ type: string
+ description: Flavor for PS server
+ required: true
+ status: SUPPORTED
+ cmaui_oam_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ ps_server_1b_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_1b_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ required: true
+ status: SUPPORTED
+ oam_server_1c2_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ attributes:
+ all_pattern_attr_1:
+ type: string
+ description: all_pattern_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1b_pd:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_pd:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c2_oam_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c2_oam_2:
+ 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
+ - dependency_pd_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_1b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_1b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_1b_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1b_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_1c1_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.capacity_server_1b_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.rate_server_1c2_oam_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_server_1c1_cmaui_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_1c2_oam_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1b_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.iops_server_1c2_oam_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.usage_server_1c2_oam_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.requests_server_1c1_cmaui_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
+ feature_server_1c1_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_server_1c2_oam_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_1b_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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_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_1c2_oam_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.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.outgoing.packets.rate_oam_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_oam_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_server_1b_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_pd_server_1b_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_ps_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests.rate_server_1c2_oam_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.requests.rate_server_1c2_oam_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.bytes.rate_server_1b_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_1c2_oam_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_server_1c2_oam_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
+ scalable_server_1c2_oam_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1b_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
+ scalable_server_1c2_oam_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_server_1b_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_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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.bytes_server_1c1_cmaui_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.requests.rate_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.capacity_server_1c2_oam_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.capacity_server_1c2_oam_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_server_1b_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1b_pd:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_1c2_oam_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_1b_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_oam_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_oam_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
+ 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
+ memory.usage_server_1b_ps:
+ type: org.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_1b_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_1c2_oam_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_server_1c2_oam_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
+ memory_server_1c2_oam_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_1c2_oam_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.bytes_server_1c2_oam_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_1c2_oam_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
+ memory.resident_server_1c2_oam_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
+ memory.resident_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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
+ 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
+ os_server_1c2_oam_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c1_cmaui_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
+ instance_server_1b_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.iops_server_1c1_cmaui_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_server_1c2_oam_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_1b_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.allocation_server_1c1_cmaui_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.allocation_server_1c1_cmaui_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
+ feature_server_1c2_oam_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_server_1b_ps:
+ type: org.openecomp.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
+ vcpus_server_1c1_cmaui_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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_pd_server_1b_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_oam_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
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_1b_ps:
+ type: org.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_1c2_oam_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_oam_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.capacity_server_1c1_cmaui_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
+ instance_server_1c1_cmaui_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_1b_ps:
+ type: org.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_1c1_cmaui_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.requests.rate_server_1c2_oam_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.requests.rate_server_1c2_oam_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_oam_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_server_1b_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_1c2_oam_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.capacity_server_1c2_oam_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_1b_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_oam_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_1b_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_1c2_oam_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.rate_server_1c2_oam_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_1c1_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_ps_server_1b_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_1c1_cmaui_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_server_1c1_cmaui_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.capacity_server_1c1_cmaui_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_1c1_cmaui_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_ps_server_1b_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_pd_server_1b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_1c1_cmaui_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
+ binding_ps_server_1b_port:
+ 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_1b_ps:
+ type: org.openecomp.capabilities.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_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.latency_server_1c2_oam_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_packet_external_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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.requests_server_1b_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.requests_server_1b_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_1c1_cmaui_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_1c2_oam_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_1c2_oam_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_server_1c1_cmaui_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.requests_server_1b_ps:
+ type: org.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_1b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes_server_1c2_oam_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_1c2_oam_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_1b_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_oam_port_2:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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_1b_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_oam_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.rate_server_1c1_cmaui_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.rate_server_1c1_cmaui_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_1c1_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_server_1b_ps:
+ type: org.openecomp.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
+ disk.allocation_server_1b_ps:
+ type: org.openecomp.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
+ disk.latency_server_1c2_oam_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_1c2_oam_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.requests_server_1b_ps:
+ type: org.openecomp.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_1b_ps:
+ type: org.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_1c2_oam_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_ps_server_1b_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_server_1c2_oam_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_1c2_oam_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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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_1c2_oam_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.resident_server_1c1_cmaui_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.root.size_server_1c2_oam_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
+ memory.resident_server_1c1_cmaui_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_ps_server_1b_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_oam_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_server_1c1_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1c1_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_1c2_oam_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_1c2_oam_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_oam_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
+ vcpus_server_1b_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.usage_server_1c1_cmaui_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.rate_server_1b_ps:
+ type: org.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_1c1_cmaui_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
+ binding_server_1c1_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory_server_1c1_cmaui_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
+ binding_server_1c1_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_server_1c2_oam_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
+ vcpus_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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.rate_server_1b_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_1c2_oam_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_1c2_oam_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_1b_pd:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_pd_server_1b_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_1c1_cmaui_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.latency_server_1b_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_1c2_oam_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_server_1b_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_1c2_oam_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_1c2_oam_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_1c2_oam_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_1b_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1c1_cmaui_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.root.size_server_1c1_cmaui_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_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_server_1b_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_1c2_oam_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_1c1_cmaui_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_1b_ps:
+ type: org.openecomp.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
+ network.outgoing.bytes.rate_ps_server_1b_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_ps_server_1b_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_server_1c1_cmaui_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_server_1c1_cmaui_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.requests.rate_server_1c1_cmaui_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_server_1b_ps:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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_1c1_cmaui_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_server_1c1_cmaui_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
+ host_server_1b_pd:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c2_oam_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_server_1b_ps:
+ type: org.openecomp.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_1b_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_1c2_oam_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c2_oam_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
+ memory_server_1b_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_1c2_oam_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_oam_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_1b_ps:
+ type: org.openecomp.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_oam_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
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_1b_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_server_1b_pd:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_1c1_cmaui_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_1c1_cmaui_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_1c1_cmaui_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.allocation_server_1b_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.root.size_server_1b_ps:
+ type: org.openecomp.capabilities.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_1c2_oam_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_1c2_oam_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.bytes_pd_server_1b_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_server_1b_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_1c1_cmaui_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_1c1_cmaui_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.capacity_server_1b_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.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.root.size_server_1b_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_1c1_cmaui_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_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_server_1c1_cmaui_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_server_1c2_oam_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.capacity_server_1b_ps:
+ type: org.openecomp.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_1b_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_1c2_oam_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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_server_1c1_cmaui_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_1c1_cmaui_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
+ host_server_1b_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_server_1c2_oam_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_1c2_oam_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_1b_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_1c2_oam_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_server_1c1_cmaui_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.usage_server_1c1_cmaui_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.allocation_server_1b_ps:
+ type: org.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_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_oam_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.requests.rate_server_1b_ps:
+ type: org.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
+ network.outgoing.bytes.rate_oam_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.bytes.rate_oam_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_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_1c1_cmaui_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_server_1c2_oam_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.rate_server_1b_ps:
+ type: org.openecomp.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_1c2_oam_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.requests.rate_server_1c1_cmaui_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_1c2_oam_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.bytes_server_1c2_oam_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.requests.rate_server_1c1_cmaui_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_ps_server_1b_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_1b_ps:
+ type: org.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_1b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1c1_cmaui_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
+ scalable_server_1b_ps:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_1c1_cmaui_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_1c2_oam_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_1c2_oam_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_1c2_oam_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
+ scalable_server_1b_pd:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_1b_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.latency_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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.bytes.rate_pd_server_1b_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_server_1c1_cmaui_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
+ feature_oam_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_oam_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_1b_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_server_1c1_cmaui_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_server_1b_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
+ scalable_server_1c1_cmaui_1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_server_1c1_cmaui_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
+ scalable_server_1c1_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1c1_cmaui_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_1b_pd:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_1c1_cmaui_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_server_1b_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_oam_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_oam_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_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.bytes_ps_server_1b_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_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.read.bytes_server_1b_ps:
+ type: org.openecomp.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_1c1_cmaui_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_1c1_cmaui_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.requests.rate_server_1b_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_1b_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_1c2_oam_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_server_1c2_oam_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
+ memory.resident_server_1b_ps:
+ type: org.openecomp.capabilities.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_1b_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_1c2_oam_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_1c2_oam_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.ps_server_1b:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_ps_server_1b:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server_1b:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_1b_ps_server_b_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes.rate_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.bytes.rate_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_ps_server_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_ps_server_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_ps_server_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.capacity_ps_server_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_ps_server_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_ps_server_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_ps_server_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.root.size_ps_server_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_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_ps_server_1b:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_ps_server_1b_ps_server_b_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_ps_server_1b_ps_server_b_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.resident_ps_server_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_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.read.bytes_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server_1b:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_1b_ps_server_b_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_ps_server_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_ps_server_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_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_1b_ps_server_b_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_ps_server_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_ps_server_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
+ endpoint_ps_server_1b:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_ps_server_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.delta_ps_server_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_ps_server_1b_ps_server_b_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_ps_server_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
+ org.openecomp.resource.abstract.nodes.cmaui_1c1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_cmaui_1c1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_cmaui_1c1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_cmaui_1c1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.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_1c1_cmaui_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_cmaui_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_cmaui_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_cmaui_1c1_cmaui_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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_cmaui_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.openecomp.capabilities.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_1c1:
+ type: org.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_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_cmaui_1c1:
+ type: org.openecomp.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_1c1:
+ type: org.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_1c1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_cmaui_1c1:
+ type: org.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_1c1_cmaui_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_cmaui_1c1:
+ type: org.openecomp.capabilities.metric.Ceilometer
+ description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ occurrences:
+ - 1
+ - UNBOUNDED
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
new file mode 100644
index 0000000000..edc041bb40
--- /dev/null
+++ 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
@@ -0,0 +1,110 @@
+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:
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ dependsOn_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: jsa_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_all_patterns
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_no_compute
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_pattern_4
+ relationship: tosca.relationships.DependsOn
+ test_nested_pattern_4:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pattern-4
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pattern-4ServiceTemplate.yaml
+ p2:
+ get_attribute:
+ - test_nested_no_compute
+ - no_compute_attr_1
+ port_pd_server_port_2_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ test_nested_no_compute:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_attribute:
+ - test_nested_pattern_4
+ - pattern4_attr_1
+ service_template_filter:
+ substitute_service_template: nested-no-computeServiceTemplate.yaml
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_all_patterns
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_pattern_4
+ relationship: tosca.relationships.DependsOn
+ test_nested_all_patterns:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_attribute:
+ - test_nested_pattern_4
+ - pattern4_attr_1
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2:
+ get_attribute:
+ - test_nested_no_compute
+ - no_compute_attr_1
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - dependsOn_network
+ - test_nested_pattern_4
+ - test_nested_no_compute
+ - test_nested_all_patterns
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/Nested_cmaui_1c1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_cmaui_1c1ServiceTemplate.yaml
new file mode 100644
index 0000000000..cc211aeb7e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_cmaui_1c1ServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1c1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_cmaui_1c1_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_cmaui_1c1_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_1c1_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui_1c1
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_1c1:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui_1c1
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_1c1_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_1c1_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ capabilities:
+ binding_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - binding
+ disk.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.iops
+ disk.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes
+ disk.device.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.capacity
+ endpoint_cmaui_1c1:
+ - cmaui_1c1
+ - endpoint
+ network.incoming.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets
+ network.outgoing.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes
+ network.outgoing.bytes.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.bytes.rate
+ network.outpoing.packets_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outpoing.packets
+ memory_cmaui_1c1:
+ - cmaui_1c1
+ - memory
+ disk.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.latency
+ disk.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes.rate
+ disk.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests.rate
+ disk.device.iops_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.iops
+ disk.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.requests
+ disk.device.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes
+ cpu_util_cmaui_1c1:
+ - cmaui_1c1
+ - cpu_util
+ network.outgoing.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.outgoing.packets.rate
+ disk.device.read.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.bytes.rate
+ disk.ephemeral.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.ephemeral.size
+ instance_cmaui_1c1:
+ - cmaui_1c1
+ - instance
+ disk.device.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests
+ disk.device.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes.rate
+ cpu_cmaui_1c1:
+ - cmaui_1c1
+ - cpu
+ disk.read.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.bytes
+ disk.device.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.usage
+ host_cmaui_1c1:
+ - cmaui_1c1
+ - host
+ disk.device.write.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests
+ disk.device.latency_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.latency
+ network.incoming.bytes_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.bytes
+ disk.write.bytes.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.write.bytes.rate
+ memory.usage_cmaui_1c1:
+ - cmaui_1c1
+ - memory.usage
+ scalable_cmaui_1c1:
+ - cmaui_1c1
+ - scalable
+ disk.root.size_cmaui_1c1:
+ - cmaui_1c1
+ - disk.root.size
+ disk.capacity_cmaui_1c1:
+ - cmaui_1c1
+ - disk.capacity
+ os_cmaui_1c1:
+ - cmaui_1c1
+ - os
+ disk.device.read.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.read.requests.rate
+ feature_cmaui_1c1:
+ - cmaui_1c1
+ - feature
+ network.incoming.packets.rate_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - network.incoming.packets.rate
+ disk.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.allocation
+ disk.device.allocation_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.allocation
+ disk.device.write.requests.rate_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_cmaui_1c1:
+ - cmaui_1c1
+ - disk.device.write.bytes
+ memory.resident_cmaui_1c1:
+ - cmaui_1c1
+ - memory.resident
+ attachment_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - attachment
+ disk.usage_cmaui_1c1:
+ - cmaui_1c1
+ - disk.usage
+ disk.read.requests_cmaui_1c1:
+ - cmaui_1c1
+ - disk.read.requests
+ binding_cmaui_1c1:
+ - cmaui_1c1
+ - binding
+ vcpus_cmaui_1c1:
+ - cmaui_1c1
+ - vcpus
+ feature_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - feature
+ cpu.delta_cmaui_1c1:
+ - cmaui_1c1
+ - cpu.delta
+ requirements:
+ dependency_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - dependency
+ dependency_cmaui_1c1:
+ - cmaui_1c1
+ - dependency
+ link_cmaui_1c1_cmaui_port:
+ - cmaui_1c1_cmaui_port
+ - link
+ local_storage_cmaui_1c1:
+ - cmaui_1c1
+ - local_storage
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/Nested_oam_server_1c2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_oam_server_1c2ServiceTemplate.yaml
new file mode 100644
index 0000000000..0b97879fe3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_oam_server_1c2ServiceTemplate.yaml
@@ -0,0 +1,308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server_1c2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_oam_server_1c2_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_oam_port_order:
+ type: integer
+ required: true
+ port_oam_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_oam_server_1c2_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_oam_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_oam_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_port_network_role:
+ type: string
+ required: true
+ node_templates:
+ oam_server_1c2:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server_1c2
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_1c2_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_1c2_name
+ - index_value
+ oam_server_1c2_oam_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_oam_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_oam_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_oam_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_port_network_role_tag
+ mac_requirements:
+ get_input: port_oam_port_mac_requirements
+ order:
+ get_input: port_oam_port_order
+ network_role:
+ get_input: port_oam_port_network_role
+ subnetpoolid:
+ get_input: port_oam_port_subnetpoolid
+ fixed_ips:
+ get_input: port_oam_port_fixed_ips
+ network:
+ get_input:
+ - port_oam_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server_1c2
+ relationship: tosca.relationships.network.BindsTo
+ outputs:
+ oam_server_1c2_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - oam_server_1c2
+ - accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ capabilities:
+ disk.device.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.usage
+ disk.device.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.latency
+ feature_oam_server_1c2:
+ - oam_server_1c2
+ - feature
+ disk.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.requests
+ disk.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes.rate
+ disk.device.write.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes.rate
+ network.outgoing.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.packets.rate
+ network.outpoing.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outpoing.packets
+ cpu_util_oam_server_1c2:
+ - oam_server_1c2
+ - cpu_util
+ disk.device.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.bytes
+ disk.device.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.allocation
+ attachment_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - attachment
+ network.incoming.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes.rate
+ disk.root.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.root.size
+ disk.device.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.iops
+ disk.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes.rate
+ network.outgoing.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes
+ disk.allocation_oam_server_1c2:
+ - oam_server_1c2
+ - disk.allocation
+ disk.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.read.bytes
+ network.incoming.bytes_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.outgoing.bytes.rate
+ vcpus_oam_server_1c2:
+ - oam_server_1c2
+ - vcpus
+ disk.device.read.bytes.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes.rate
+ network.incoming.packets_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets
+ cpu_oam_server_1c2:
+ - oam_server_1c2
+ - cpu
+ disk.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests.rate
+ instance_oam_server_1c2:
+ - oam_server_1c2
+ - instance
+ host_oam_server_1c2:
+ - oam_server_1c2
+ - host
+ disk.device.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.capacity
+ disk.device.write.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests.rate
+ endpoint_oam_server_1c2:
+ - oam_server_1c2
+ - endpoint
+ disk.ephemeral.size_oam_server_1c2:
+ - oam_server_1c2
+ - disk.ephemeral.size
+ memory.resident_oam_server_1c2:
+ - oam_server_1c2
+ - memory.resident
+ memory_oam_server_1c2:
+ - oam_server_1c2
+ - memory
+ disk.device.read.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.bytes
+ memory.usage_oam_server_1c2:
+ - oam_server_1c2
+ - memory.usage
+ disk.usage_oam_server_1c2:
+ - oam_server_1c2
+ - disk.usage
+ network.incoming.packets.rate_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - network.incoming.packets.rate
+ binding_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - binding
+ os_oam_server_1c2:
+ - oam_server_1c2
+ - os
+ disk.device.read.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests
+ disk.latency_oam_server_1c2:
+ - oam_server_1c2
+ - disk.latency
+ feature_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - feature
+ disk.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.requests
+ disk.device.write.requests_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.write.requests
+ binding_oam_server_1c2:
+ - oam_server_1c2
+ - binding
+ scalable_oam_server_1c2:
+ - oam_server_1c2
+ - scalable
+ cpu.delta_oam_server_1c2:
+ - oam_server_1c2
+ - cpu.delta
+ disk.write.bytes_oam_server_1c2:
+ - oam_server_1c2
+ - disk.write.bytes
+ disk.capacity_oam_server_1c2:
+ - oam_server_1c2
+ - disk.capacity
+ disk.device.read.requests.rate_oam_server_1c2:
+ - oam_server_1c2
+ - disk.device.read.requests.rate
+ disk.iops_oam_server_1c2:
+ - oam_server_1c2
+ - disk.iops
+ requirements:
+ local_storage_oam_server_1c2:
+ - oam_server_1c2
+ - local_storage
+ dependency_oam_server_1c2:
+ - oam_server_1c2
+ - dependency
+ link_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - link
+ dependency_oam_server_1c2_oam_port:
+ - oam_server_1c2_oam_port
+ - dependency
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/Nested_pd_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_pd_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..0f30620893
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_pd_server_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ compute_pd_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_b_port_network_role:
+ type: string
+ required: true
+ port_pd_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_b_port_order:
+ type: integer
+ required: true
+ port_pd_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ node_templates:
+ pd_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_1b_name
+ - index_value
+ pd_server_1b_pd_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_b_port_mac_requirements
+ order:
+ get_input: port_pd_server_b_port_order
+ network_role:
+ get_input: port_pd_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ capabilities:
+ disk.device.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes
+ host_pd_server_1b:
+ - pd_server_1b
+ - host
+ disk.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes.rate
+ feature_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - feature
+ disk.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.allocation
+ network.incoming.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes.rate
+ binding_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - binding
+ cpu.delta_pd_server_1b:
+ - pd_server_1b
+ - cpu.delta
+ disk.device.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests
+ feature_pd_server_1b:
+ - pd_server_1b
+ - feature
+ disk.device.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.device.iops
+ cpu_pd_server_1b:
+ - pd_server_1b
+ - cpu
+ disk.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes.rate
+ disk.device.read.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.requests.rate
+ endpoint_pd_server_1b:
+ - pd_server_1b
+ - endpoint
+ disk.device.allocation_pd_server_1b:
+ - pd_server_1b
+ - disk.device.allocation
+ memory.usage_pd_server_1b:
+ - pd_server_1b
+ - memory.usage
+ attachment_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - attachment
+ memory_pd_server_1b:
+ - pd_server_1b
+ - memory
+ disk.device.read.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.device.latency
+ disk.read.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.read.bytes
+ disk.device.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.device.usage
+ disk.device.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests
+ network.incoming.bytes.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.bytes.rate
+ disk.latency_pd_server_1b:
+ - pd_server_1b
+ - disk.latency
+ disk.ephemeral.size_pd_server_1b:
+ - pd_server_1b
+ - disk.ephemeral.size
+ scalable_pd_server_1b:
+ - pd_server_1b
+ - scalable
+ disk.write.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests
+ disk.device.write.bytes.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes.rate
+ disk.root.size_pd_server_1b:
+ - pd_server_1b
+ - disk.root.size
+ disk.iops_pd_server_1b:
+ - pd_server_1b
+ - disk.iops
+ network.incoming.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets.rate
+ disk.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.bytes
+ os_pd_server_1b:
+ - pd_server_1b
+ - os
+ vcpus_pd_server_1b:
+ - pd_server_1b
+ - vcpus
+ instance_pd_server_1b:
+ - pd_server_1b
+ - instance
+ binding_pd_server_1b:
+ - pd_server_1b
+ - binding
+ cpu_util_pd_server_1b:
+ - pd_server_1b
+ - cpu_util
+ memory.resident_pd_server_1b:
+ - pd_server_1b
+ - memory.resident
+ network.incoming.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.packets.rate
+ disk.device.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.device.write.requests.rate
+ disk.device.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.device.capacity
+ disk.read.requests_pd_server_1b:
+ - pd_server_1b
+ - disk.read.requests
+ network.outpoing.packets_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outpoing.packets
+ disk.capacity_pd_server_1b:
+ - pd_server_1b
+ - disk.capacity
+ disk.usage_pd_server_1b:
+ - pd_server_1b
+ - disk.usage
+ network.outgoing.bytes_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - network.outgoing.bytes
+ disk.write.requests.rate_pd_server_1b:
+ - pd_server_1b
+ - disk.write.requests.rate
+ requirements:
+ dependency_pd_server_1b:
+ - pd_server_1b
+ - dependency
+ local_storage_pd_server_1b:
+ - pd_server_1b
+ - local_storage
+ link_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - link
+ dependency_pd_server_1b_pd_server_b_port:
+ - pd_server_1b_pd_server_b_port
+ - dependency
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/Nested_ps_server_1bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_ps_server_1bServiceTemplate.yaml
new file mode 100644
index 0000000000..12e869e022
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/Nested_ps_server_1bServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server_1b
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server_1b:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_b_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_ps_server_b_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_b_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_b_port_network_role:
+ type: string
+ required: true
+ port_ps_server_b_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_b_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_ps_server_b_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_b_port_order:
+ type: integer
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_b_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_b_port_network_role_tag:
+ type: string
+ required: true
+ port_ps_server_b_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_1b_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_1b_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ ps_server_1b:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server_1b
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_1b_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_1b_name
+ - index_value
+ ps_server_1b_ps_server_b_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_b_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_b_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_b_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_b_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_b_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_b_port_mac_requirements
+ order:
+ get_input: port_ps_server_b_port_order
+ network_role:
+ get_input: port_ps_server_b_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_b_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_b_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_b_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server_1b
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server_1b
+ capabilities:
+ disk.write.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.write.bytes.rate
+ disk.device.usage_ps_server_1b:
+ - ps_server_1b
+ - disk.device.usage
+ disk.device.allocation_ps_server_1b:
+ - ps_server_1b
+ - disk.device.allocation
+ disk.device.write.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.requests
+ cpu_util_ps_server_1b:
+ - ps_server_1b
+ - cpu_util
+ scalable_ps_server_1b:
+ - ps_server_1b
+ - scalable
+ disk.device.read.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.bytes.rate
+ disk.device.latency_ps_server_1b:
+ - ps_server_1b
+ - disk.device.latency
+ disk.device.iops_ps_server_1b:
+ - ps_server_1b
+ - disk.device.iops
+ disk.device.capacity_ps_server_1b:
+ - ps_server_1b
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.packets.rate
+ instance_ps_server_1b:
+ - ps_server_1b
+ - instance
+ cpu_ps_server_1b:
+ - ps_server_1b
+ - cpu
+ disk.device.write.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.bytes
+ disk.read.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.read.bytes.rate
+ disk.device.read.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.requests
+ network.incoming.bytes.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.bytes.rate
+ host_ps_server_1b:
+ - ps_server_1b
+ - host
+ disk.usage_ps_server_1b:
+ - ps_server_1b
+ - disk.usage
+ disk.read.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.read.requests
+ disk.device.read.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.requests.rate
+ disk.capacity_ps_server_1b:
+ - ps_server_1b
+ - disk.capacity
+ disk.write.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.write.requests.rate
+ disk.device.read.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.device.read.bytes
+ disk.device.write.requests.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.requests.rate
+ disk.root.size_ps_server_1b:
+ - ps_server_1b
+ - disk.root.size
+ feature_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - feature
+ binding_ps_server_1b:
+ - ps_server_1b
+ - binding
+ network.incoming.bytes_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.bytes
+ network.outgoing.bytes.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.bytes.rate
+ memory.resident_ps_server_1b:
+ - ps_server_1b
+ - memory.resident
+ memory_ps_server_1b:
+ - ps_server_1b
+ - memory
+ disk.write.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.write.bytes
+ disk.device.write.bytes.rate_ps_server_1b:
+ - ps_server_1b
+ - disk.device.write.bytes.rate
+ binding_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - binding
+ disk.read.bytes_ps_server_1b:
+ - ps_server_1b
+ - disk.read.bytes
+ network.outgoing.bytes_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.bytes
+ feature_ps_server_1b:
+ - ps_server_1b
+ - feature
+ os_ps_server_1b:
+ - ps_server_1b
+ - os
+ attachment_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - attachment
+ disk.iops_ps_server_1b:
+ - ps_server_1b
+ - disk.iops
+ disk.allocation_ps_server_1b:
+ - ps_server_1b
+ - disk.allocation
+ disk.write.requests_ps_server_1b:
+ - ps_server_1b
+ - disk.write.requests
+ network.outgoing.packets.rate_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.incoming.packets
+ memory.usage_ps_server_1b:
+ - ps_server_1b
+ - memory.usage
+ disk.latency_ps_server_1b:
+ - ps_server_1b
+ - disk.latency
+ endpoint_ps_server_1b:
+ - ps_server_1b
+ - endpoint
+ vcpus_ps_server_1b:
+ - ps_server_1b
+ - vcpus
+ cpu.delta_ps_server_1b:
+ - ps_server_1b
+ - cpu.delta
+ network.outpoing.packets_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - network.outpoing.packets
+ disk.ephemeral.size_ps_server_1b:
+ - ps_server_1b
+ - disk.ephemeral.size
+ requirements:
+ local_storage_ps_server_1b:
+ - ps_server_1b
+ - local_storage
+ dependency_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - dependency
+ link_ps_server_1b_ps_server_b_port:
+ - ps_server_1b_ps_server_b_port
+ - link
+ dependency_ps_server_1b:
+ - ps_server_1b
+ - dependency
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/nested-no-computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested-no-computeServiceTemplate.yaml
new file mode 100644
index 0000000000..76061f4f9c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested-no-computeServiceTemplate.yaml
@@ -0,0 +1,252 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-no-compute
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_external_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_internal_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested-no-compute_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-no-compute.yml
+ description: nested1
+ members:
+ - cmaui_port_2
+ - packet_external_network
+ - packet_internal_network
+ - cmaui_port_1
+ outputs:
+ no_compute_attr_1:
+ description: no_compute_attr_1
+ value: packet_external_network
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
+ capabilities:
+ network.incoming.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets
+ network.incoming.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets
+ network.incoming.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets.rate
+ feature_cmaui_port_1:
+ - cmaui_port_1
+ - feature
+ feature_cmaui_port_2:
+ - cmaui_port_2
+ - feature
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ attachment_cmaui_port_2:
+ - cmaui_port_2
+ - attachment
+ network.outgoing.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes
+ network.outgoing.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.packets.rate
+ network.outgoing.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes
+ attachment_cmaui_port_1:
+ - cmaui_port_1
+ - attachment
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ network.incoming.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes.rate
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ network.outpoing.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.outpoing.packets
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes.rate
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ network.incoming.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ network.incoming.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes
+ requirements:
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ dependency_cmaui_port_1:
+ - cmaui_port_1
+ - dependency
+ dependency_cmaui_port_2:
+ - cmaui_port_2
+ - dependency
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
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/nested-pattern-4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested-pattern-4ServiceTemplate.yaml
new file mode 100644
index 0000000000..72bdf7eba1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested-pattern-4ServiceTemplate.yaml
@@ -0,0 +1,425 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pattern-4
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ port_pd_server_port_1_order:
+ type: integer
+ required: true
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ port_pd_server_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd_server_port_2_network_role:
+ type: string
+ required: true
+ port_pd_server_port_1_network_role:
+ type: string
+ required: true
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_subnetpoolid:
+ type: string
+ required: true
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ port_pd_server_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_pd_server_port_1_network_role_tag:
+ type: string
+ required: true
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ port_pd_server_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_2_order:
+ type: integer
+ required: true
+ port_pd_server_port_2_network_role_tag:
+ type: string
+ required: true
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ port_pd_server_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ node_templates:
+ pd_server_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_port_1_ip_requirements
+ network_role:
+ get_input: port_pd_server_port_1_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ subnetpoolid:
+ get_input: port_pd_server_port_1_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_port_1_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_1_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_1_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_port_1_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ get_input: port_pd_server_port_2_ip_requirements
+ network_role:
+ get_input: port_pd_server_port_2_network_role
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 1
+ subnetpoolid:
+ get_input: port_pd_server_port_2_subnetpoolid
+ mac_requirements:
+ get_input: port_pd_server_port_2_mac_requirements
+ exCP_naming:
+ get_input: port_pd_server_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_2_vlan_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_2_network_role_tag
+ network:
+ get_input: net
+ order:
+ get_input: port_pd_server_port_2_order
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pd
+ relationship: tosca.relationships.network.BindsTo
+ server_pd:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ flavor:
+ get_input: pd_server_flavor
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: pd_server_image
+ name:
+ get_input:
+ - pd_server_names
+ - 0
+ groups:
+ nested-pattern-4_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pattern-4.yml
+ description: nested1
+ members:
+ - pd_server_port_1
+ - pd_server_port_2
+ - server_pd
+ outputs:
+ pattern4_attr_1:
+ description: pattern4_attr_1_value
+ value: server_pd
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.pd_server
+ capabilities:
+ disk.iops_server_pd:
+ - server_pd
+ - disk.iops
+ disk.device.read.bytes.rate_server_pd:
+ - server_pd
+ - disk.device.read.bytes.rate
+ memory.resident_server_pd:
+ - server_pd
+ - memory.resident
+ cpu_util_server_pd:
+ - server_pd
+ - cpu_util
+ network.incoming.bytes_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.bytes
+ network.incoming.bytes_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.bytes
+ disk.device.read.requests_server_pd:
+ - server_pd
+ - disk.device.read.requests
+ network.incoming.bytes.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.bytes.rate
+ disk.device.allocation_server_pd:
+ - server_pd
+ - disk.device.allocation
+ disk.usage_server_pd:
+ - server_pd
+ - disk.usage
+ disk.capacity_server_pd:
+ - server_pd
+ - disk.capacity
+ endpoint_server_pd:
+ - server_pd
+ - endpoint
+ disk.device.capacity_server_pd:
+ - server_pd
+ - disk.device.capacity
+ attachment_pd_server_port_2:
+ - pd_server_port_2
+ - attachment
+ network.incoming.packets_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.packets
+ attachment_pd_server_port_1:
+ - pd_server_port_1
+ - attachment
+ network.incoming.packets_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.packets
+ memory.usage_server_pd:
+ - server_pd
+ - memory.usage
+ disk.allocation_server_pd:
+ - server_pd
+ - disk.allocation
+ disk.read.bytes.rate_server_pd:
+ - server_pd
+ - disk.read.bytes.rate
+ memory_server_pd:
+ - server_pd
+ - memory
+ disk.device.write.requests_server_pd:
+ - server_pd
+ - disk.device.write.requests
+ disk.device.usage_server_pd:
+ - server_pd
+ - disk.device.usage
+ feature_pd_server_port_1:
+ - pd_server_port_1
+ - feature
+ feature_pd_server_port_2:
+ - pd_server_port_2
+ - feature
+ disk.read.bytes_server_pd:
+ - server_pd
+ - disk.read.bytes
+ disk.device.read.bytes_server_pd:
+ - server_pd
+ - disk.device.read.bytes
+ network.incoming.packets.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.incoming.packets.rate
+ instance_server_pd:
+ - server_pd
+ - instance
+ binding_pd_server_port_2:
+ - pd_server_port_2
+ - binding
+ binding_pd_server_port_1:
+ - pd_server_port_1
+ - binding
+ cpu.delta_server_pd:
+ - server_pd
+ - cpu.delta
+ host_server_pd:
+ - server_pd
+ - host
+ network.outpoing.packets_pd_server_port_1:
+ - pd_server_port_1
+ - network.outpoing.packets
+ vcpus_server_pd:
+ - server_pd
+ - vcpus
+ disk.ephemeral.size_server_pd:
+ - server_pd
+ - disk.ephemeral.size
+ network.outpoing.packets_pd_server_port_2:
+ - pd_server_port_2
+ - network.outpoing.packets
+ network.outgoing.packets.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.packets.rate
+ disk.latency_server_pd:
+ - server_pd
+ - disk.latency
+ network.outgoing.packets.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.packets.rate
+ disk.device.write.bytes.rate_server_pd:
+ - server_pd
+ - disk.device.write.bytes.rate
+ disk.write.requests.rate_server_pd:
+ - server_pd
+ - disk.write.requests.rate
+ disk.write.requests_server_pd:
+ - server_pd
+ - disk.write.requests
+ network.outgoing.bytes_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.bytes
+ disk.device.iops_server_pd:
+ - server_pd
+ - disk.device.iops
+ network.outgoing.bytes_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.bytes
+ disk.read.requests_server_pd:
+ - server_pd
+ - disk.read.requests
+ os_server_pd:
+ - server_pd
+ - os
+ disk.device.latency_server_pd:
+ - server_pd
+ - disk.device.latency
+ binding_server_pd:
+ - server_pd
+ - binding
+ scalable_server_pd:
+ - server_pd
+ - scalable
+ network.outgoing.bytes.rate_pd_server_port_2:
+ - pd_server_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_pd_server_port_1:
+ - pd_server_port_1
+ - network.outgoing.bytes.rate
+ disk.write.bytes_server_pd:
+ - server_pd
+ - disk.write.bytes
+ disk.write.bytes.rate_server_pd:
+ - server_pd
+ - disk.write.bytes.rate
+ feature_server_pd:
+ - server_pd
+ - feature
+ disk.root.size_server_pd:
+ - server_pd
+ - disk.root.size
+ disk.device.read.requests.rate_server_pd:
+ - server_pd
+ - disk.device.read.requests.rate
+ disk.device.write.requests.rate_server_pd:
+ - server_pd
+ - disk.device.write.requests.rate
+ disk.device.write.bytes_server_pd:
+ - server_pd
+ - disk.device.write.bytes
+ cpu_server_pd:
+ - server_pd
+ - cpu
+ requirements:
+ local_storage_server_pd:
+ - server_pd
+ - local_storage
+ dependency_server_pd:
+ - server_pd
+ - dependency
+ link_pd_server_port_2:
+ - pd_server_port_2
+ - link
+ link_pd_server_port_1:
+ - pd_server_port_1
+ - link
+ dependency_pd_server_port_1:
+ - pd_server_port_1
+ - dependency
+ dependency_pd_server_port_2:
+ - pd_server_port_2
+ - dependency
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/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..cb7fdc359a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,1411 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_1c1_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ ps_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ oam_server_1c2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_1c1_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ ps_server_1b_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ cmaui_1c1_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ pd_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ pd_server_1b_ips:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ ps_server_1b_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ ps_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_1b_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ oam_server_1c2_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ oam_server_1c2_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ node_templates:
+ abstract_cmaui_1c1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1c1
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - packet_internal_network
+ compute_cmaui_1c1_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ vm_flavor_name:
+ get_input: cmaui_1c1_flavor
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_1c1_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_cmaui_1c1_name:
+ - get_input:
+ - cmaui_1c1_names
+ - 1
+ - get_input:
+ - cmaui_1c1_names
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_cmaui_1c1_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_pd_server_1b:
+ type: org.openecomp.resource.abstract.nodes.pd_server_1b
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_1b_name:
+ - get_input:
+ - pd_server_1b_names
+ - 0
+ vm_flavor_name:
+ get_input: pd_server_1b_flavor
+ port_pd_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_1b_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_1b_image
+ port_pd_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_b_port_network:
+ - get_input: net
+ port_pd_server_b_port_replacement_policy:
+ - AUTO
+ compute_pd_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ service_template_filter:
+ substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server_1b:
+ type: org.openecomp.resource.abstract.nodes.ps_server_1b
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_b_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_b_port_replacement_policy:
+ - AUTO
+ port_ps_server_b_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_1b_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_1b_flavor
+ port_ps_server_b_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_1b_image
+ port_ps_server_b_port_network:
+ - get_input: net
+ compute_ps_server_1b_availability_zone:
+ - get_input: availability_zone_0
+ compute_ps_server_1b_name:
+ - get_input:
+ - ps_server_1b_names
+ - 1
+ service_template_filter:
+ substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_oam_server_1c2_1:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 1
+ port_oam_port_network:
+ - packet_external_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_oam_server_1c2_0:
+ type: org.openecomp.resource.abstract.nodes.oam_server_1c2
+ directives:
+ - substitutable
+ properties:
+ port_oam_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_1c2_name:
+ - get_input:
+ - oam_server_1c2_names
+ - 0
+ port_oam_port_network:
+ - packet_internal_network
+ vm_flavor_name:
+ get_input: oam_server_1c2_flavor
+ compute_oam_server_1c2_availability_zone:
+ - get_input: availability_zone_0
+ port_oam_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 1
+ vm_image_name:
+ get_input: oam_server_1c2_image
+ port_oam_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_oam_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_oam_server_1c2_oam_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - packet_external_network
+ - packet_internal_network
+ - abstract_ps_server_1b
+ - abstract_oam_server_1c2_0
+ - abstract_oam_server_1c2_1
+ - abstract_pd_server_1b
+ - abstract_cmaui_1c1
+ outputs:
+ all_pattern_attr_1:
+ description: all_pattern_attr_1
+ value:
+ get_attribute:
+ - abstract_oam_server_1c2_1
+ - oam_server_1c2_accessIPv4
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.capacity_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.capacity_pd_server_1b
+ disk.device.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ disk.device.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.bytes.rate_ps_server_1b
+ disk.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes_cmaui_1c1
+ disk.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.usage_pd_server_1b
+ disk.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.iops_oam_server_1c2
+ disk.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.usage_oam_server_1c2
+ disk.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ feature_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.usage_oam_server_1c2
+ network.incoming.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes_pd_server_1b_pd_server_b_port
+ feature_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1
+ disk.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.requests_cmaui_1c1
+ disk.device.iops_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.iops_ps_server_1b
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ disk.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.iops_oam_server_1c2
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ network.outgoing.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.packets.rate_oam_server_1c2_oam_port
+ disk.device.iops_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.iops_pd_server_1b
+ network.incoming.packets_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets_pd_server_1b_pd_server_b_port
+ attachment_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - attachment_ps_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.device.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes.rate_pd_server_1b
+ disk.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes.rate_oam_server_1c2
+ disk.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes.rate_oam_server_1c2
+ scalable_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - scalable_oam_server_1c2
+ disk.latency_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.latency_pd_server_1b
+ scalable_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - scalable_oam_server_1c2
+ disk.device.read.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.requests.rate_pd_server_1b
+ disk.device.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.device.read.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes_cmaui_1c1
+ disk.device.read.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.requests.rate_ps_server_1b
+ disk.device.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.usage_oam_server_1c2
+ disk.device.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.capacity_oam_server_1c2
+ disk.device.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.capacity_oam_server_1c2
+ binding_server_1b_ps:
+ - abstract_ps_server_1b
+ - binding_ps_server_1b
+ binding_server_1b_pd:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b
+ disk.device.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.usage_oam_server_1c2
+ memory.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory.usage_pd_server_1b
+ network.outpoing.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ network.outpoing.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outpoing.packets_oam_server_1c2_oam_port
+ binding_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1_cmaui_port
+ memory.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory.usage_ps_server_1b
+ cpu_util_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu_util_pd_server_1b
+ cpu_util_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_util_oam_server_1c2
+ cpu_util_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_util_oam_server_1c2
+ memory_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory_oam_server_1c2
+ memory_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes_oam_server_1c2
+ disk.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes_oam_server_1c2
+ memory.resident_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.resident_oam_server_1c2
+ memory.resident_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.resident_oam_server_1c2
+ cpu_util_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu_util_ps_server_1b
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes_cmaui_1c1_cmaui_port
+ os_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - os_oam_server_1c2
+ disk.device.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ instance_server_1b_pd:
+ - abstract_pd_server_1b
+ - instance_pd_server_1b
+ disk.device.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.iops_cmaui_1c1
+ os_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - os_oam_server_1c2
+ disk.device.write.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes_pd_server_1b
+ disk.device.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ disk.device.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.allocation_cmaui_1c1
+ feature_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2
+ disk.device.write.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.bytes_ps_server_1b
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ vcpus_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets.rate_cmaui_1c1_cmaui_port
+ feature_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ network.incoming.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.bytes.rate_pd_server_1b_pd_server_b_port
+ network.outgoing.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - feature_cmaui_1c1_cmaui_port
+ instance_server_1b_ps:
+ - abstract_ps_server_1b
+ - instance_ps_server_1b
+ feature_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2
+ network.outgoing.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes_oam_server_1c2_oam_port
+ disk.device.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ instance_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ cpu.delta_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu.delta_ps_server_1b
+ instance_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - instance_cmaui_1c1
+ disk.device.read.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests.rate_oam_server_1c2
+ disk.device.read.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests.rate_oam_server_1c2
+ attachment_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - attachment_oam_server_1c2_oam_port
+ disk.device.write.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.bytes.rate_pd_server_1b
+ disk.capacity_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.capacity_oam_server_1c2
+ disk.capacity_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.capacity_oam_server_1c2
+ cpu.delta_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu.delta_pd_server_1b
+ attachment_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - attachment_oam_server_1c2_oam_port
+ disk.device.write.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.requests_pd_server_1b
+ disk.write.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.bytes.rate_oam_server_1c2
+ disk.write.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.bytes.rate_oam_server_1c2
+ endpoint_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ network.outgoing.packets.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.packets.rate_ps_server_1b_ps_server_b_port
+ endpoint_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - endpoint_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ disk.device.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.capacity_cmaui_1c1
+ disk.device.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.usage_cmaui_1c1
+ network.incoming.bytes_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.bytes_ps_server_1b_ps_server_b_port
+ attachment_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - attachment_pd_server_1b_pd_server_b_port
+ vcpus_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - vcpus_cmaui_1c1
+ binding_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - binding_ps_server_1b_ps_server_b_port
+ disk.device.write.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.bytes.rate_ps_server_1b
+ disk.device.write.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.requests_ps_server_1b
+ disk.device.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.latency_oam_server_1c2
+ disk.device.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.latency_oam_server_1c2
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ disk.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests.rate_cmaui_1c1
+ disk.device.read.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.requests_pd_server_1b
+ disk.read.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.requests_pd_server_1b
+ cpu_util_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.allocation_oam_server_1c2
+ disk.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.allocation_oam_server_1c2
+ cpu_util_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_util_cmaui_1c1
+ disk.device.read.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.requests_ps_server_1b
+ binding_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - binding_pd_server_1b_pd_server_b_port
+ disk.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.bytes_oam_server_1c2
+ disk.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.bytes_oam_server_1c2
+ cpu_server_1b_pd:
+ - abstract_pd_server_1b
+ - cpu_pd_server_1b
+ binding_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2_oam_port
+ disk.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ disk.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes.rate_cmaui_1c1
+ disk.allocation_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.allocation_pd_server_1b
+ binding_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2_oam_port
+ disk.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ disk.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.read.bytes.rate_cmaui_1c1
+ host_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ host_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - host_cmaui_1c1
+ cpu_server_1b_ps:
+ - abstract_ps_server_1b
+ - cpu_ps_server_1b
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ disk.allocation_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.allocation_ps_server_1b
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outpoing.packets_cmaui_1c1_cmaui_port
+ disk.latency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.latency_oam_server_1c2
+ disk.latency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.latency_oam_server_1c2
+ disk.read.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.requests_ps_server_1b
+ disk.capacity_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.capacity_ps_server_1b
+ memory.usage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - memory.usage_oam_server_1c2
+ network.outpoing.packets_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outpoing.packets_ps_server_1b_ps_server_b_port
+ memory.usage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - memory.usage_oam_server_1c2
+ disk.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.read.requests_oam_server_1c2
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ disk.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.read.requests_oam_server_1c2
+ disk.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.usage_ps_server_1b
+ disk.root.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ disk.root.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.root.size_oam_server_1c2
+ memory.resident_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.resident_cmaui_1c1
+ network.incoming.bytes.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.bytes.rate_ps_server_1b_ps_server_b_port
+ network.incoming.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ os_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ os_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - os_cmaui_1c1
+ instance_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - instance_oam_server_1c2
+ instance_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - instance_oam_server_1c2
+ network.incoming.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes.rate_oam_server_1c2_oam_port
+ vcpus_server_1b_pd:
+ - abstract_pd_server_1b
+ - vcpus_pd_server_1b
+ memory.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ disk.write.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.bytes.rate_ps_server_1b
+ memory.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory.usage_cmaui_1c1
+ binding_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ memory_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ binding_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - binding_cmaui_1c1
+ feature_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - feature_ps_server_1b_ps_server_b_port
+ disk.device.iops_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.iops_oam_server_1c2
+ vcpus_server_1b_ps:
+ - abstract_ps_server_1b
+ - vcpus_ps_server_1b
+ disk.device.iops_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.iops_oam_server_1c2
+ disk.write.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.bytes.rate_pd_server_1b
+ binding_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - binding_oam_server_1c2
+ binding_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - binding_oam_server_1c2
+ os_server_1b_pd:
+ - abstract_pd_server_1b
+ - os_pd_server_1b
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ network.outgoing.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.packets.rate_pd_server_1b_pd_server_b_port
+ memory_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - memory_cmaui_1c1
+ disk.device.latency_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.latency_pd_server_1b
+ disk.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests_oam_server_1c2
+ disk.device.usage_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.usage_pd_server_1b
+ disk.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests_oam_server_1c2
+ vcpus_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - vcpus_oam_server_1c2
+ vcpus_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - vcpus_oam_server_1c2
+ os_server_1b_ps:
+ - abstract_ps_server_1b
+ - os_ps_server_1b
+ disk.device.latency_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.latency_ps_server_1b
+ disk.ephemeral.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.ephemeral.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.ephemeral.size_cmaui_1c1
+ disk.root.size_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ disk.device.usage_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.usage_ps_server_1b
+ disk.root.size_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.root.size_cmaui_1c1
+ disk.read.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.bytes_ps_server_1b
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ disk.device.write.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.ephemeral.size_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.ephemeral.size_pd_server_1b
+ disk.device.write.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.requests_oam_server_1c2
+ disk.allocation_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ memory_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory_ps_server_1b
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.packets_cmaui_1c1_cmaui_port
+ network.outgoing.bytes.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.bytes.rate_ps_server_1b_ps_server_b_port
+ network.incoming.packets.rate_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.packets.rate_ps_server_1b_ps_server_b_port
+ disk.device.write.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ disk.device.write.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.requests.rate_cmaui_1c1
+ feature_server_1b_ps:
+ - abstract_ps_server_1b
+ - feature_ps_server_1b
+ disk.write.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.requests.rate_ps_server_1b
+ disk.device.write.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.requests_oam_server_1c2
+ disk.device.write.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes.rate_cmaui_1c1
+ disk.device.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.write.bytes_cmaui_1c1
+ host_server_1b_pd:
+ - abstract_pd_server_1b
+ - host_pd_server_1b
+ disk.device.read.requests_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.requests_oam_server_1c2
+ disk.ephemeral.size_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.ephemeral.size_ps_server_1b
+ disk.read.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.bytes_pd_server_1b
+ host_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - host_oam_server_1c2
+ disk.device.read.requests_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.requests_oam_server_1c2
+ memory_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory_pd_server_1b
+ host_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - host_oam_server_1c2
+ network.incoming.packets.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ disk.write.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.bytes_ps_server_1b
+ network.incoming.packets.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets.rate_oam_server_1c2_oam_port
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ network.outpoing.packets_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outpoing.packets_pd_server_1b_pd_server_b_port
+ feature_server_1b_pd:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b
+ disk.device.read.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ disk.allocation_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.allocation_cmaui_1c1
+ disk.device.read.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests_cmaui_1c1
+ disk.device.allocation_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.allocation_pd_server_1b
+ disk.root.size_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.root.size_ps_server_1b
+ disk.device.allocation_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.allocation_oam_server_1c2
+ disk.device.allocation_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.allocation_oam_server_1c2
+ network.outgoing.bytes_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes_pd_server_1b_pd_server_b_port
+ disk.write.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.bytes_pd_server_1b
+ disk.write.requests_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ disk.write.requests_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.requests_cmaui_1c1
+ disk.device.capacity_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.capacity_pd_server_1b
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ disk.root.size_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.root.size_pd_server_1b
+ cpu_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
+ cpu_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu_cmaui_1c1
+ cpu_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu_oam_server_1c2
+ disk.device.capacity_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.capacity_ps_server_1b
+ disk.write.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.requests.rate_pd_server_1b
+ cpu_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu_oam_server_1c2
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ disk.device.read.bytes.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ disk.device.read.bytes.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.bytes.rate_cmaui_1c1
+ host_server_1b_ps:
+ - abstract_ps_server_1b
+ - host_ps_server_1b
+ disk.write.requests.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.write.requests.rate_oam_server_1c2
+ cpu.delta_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - cpu.delta_oam_server_1c2
+ disk.iops_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.iops_pd_server_1b
+ disk.write.requests.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.write.requests.rate_oam_server_1c2
+ disk.usage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ disk.usage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.usage_cmaui_1c1
+ disk.device.allocation_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.allocation_ps_server_1b
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ network.incoming.bytes_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ network.incoming.bytes_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.bytes_oam_server_1c2_oam_port
+ disk.device.write.requests.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.write.requests.rate_ps_server_1b
+ attachment_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ network.outgoing.bytes.rate_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ network.outgoing.bytes.rate_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.outgoing.bytes.rate_oam_server_1c2_oam_port
+ disk.iops_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.iops_ps_server_1b
+ disk.capacity_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - attachment_cmaui_1c1_cmaui_port
+ disk.capacity_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.capacity_cmaui_1c1
+ disk.ephemeral.size_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.ephemeral.size_oam_server_1c2
+ disk.read.bytes.rate_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.read.bytes.rate_ps_server_1b
+ disk.ephemeral.size_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.ephemeral.size_oam_server_1c2
+ disk.device.read.requests.rate_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ disk.device.read.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes_oam_server_1c2
+ disk.device.read.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes_oam_server_1c2
+ disk.device.read.requests.rate_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.read.requests.rate_cmaui_1c1
+ network.incoming.packets_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.incoming.packets_ps_server_1b_ps_server_b_port
+ disk.write.requests_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.write.requests_ps_server_1b
+ feature_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - feature_pd_server_1b_pd_server_b_port
+ disk.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ scalable_server_1b_ps:
+ - abstract_ps_server_1b
+ - scalable_ps_server_1b
+ disk.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.latency_cmaui_1c1
+ cpu.delta_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - cpu.delta_oam_server_1c2
+ disk.device.read.bytes.rate_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.read.bytes.rate_oam_server_1c2
+ disk.device.read.bytes.rate_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.read.bytes.rate_oam_server_1c2
+ scalable_server_1b_pd:
+ - abstract_pd_server_1b
+ - scalable_pd_server_1b
+ disk.write.requests_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.write.requests_pd_server_1b
+ disk.latency_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.latency_ps_server_1b
+ disk.write.bytes_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ network.outgoing.bytes.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.outgoing.bytes.rate_pd_server_1b_pd_server_b_port
+ disk.write.bytes_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.write.bytes_cmaui_1c1
+ feature_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - feature_oam_server_1c2_oam_port
+ feature_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - feature_oam_server_1c2_oam_port
+ network.incoming.packets.rate_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - network.incoming.packets.rate_pd_server_1b_pd_server_b_port
+ disk.device.latency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ disk.read.bytes.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.read.bytes.rate_pd_server_1b
+ scalable_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ disk.device.latency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.device.latency_cmaui_1c1
+ scalable_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - scalable_cmaui_1c1
+ cpu.delta_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ endpoint_server_1b_pd:
+ - abstract_pd_server_1b
+ - endpoint_pd_server_1b
+ cpu.delta_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - cpu.delta_cmaui_1c1
+ endpoint_server_1b_ps:
+ - abstract_ps_server_1b
+ - endpoint_ps_server_1b
+ network.incoming.packets_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - network.incoming.packets_oam_server_1c2_oam_port
+ network.incoming.packets_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - network.incoming.packets_oam_server_1c2_oam_port
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ network.outgoing.bytes_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - network.outgoing.bytes_ps_server_1b_ps_server_b_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
+ disk.device.read.bytes_server_1b_ps:
+ - abstract_ps_server_1b
+ - disk.device.read.bytes_ps_server_1b
+ disk.iops_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.iops_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - disk.iops_cmaui_1c1
+ disk.device.write.requests.rate_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.write.requests.rate_pd_server_1b
+ memory.resident_server_1b_pd:
+ - abstract_pd_server_1b
+ - memory.resident_pd_server_1b
+ disk.device.write.bytes_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - disk.device.write.bytes_oam_server_1c2
+ disk.device.write.bytes_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - disk.device.write.bytes_oam_server_1c2
+ memory.resident_server_1b_ps:
+ - abstract_ps_server_1b
+ - memory.resident_ps_server_1b
+ disk.device.read.bytes_server_1b_pd:
+ - abstract_pd_server_1b
+ - disk.device.read.bytes_pd_server_1b
+ endpoint_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - endpoint_oam_server_1c2
+ endpoint_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - endpoint_oam_server_1c2
+ requirements:
+ dependency_server_1b_pd:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b
+ link_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - link_pd_server_1b_pd_server_b_port
+ local_storage_server_1b_ps:
+ - abstract_ps_server_1b
+ - local_storage_ps_server_1b
+ dependency_oam_port_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2_oam_port
+ dependency_oam_port_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2_oam_port
+ dependency_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ dependency_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1
+ link_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - link_ps_server_1b_ps_server_b_port
+ local_storage_server_1b_pd:
+ - abstract_pd_server_1b
+ - local_storage_pd_server_1b
+ dependency_ps_server_1b_port:
+ - abstract_ps_server_1b
+ - dependency_ps_server_1b_ps_server_b_port
+ dependency_server_1b_ps:
+ - abstract_ps_server_1b
+ - dependency_ps_server_1b
+ dependency_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - dependency_oam_server_1c2
+ dependency_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - dependency_oam_server_1c2
+ local_storage_server_1c2_oam_2:
+ - abstract_oam_server_1c2_1
+ - local_storage_oam_server_1c2
+ local_storage_server_1c2_oam_1:
+ - abstract_oam_server_1c2_0
+ - local_storage_oam_server_1c2
+ dependency_pd_server_1b_port:
+ - abstract_pd_server_1b
+ - dependency_pd_server_1b_pd_server_b_port
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ local_storage_server_1c1_cmaui_2:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ local_storage_server_1c1_cmaui_1:
+ - abstract_cmaui_1c1
+ - local_storage_cmaui_1c1
+ dependency_cmaui_port_2:
+ - abstract_cmaui_1c1
+ - dependency_cmaui_1c1_cmaui_port
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/MANIFEST.json
new file mode 100644
index 0000000000..cc7753397c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/main.yml
new file mode 100644
index 0000000000..068c7afdcf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/main.yml
@@ -0,0 +1,16 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_compute:
+ type: nested1.yml
+ properties:
+ p1: {get_param: jsa_name}
+ p2: image
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/nested1.yml
new file mode 100644
index 0000000000..788c99afe7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/in/nested1.yml
@@ -0,0 +1,82 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+
+resources:
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 1]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name \ 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/nestedCatalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..8fe327f845
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,1198 @@
+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.cmaui:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port:
+ 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
+ network.incoming.bytes.rate_cmaui_cmaui_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_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_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
+ 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
+ network.incoming.bytes_cmaui_cmaui_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_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:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_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_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
+ binding_cmaui_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - 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
+ 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.bytes_cmaui_cmaui_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_cmaui_cmaui_port:
+ type: tosca.capabilities.Node
+ 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.outpoing.packets_cmaui_cmaui_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_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_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_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.packets.rate_cmaui_cmaui_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_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:
+ type: org.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
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ 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_server_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_server_cmaui_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_1:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ disk.device.usage_server_cmaui_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_cmaui_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.latency_server_cmaui_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.latency_server_cmaui_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.root.size_server_cmaui_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.rate_server_cmaui_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.root.size_server_cmaui_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.requests.rate_server_cmaui_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_cmaui_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_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.requests_server_cmaui_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.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
+ disk.device.iops_server_cmaui_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_cmaui_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_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.capacity_server_cmaui_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.bytes.rate_server_cmaui_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.bytes.rate_server_cmaui_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_cmaui_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_server_cmaui_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_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_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.rate_server_cmaui_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.requests.rate_server_cmaui_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
+ memory_server_cmaui_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_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_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_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_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.ephemeral.size_server_cmaui_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_server_cmaui_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.capacity_server_cmaui_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.capacity_server_cmaui_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
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ 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
+ disk.iops_server_cmaui_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_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.requests_server_cmaui_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_cmaui_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.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.device.write.bytes.rate_server_cmaui_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_server_cmaui_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.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_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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_util_server_cmaui_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_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.write.bytes.rate_server_cmaui_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.bytes.rate_server_cmaui_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_server_cmaui_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.bytes.rate_server_cmaui_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_server_cmaui_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_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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_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_cmaui_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
+ feature_server_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_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_server_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_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
+ binding_server_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_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_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_1:
+ type: tosca.capabilities.Scalable
+ 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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_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_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_server_cmaui_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_server_cmaui_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_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_external_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_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.allocation_server_cmaui_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
+ memory_server_cmaui_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_server_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_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.capacity_server_cmaui_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_cmaui_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.requests.rate_server_cmaui_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_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
+ vcpus_server_cmaui_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.requests_server_cmaui_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.rate_server_cmaui_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_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_server_cmaui_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_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_cmaui_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.delta_server_cmaui_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.delta_server_cmaui_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.rate_server_cmaui_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
+ memory.resident_server_cmaui_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
+ memory.resident_server_cmaui_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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_server_cmaui_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_cmaui_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_cmaui_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_cmaui_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..f2c32347e0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/MainServiceTemplate.yaml
@@ -0,0 +1,35 @@
+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:
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested_compute:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2: image
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested_compute
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/Nested_cmauiServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/Nested_cmauiServiceTemplate.yaml
new file mode 100644
index 0000000000..5ac5b94acf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/Nested_cmauiServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ network.incoming.bytes.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.bytes.rate
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ network.incoming.bytes_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.bytes
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ attachment_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - attachment
+ network.incoming.packets_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.packets
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ binding_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - binding
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.outgoing.bytes_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.bytes
+ feature_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - feature
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ network.outpoing.packets_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outpoing.packets
+ feature_cmaui:
+ - cmaui
+ - feature
+ network.outgoing.bytes.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.bytes.rate
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ network.outgoing.packets.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.packets.rate
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ network.incoming.packets.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.packets.rate
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ link_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - link
+ dependency_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - dependency
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..89427ca0d8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,544 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ abstract_cmaui_1:
+ type: org.openecomp.resource.abstract.nodes.cmaui
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - packet_internal_network
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 0
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_cmauiServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_cmaui_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ abstract_cmaui_0:
+ type: org.openecomp.resource.abstract.nodes.cmaui
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - packet_external_network
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 1
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_cmauiServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ requirements:
+ - link_cmaui_cmaui_port:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - packet_external_network
+ - packet_internal_network
+ - abstract_cmaui_0
+ - abstract_cmaui_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.device.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.usage_cmaui
+ disk.device.usage_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.usage_cmaui
+ disk.device.latency_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.latency_cmaui
+ disk.device.latency_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.latency_cmaui
+ disk.root.size_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.root.size_cmaui
+ disk.device.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.write.requests.rate_cmaui
+ disk.root.size_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.root.size_cmaui
+ disk.device.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.requests.rate_cmaui
+ disk.read.requests_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.read.requests_cmaui
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.outgoing.bytes_cmaui_cmaui_port
+ disk.read.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.requests_cmaui
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.bytes_cmaui_cmaui_port
+ disk.device.iops_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.iops_cmaui
+ disk.device.iops_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.iops_cmaui
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ disk.device.capacity_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.capacity_cmaui
+ disk.device.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.read.bytes.rate_cmaui
+ disk.device.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.bytes.rate_cmaui
+ disk.read.bytes_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.read.bytes_cmaui
+ disk.read.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.bytes_cmaui
+ disk.device.read.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.bytes_cmaui
+ disk.device.read.bytes_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.read.bytes_cmaui
+ disk.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.requests.rate_cmaui
+ disk.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.write.requests.rate_cmaui
+ memory_server_cmaui_2:
+ - abstract_cmaui_0
+ - memory_cmaui
+ cpu_server_cmaui_2:
+ - abstract_cmaui_0
+ - cpu_cmaui
+ cpu_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu_cmaui
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.incoming.packets_cmaui_cmaui_port
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.incoming.packets_cmaui_cmaui_port
+ disk.ephemeral.size_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.ephemeral.size_cmaui
+ disk.ephemeral.size_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.ephemeral.size_cmaui
+ disk.capacity_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.capacity_cmaui
+ disk.capacity_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.capacity_cmaui
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ binding_cmaui_port_1:
+ - abstract_cmaui_1
+ - binding_cmaui_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui_0
+ - binding_cmaui_cmaui_port
+ disk.iops_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.iops_cmaui
+ disk.iops_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.iops_cmaui
+ disk.device.write.requests_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.write.requests_cmaui
+ disk.device.write.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.requests_cmaui
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.outgoing.bytes.rate_cmaui_cmaui_port
+ disk.device.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.bytes.rate_cmaui
+ cpu_util_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu_util_cmaui
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.bytes.rate_cmaui_cmaui_port
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.incoming.bytes_cmaui_cmaui_port
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ cpu_util_server_cmaui_2:
+ - abstract_cmaui_0
+ - cpu_util_cmaui
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.incoming.bytes_cmaui_cmaui_port
+ disk.device.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.write.bytes.rate_cmaui
+ disk.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.write.bytes.rate_cmaui
+ disk.device.write.bytes_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.write.bytes_cmaui
+ disk.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.bytes.rate_cmaui
+ disk.device.write.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.write.bytes_cmaui
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.incoming.packets.rate_cmaui_cmaui_port
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.incoming.packets.rate_cmaui_cmaui_port
+ feature_cmaui_port_1:
+ - abstract_cmaui_1
+ - feature_cmaui_cmaui_port
+ feature_cmaui_port_2:
+ - abstract_cmaui_0
+ - feature_cmaui_cmaui_port
+ disk.write.bytes_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.bytes_cmaui
+ disk.write.bytes_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.write.bytes_cmaui
+ feature_server_cmaui_1:
+ - abstract_cmaui_1
+ - feature_cmaui
+ disk.allocation_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.allocation_cmaui
+ feature_server_cmaui_2:
+ - abstract_cmaui_0
+ - feature_cmaui
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ disk.allocation_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.allocation_cmaui
+ binding_server_cmaui_1:
+ - abstract_cmaui_1
+ - binding_cmaui
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ binding_server_cmaui_2:
+ - abstract_cmaui_0
+ - binding_cmaui
+ vcpus_server_cmaui_2:
+ - abstract_cmaui_0
+ - vcpus_cmaui
+ attachment_cmaui_port_2:
+ - abstract_cmaui_0
+ - attachment_cmaui_cmaui_port
+ scalable_server_cmaui_2:
+ - abstract_cmaui_0
+ - scalable_cmaui
+ scalable_server_cmaui_1:
+ - abstract_cmaui_1
+ - scalable_cmaui
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.outgoing.packets.rate_cmaui_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.outgoing.packets.rate_cmaui_cmaui_port
+ attachment_cmaui_port_1:
+ - abstract_cmaui_1
+ - attachment_cmaui_cmaui_port
+ disk.write.requests_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.write.requests_cmaui
+ disk.write.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.write.requests_cmaui
+ disk.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.usage_cmaui
+ disk.usage_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.usage_cmaui
+ endpoint_server_cmaui_1:
+ - abstract_cmaui_1
+ - endpoint_cmaui
+ endpoint_server_cmaui_2:
+ - abstract_cmaui_0
+ - endpoint_cmaui
+ os_server_cmaui_2:
+ - abstract_cmaui_0
+ - os_cmaui
+ os_server_cmaui_1:
+ - abstract_cmaui_1
+ - os_cmaui
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ disk.device.allocation_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.allocation_cmaui
+ disk.device.allocation_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.allocation_cmaui
+ memory_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory_cmaui
+ host_server_cmaui_2:
+ - abstract_cmaui_0
+ - host_cmaui
+ host_server_cmaui_1:
+ - abstract_cmaui_1
+ - host_cmaui
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ instance_server_cmaui_2:
+ - abstract_cmaui_0
+ - instance_cmaui
+ disk.device.capacity_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.capacity_cmaui
+ instance_server_cmaui_1:
+ - abstract_cmaui_1
+ - instance_cmaui
+ disk.device.read.requests.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.requests.rate_cmaui
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.incoming.bytes.rate_cmaui_cmaui_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.incoming.bytes.rate_cmaui_cmaui_port
+ vcpus_server_cmaui_1:
+ - abstract_cmaui_1
+ - vcpus_cmaui
+ disk.device.read.requests_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.read.requests_cmaui
+ disk.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.read.bytes.rate_cmaui
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui_1
+ - network.outpoing.packets_cmaui_cmaui_port
+ disk.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.read.bytes.rate_cmaui
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui_0
+ - network.outpoing.packets_cmaui_cmaui_port
+ disk.device.read.requests_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.device.read.requests_cmaui
+ cpu.delta_server_cmaui_1:
+ - abstract_cmaui_1
+ - cpu.delta_cmaui
+ cpu.delta_server_cmaui_2:
+ - abstract_cmaui_0
+ - cpu.delta_cmaui
+ disk.device.read.requests.rate_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.device.read.requests.rate_cmaui
+ memory.resident_server_cmaui_2:
+ - abstract_cmaui_0
+ - memory.resident_cmaui
+ memory.resident_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory.resident_cmaui
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ disk.latency_server_cmaui_2:
+ - abstract_cmaui_0
+ - disk.latency_cmaui
+ disk.latency_server_cmaui_1:
+ - abstract_cmaui_1
+ - disk.latency_cmaui
+ memory.usage_server_cmaui_1:
+ - abstract_cmaui_1
+ - memory.usage_cmaui
+ memory.usage_server_cmaui_2:
+ - abstract_cmaui_0
+ - memory.usage_cmaui
+ requirements:
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ dependency_cmaui_port_1:
+ - abstract_cmaui_1
+ - dependency_cmaui_cmaui_port
+ local_storage_server_cmaui_2:
+ - abstract_cmaui_0
+ - local_storage_cmaui
+ dependency_server_cmaui_2:
+ - abstract_cmaui_0
+ - dependency_cmaui
+ dependency_server_cmaui_1:
+ - abstract_cmaui_1
+ - dependency_cmaui
+ dependency_cmaui_port_2:
+ - abstract_cmaui_0
+ - dependency_cmaui_cmaui_port
+ local_storage_server_cmaui_1:
+ - abstract_cmaui_1
+ - local_storage_cmaui
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/MANIFEST.json
new file mode 100644
index 0000000000..cc7753397c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/main.yml
new file mode 100644
index 0000000000..d244b63167
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/main.yml
@@ -0,0 +1,16 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_no_compute:
+ type: nested1.yml
+ properties:
+ p1: {get_param: jsa_name}
+ p2: image
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/nested1.yml
new file mode 100644
index 0000000000..e95f31b3e1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/in/nested1.yml
@@ -0,0 +1,62 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ packet_internal_network_name:
+ type: string
+ packet_external_network_name:
+ type: string
+ net:
+ type: string
+
+resources:
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_internal_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_resource: packet_external_network}
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ packet_internal_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_internal_network_name
+
+ packet_external_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ get_param: packet_external_network_name \ 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/nestedNoCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..e6241b2e11
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,277 @@
+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.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
+ packet_internal_network_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ packet_external_network_name:
+ type: string
+ 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
+ - binding_cmaui_port_2:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_packet_external_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_packet_internal_network:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_cmaui_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - binding_cmaui_port_1:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ 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
+ 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
+ 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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_internal_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_packet_internal_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_internal_network:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ end_point_packet_external_network:
+ type: tosca.capabilities.Endpoint
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ 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
+ 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.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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ attachment_packet_internal_network:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ 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_packet_external_network:
+ type: tosca.capabilities.Attachment
+ 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
+ link_packet_external_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_packet_external_network:
+ type: tosca.capabilities.Node
+ 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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..ddf4044b17
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/MainServiceTemplate.yaml
@@ -0,0 +1,35 @@
+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:
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested_no_compute:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2: image
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested_no_compute
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..d12565973c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedNoCompute/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,248 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ packet_internal_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ packet_external_network_name:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_external_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_external_network
+ relationship: tosca.relationships.network.LinksTo
+ packet_external_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_external_network_name
+ packet_internal_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: packet_internal_network_name
+ cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network: packet_internal_network
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: packet_internal_network
+ relationship: tosca.relationships.network.LinksTo
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - cmaui_port_2
+ - packet_external_network
+ - packet_internal_network
+ - cmaui_port_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ network.incoming.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets
+ network.incoming.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets
+ network.incoming.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.packets.rate
+ feature_cmaui_port_1:
+ - cmaui_port_1
+ - feature
+ feature_cmaui_port_2:
+ - cmaui_port_2
+ - feature
+ end_point_packet_internal_network:
+ - packet_internal_network
+ - end_point
+ link_packet_internal_network:
+ - packet_internal_network
+ - link
+ feature_packet_internal_network:
+ - packet_internal_network
+ - feature
+ end_point_packet_external_network:
+ - packet_external_network
+ - end_point
+ attachment_cmaui_port_2:
+ - cmaui_port_2
+ - attachment
+ network.outgoing.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes
+ network.outgoing.packets.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.packets.rate
+ network.outgoing.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes
+ attachment_cmaui_port_1:
+ - cmaui_port_1
+ - attachment
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ network.incoming.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes.rate
+ network.incoming.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes.rate
+ attachment_packet_internal_network:
+ - packet_internal_network
+ - attachment
+ network.outpoing.packets_cmaui_port_1:
+ - cmaui_port_1
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_port_2:
+ - cmaui_port_2
+ - network.outpoing.packets
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - cmaui_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - cmaui_port_1
+ - network.outgoing.bytes.rate
+ attachment_packet_external_network:
+ - packet_external_network
+ - attachment
+ network.incoming.bytes_cmaui_port_2:
+ - cmaui_port_2
+ - network.incoming.bytes
+ link_packet_external_network:
+ - packet_external_network
+ - link
+ feature_packet_external_network:
+ - packet_external_network
+ - feature
+ network.incoming.bytes_cmaui_port_1:
+ - cmaui_port_1
+ - network.incoming.bytes
+ requirements:
+ binding_cmaui_port_1:
+ - cmaui_port_1
+ - binding
+ binding_cmaui_port_2:
+ - cmaui_port_2
+ - binding
+ dependency_packet_internal_network:
+ - packet_internal_network
+ - dependency
+ dependency_cmaui_port_1:
+ - cmaui_port_1
+ - dependency
+ dependency_cmaui_port_2:
+ - cmaui_port_2
+ - dependency
+ dependency_packet_external_network:
+ - packet_external_network
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/MANIFEST.json
new file mode 100644
index 0000000000..cc7753397c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/main.yml
new file mode 100644
index 0000000000..c7f46ca2c0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/main.yml
@@ -0,0 +1,16 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested1Level:
+ type: nested1.yml
+ properties:
+ p1: { get_param: jsa_name}
+ p2: { get_param: jsa_name}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/nested1.yml
new file mode 100644
index 0000000000..ae31f072a5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/in/nested1.yml
@@ -0,0 +1,68 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_cmaui_1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+
+ server_cmaui_2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 1]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_2 }
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..3113acf1d8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,1148 @@
+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.cmaui:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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
+ compute_cmaui_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ 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
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_cmaui_cmaui_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_cmaui_port:
+ 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
+ network.incoming.bytes.rate_cmaui_cmaui_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_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_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
+ 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
+ network.incoming.bytes_cmaui_cmaui_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_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:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_cmaui_cmaui_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_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
+ binding_cmaui_cmaui_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - 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
+ 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.bytes_cmaui_cmaui_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_cmaui_cmaui_port:
+ type: tosca.capabilities.Node
+ 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.outpoing.packets_cmaui_cmaui_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_cmaui:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_cmaui_cmaui_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_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.packets.rate_cmaui_cmaui_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_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:
+ type: org.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_server_cmaui_2:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - 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_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_1:
+ 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:
+ disk.device.usage_server_cmaui_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_cmaui_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.latency_server_cmaui_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.latency_server_cmaui_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.root.size_server_cmaui_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.rate_server_cmaui_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.root.size_server_cmaui_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.requests.rate_server_cmaui_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_cmaui_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_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.requests_server_cmaui_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.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
+ disk.device.iops_server_cmaui_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_cmaui_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.capacity_server_cmaui_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.bytes.rate_server_cmaui_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.bytes.rate_server_cmaui_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_cmaui_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_server_cmaui_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_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_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.rate_server_cmaui_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.requests.rate_server_cmaui_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
+ memory_server_cmaui_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_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_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_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_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.ephemeral.size_server_cmaui_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_server_cmaui_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.capacity_server_cmaui_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.capacity_server_cmaui_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
+ 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
+ disk.iops_server_cmaui_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_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.requests_server_cmaui_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_cmaui_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.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.device.write.bytes.rate_server_cmaui_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_server_cmaui_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.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_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_util_server_cmaui_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_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.write.bytes.rate_server_cmaui_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.bytes.rate_server_cmaui_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_server_cmaui_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.bytes.rate_server_cmaui_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_server_cmaui_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_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
+ feature_cmaui_port_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_cmaui_port_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes_server_cmaui_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_cmaui_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
+ feature_server_cmaui_1:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_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_server_cmaui_2:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_server_cmaui_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
+ binding_server_cmaui_1:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_server_cmaui_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_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_1:
+ type: tosca.capabilities.Scalable
+ 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
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests_server_cmaui_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_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_server_cmaui_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_server_cmaui_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_1:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_1:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_cmaui_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.allocation_server_cmaui_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
+ memory_server_cmaui_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_server_cmaui_2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_1:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_server_cmaui_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.capacity_server_cmaui_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_cmaui_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.requests.rate_server_cmaui_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_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
+ vcpus_server_cmaui_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.requests_server_cmaui_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.rate_server_cmaui_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_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_server_cmaui_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_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_cmaui_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.delta_server_cmaui_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.delta_server_cmaui_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.rate_server_cmaui_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
+ memory.resident_server_cmaui_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
+ memory.resident_server_cmaui_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_cmaui_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_cmaui_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_cmaui_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_cmaui_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..aabe7d7229
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/MainServiceTemplate.yaml
@@ -0,0 +1,36 @@
+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:
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2:
+ get_input: jsa_name
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/Nested_cmauiServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/Nested_cmauiServiceTemplate.yaml
new file mode 100644
index 0000000000..5ac5b94acf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/Nested_cmauiServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_order:
+ type: integer
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_subnetpoolid:
+ type: string
+ required: true
+ node_templates:
+ cmaui_cmaui_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_cmaui_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_cmaui_port_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_network_role_tag
+ mac_requirements:
+ get_input: port_cmaui_port_mac_requirements
+ order:
+ get_input: port_cmaui_port_order
+ network_role:
+ get_input: port_cmaui_port_network_role
+ subnetpoolid:
+ get_input: port_cmaui_port_subnetpoolid
+ fixed_ips:
+ get_input: port_cmaui_port_fixed_ips
+ network:
+ get_input:
+ - port_cmaui_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ network.incoming.bytes.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.bytes.rate
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ network.incoming.bytes_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.bytes
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ attachment_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - attachment
+ network.incoming.packets_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.packets
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ binding_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - binding
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.outgoing.bytes_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.bytes
+ feature_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - feature
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ network.outpoing.packets_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outpoing.packets
+ feature_cmaui:
+ - cmaui
+ - feature
+ network.outgoing.bytes.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.bytes.rate
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ network.outgoing.packets.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.outgoing.packets.rate
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ network.incoming.packets.rate_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - network.incoming.packets.rate
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ link_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - link
+ dependency_cmaui_cmaui_port:
+ - cmaui_cmaui_port
+ - dependency
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..37bdfde64b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,452 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ cmaui_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for CMAUI server
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_cmaui:
+ type: org.openecomp.resource.abstract.nodes.cmaui
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_network:
+ - get_input: net
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 1
+ - get_input:
+ - cmaui_names
+ - 0
+ port_cmaui_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_0
+ port_cmaui_port_replacement_policy:
+ - AUTO
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_cmauiServiceTemplate.yaml
+ count: 2
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - abstract_cmaui
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.device.usage_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.usage_cmaui
+ disk.device.usage_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.usage_cmaui
+ disk.device.latency_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.latency_cmaui
+ disk.device.latency_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.latency_cmaui
+ disk.root.size_server_cmaui_2:
+ - abstract_cmaui
+ - disk.root.size_cmaui
+ disk.device.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.requests.rate_cmaui
+ disk.root.size_server_cmaui_1:
+ - abstract_cmaui
+ - disk.root.size_cmaui
+ disk.device.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.write.requests.rate_cmaui
+ disk.read.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.requests_cmaui
+ network.outgoing.bytes_cmaui_port_2:
+ - abstract_cmaui
+ - network.outgoing.bytes_cmaui_cmaui_port
+ disk.read.requests_server_cmaui_1:
+ - abstract_cmaui
+ - disk.read.requests_cmaui
+ network.outgoing.bytes_cmaui_port_1:
+ - abstract_cmaui
+ - network.outgoing.bytes_cmaui_cmaui_port
+ disk.device.iops_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.iops_cmaui
+ disk.device.iops_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.iops_cmaui
+ disk.device.capacity_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.capacity_cmaui
+ disk.device.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.bytes.rate_cmaui
+ disk.device.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.read.bytes.rate_cmaui
+ disk.read.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.bytes_cmaui
+ disk.read.bytes_server_cmaui_1:
+ - abstract_cmaui
+ - disk.read.bytes_cmaui
+ disk.device.read.bytes_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.read.bytes_cmaui
+ disk.device.read.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.bytes_cmaui
+ disk.write.requests.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.write.requests.rate_cmaui
+ disk.write.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.requests.rate_cmaui
+ memory_server_cmaui_2:
+ - abstract_cmaui
+ - memory_cmaui
+ cpu_server_cmaui_2:
+ - abstract_cmaui
+ - cpu_cmaui
+ cpu_server_cmaui_1:
+ - abstract_cmaui
+ - cpu_cmaui
+ network.incoming.packets_cmaui_port_2:
+ - abstract_cmaui
+ - network.incoming.packets_cmaui_cmaui_port
+ network.incoming.packets_cmaui_port_1:
+ - abstract_cmaui
+ - network.incoming.packets_cmaui_cmaui_port
+ disk.ephemeral.size_server_cmaui_1:
+ - abstract_cmaui
+ - disk.ephemeral.size_cmaui
+ disk.ephemeral.size_server_cmaui_2:
+ - abstract_cmaui
+ - disk.ephemeral.size_cmaui
+ disk.capacity_server_cmaui_1:
+ - abstract_cmaui
+ - disk.capacity_cmaui
+ disk.capacity_server_cmaui_2:
+ - abstract_cmaui
+ - disk.capacity_cmaui
+ binding_cmaui_port_1:
+ - abstract_cmaui
+ - binding_cmaui_cmaui_port
+ binding_cmaui_port_2:
+ - abstract_cmaui
+ - binding_cmaui_cmaui_port
+ disk.iops_server_cmaui_2:
+ - abstract_cmaui
+ - disk.iops_cmaui
+ disk.iops_server_cmaui_1:
+ - abstract_cmaui
+ - disk.iops_cmaui
+ disk.device.write.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.requests_cmaui
+ disk.device.write.requests_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.write.requests_cmaui
+ network.outgoing.bytes.rate_cmaui_port_2:
+ - abstract_cmaui
+ - network.outgoing.bytes.rate_cmaui_cmaui_port
+ disk.device.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.write.bytes.rate_cmaui
+ cpu_util_server_cmaui_1:
+ - abstract_cmaui
+ - cpu_util_cmaui
+ network.outgoing.bytes.rate_cmaui_port_1:
+ - abstract_cmaui
+ - network.outgoing.bytes.rate_cmaui_cmaui_port
+ network.incoming.bytes_cmaui_port_2:
+ - abstract_cmaui
+ - network.incoming.bytes_cmaui_cmaui_port
+ cpu_util_server_cmaui_2:
+ - abstract_cmaui
+ - cpu_util_cmaui
+ network.incoming.bytes_cmaui_port_1:
+ - abstract_cmaui
+ - network.incoming.bytes_cmaui_cmaui_port
+ disk.device.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.bytes.rate_cmaui
+ disk.write.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.bytes.rate_cmaui
+ disk.device.write.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.write.bytes_cmaui
+ disk.write.bytes.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.write.bytes.rate_cmaui
+ disk.device.write.bytes_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.write.bytes_cmaui
+ network.incoming.packets.rate_cmaui_port_1:
+ - abstract_cmaui
+ - network.incoming.packets.rate_cmaui_cmaui_port
+ network.incoming.packets.rate_cmaui_port_2:
+ - abstract_cmaui
+ - network.incoming.packets.rate_cmaui_cmaui_port
+ feature_cmaui_port_1:
+ - abstract_cmaui
+ - feature_cmaui_cmaui_port
+ feature_cmaui_port_2:
+ - abstract_cmaui
+ - feature_cmaui_cmaui_port
+ disk.write.bytes_server_cmaui_1:
+ - abstract_cmaui
+ - disk.write.bytes_cmaui
+ disk.write.bytes_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.bytes_cmaui
+ feature_server_cmaui_1:
+ - abstract_cmaui
+ - feature_cmaui
+ disk.allocation_server_cmaui_1:
+ - abstract_cmaui
+ - disk.allocation_cmaui
+ feature_server_cmaui_2:
+ - abstract_cmaui
+ - feature_cmaui
+ disk.allocation_server_cmaui_2:
+ - abstract_cmaui
+ - disk.allocation_cmaui
+ binding_server_cmaui_1:
+ - abstract_cmaui
+ - binding_cmaui
+ binding_server_cmaui_2:
+ - abstract_cmaui
+ - binding_cmaui
+ vcpus_server_cmaui_2:
+ - abstract_cmaui
+ - vcpus_cmaui
+ attachment_cmaui_port_2:
+ - abstract_cmaui
+ - attachment_cmaui_cmaui_port
+ scalable_server_cmaui_2:
+ - abstract_cmaui
+ - scalable_cmaui
+ scalable_server_cmaui_1:
+ - abstract_cmaui
+ - scalable_cmaui
+ network.outgoing.packets.rate_cmaui_port_1:
+ - abstract_cmaui
+ - network.outgoing.packets.rate_cmaui_cmaui_port
+ network.outgoing.packets.rate_cmaui_port_2:
+ - abstract_cmaui
+ - network.outgoing.packets.rate_cmaui_cmaui_port
+ attachment_cmaui_port_1:
+ - abstract_cmaui
+ - attachment_cmaui_cmaui_port
+ disk.write.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.write.requests_cmaui
+ disk.write.requests_server_cmaui_1:
+ - abstract_cmaui
+ - disk.write.requests_cmaui
+ disk.usage_server_cmaui_1:
+ - abstract_cmaui
+ - disk.usage_cmaui
+ disk.usage_server_cmaui_2:
+ - abstract_cmaui
+ - disk.usage_cmaui
+ endpoint_server_cmaui_1:
+ - abstract_cmaui
+ - endpoint_cmaui
+ endpoint_server_cmaui_2:
+ - abstract_cmaui
+ - endpoint_cmaui
+ os_server_cmaui_2:
+ - abstract_cmaui
+ - os_cmaui
+ os_server_cmaui_1:
+ - abstract_cmaui
+ - os_cmaui
+ disk.device.allocation_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.allocation_cmaui
+ disk.device.allocation_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.allocation_cmaui
+ memory_server_cmaui_1:
+ - abstract_cmaui
+ - memory_cmaui
+ host_server_cmaui_2:
+ - abstract_cmaui
+ - host_cmaui
+ host_server_cmaui_1:
+ - abstract_cmaui
+ - host_cmaui
+ instance_server_cmaui_2:
+ - abstract_cmaui
+ - instance_cmaui
+ disk.device.capacity_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.capacity_cmaui
+ instance_server_cmaui_1:
+ - abstract_cmaui
+ - instance_cmaui
+ disk.device.read.requests.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.read.requests.rate_cmaui
+ network.incoming.bytes.rate_cmaui_port_1:
+ - abstract_cmaui
+ - network.incoming.bytes.rate_cmaui_cmaui_port
+ network.incoming.bytes.rate_cmaui_port_2:
+ - abstract_cmaui
+ - network.incoming.bytes.rate_cmaui_cmaui_port
+ vcpus_server_cmaui_1:
+ - abstract_cmaui
+ - vcpus_cmaui
+ disk.device.read.requests_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.requests_cmaui
+ disk.read.bytes.rate_server_cmaui_1:
+ - abstract_cmaui
+ - disk.read.bytes.rate_cmaui
+ network.outpoing.packets_cmaui_port_1:
+ - abstract_cmaui
+ - network.outpoing.packets_cmaui_cmaui_port
+ disk.read.bytes.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.read.bytes.rate_cmaui
+ network.outpoing.packets_cmaui_port_2:
+ - abstract_cmaui
+ - network.outpoing.packets_cmaui_cmaui_port
+ disk.device.read.requests_server_cmaui_1:
+ - abstract_cmaui
+ - disk.device.read.requests_cmaui
+ cpu.delta_server_cmaui_1:
+ - abstract_cmaui
+ - cpu.delta_cmaui
+ cpu.delta_server_cmaui_2:
+ - abstract_cmaui
+ - cpu.delta_cmaui
+ disk.device.read.requests.rate_server_cmaui_2:
+ - abstract_cmaui
+ - disk.device.read.requests.rate_cmaui
+ memory.resident_server_cmaui_2:
+ - abstract_cmaui
+ - memory.resident_cmaui
+ memory.resident_server_cmaui_1:
+ - abstract_cmaui
+ - memory.resident_cmaui
+ disk.latency_server_cmaui_2:
+ - abstract_cmaui
+ - disk.latency_cmaui
+ disk.latency_server_cmaui_1:
+ - abstract_cmaui
+ - disk.latency_cmaui
+ memory.usage_server_cmaui_1:
+ - abstract_cmaui
+ - memory.usage_cmaui
+ memory.usage_server_cmaui_2:
+ - abstract_cmaui
+ - memory.usage_cmaui
+ requirements:
+ dependency_cmaui_port_1:
+ - abstract_cmaui
+ - dependency_cmaui_cmaui_port
+ local_storage_server_cmaui_2:
+ - abstract_cmaui
+ - local_storage_cmaui
+ link_cmaui_port_2:
+ - abstract_cmaui
+ - link_cmaui_cmaui_port
+ dependency_server_cmaui_2:
+ - abstract_cmaui
+ - dependency_cmaui
+ link_cmaui_port_1:
+ - abstract_cmaui
+ - link_cmaui_cmaui_port
+ dependency_server_cmaui_1:
+ - abstract_cmaui
+ - dependency_cmaui
+ dependency_cmaui_port_2:
+ - abstract_cmaui
+ - dependency_cmaui_cmaui_port
+ local_storage_server_cmaui_1:
+ - abstract_cmaui
+ - local_storage_cmaui
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/MANIFEST.json
new file mode 100644
index 0000000000..cc7753397c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested1.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/main.yml
new file mode 100644
index 0000000000..3cecffd871
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/main.yml
@@ -0,0 +1,19 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested1Level:
+ type: nested1.yml
+ properties:
+ p1: {get_param: jsa_name}
+ p2: {get_param: security_group_name}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/nested1.yml
new file mode 100644
index 0000000000..7af6ea9530
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/in/nested1.yml
@@ -0,0 +1,79 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_image:
+ type: string
+ description: PD Image server
+ ps_server_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ ps_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port }
+
+ server_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_names, 1]}
+ image: { get_param: ps_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_flavor }
+ networks:
+ - port: { get_resource: ps_server_port }
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..d51e4f4f2f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,1590 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_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_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_pd_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_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_pd_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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.packets.rate_pd_server_pd_server_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_pd_server_pd_server_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_pd_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_pd_server_pd_server_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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.outpoing.packets_pd_server_pd_server_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_pd_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_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd_server_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.iops_pd_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_pd_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_pd_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server_pd_server_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pd_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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.heat.nested1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_ips:
+ 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
+ pd_server_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ ps_server_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_server_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port:
+ 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
+ disk.write.bytes_server_ps:
+ type: org.openecomp.capabilities.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.packets.rate_ps_server_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_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.iops_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_ps:
+ type: org.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
+ feature_ps_server_port:
+ type: tosca.capabilities.Node
+ 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
+ network.outgoing.bytes.rate_ps_server_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_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.read.bytes_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_pd_server_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_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_ps:
+ type: org.openecomp.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_ps_server_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_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
+ 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.incoming.bytes.rate_ps_server_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_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_ps:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.Attachment
+ 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.incoming.packets.rate_pd_server_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_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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_ps:
+ type: org.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
+ 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
+ network.outpoing.packets_pd_server_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_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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_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.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
+ disk.usage_server_ps:
+ type: org.openecomp.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_ps_server_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_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_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_ps:
+ type: org.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_ps:
+ type: org.openecomp.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
+ cpu_util_server_ps:
+ type: org.openecomp.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_ps_server_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_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:
+ type: org.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_ps:
+ type: org.openecomp.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.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
+ disk.capacity_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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
+ disk.device.write.bytes.rate_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.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:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_ps:
+ type: org.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_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
+ instance_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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
+ 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
+ os_server_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Node
+ 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
+ disk.latency_server_ps:
+ type: org.openecomp.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
+ disk.device.write.requests.rate_server_ps:
+ type: org.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
+ disk.device.capacity_server_ps:
+ type: org.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_pd:
+ type: tosca.capabilities.Scalable
+ 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
+ disk.device.latency_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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.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
+ scalable_server_ps:
+ type: tosca.capabilities.Scalable
+ 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.abstract.nodes.ps_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ 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
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_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_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ instance_ps_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_ps_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_ps_server_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_ps_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_ps_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_ps_server_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.rate_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_ps_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_ps_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_ps_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.ephemeral.size_ps_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_ps_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_ps_server_ps_server_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.iops_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_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_ps_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_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_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_ps_server_ps_server_port:
+ 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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.outpoing.packets_ps_server_ps_server_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_ps_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_ps_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_ps_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..6ab38e9cdd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/MainServiceTemplate.yaml
@@ -0,0 +1,41 @@
+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:
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested1Level:
+ type: org.openecomp.resource.abstract.nodes.heat.nested1
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: jsa_name
+ service_template_filter:
+ substitute_service_template: nested1ServiceTemplate.yaml
+ p2:
+ get_input: security_group_name
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested1Level
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..e7fc570514
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_subnetpoolid:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ port_pd_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_port_order:
+ type: integer
+ required: true
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ pd_server_pd_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_port_mac_requirements
+ order:
+ get_input: port_pd_server_port_order
+ network_role:
+ get_input: port_pd_server_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ network.outgoing.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ network.outgoing.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes.rate
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.outpoing.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outpoing.packets
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ network.incoming.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ attachment_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - attachment
+ network.incoming.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.incoming.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ feature_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - feature
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ binding_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - binding
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ network.outgoing.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - link
+ dependency_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..a36e890b2e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/Nested_ps_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ node_templates:
+ ps_server_ps_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_port_mac_requirements
+ order:
+ get_input: port_ps_server_port_order
+ network_role:
+ get_input: port_ps_server_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server
+ relationship: tosca.relationships.network.BindsTo
+ ps_server:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server
+ capabilities:
+ instance_ps_server:
+ - ps_server
+ - instance
+ host_ps_server:
+ - ps_server
+ - host
+ network.incoming.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets
+ cpu.delta_ps_server:
+ - ps_server
+ - cpu.delta
+ disk.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.write.bytes.rate
+ feature_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - feature
+ feature_ps_server:
+ - ps_server
+ - feature
+ disk.root.size_ps_server:
+ - ps_server
+ - disk.root.size
+ disk.device.read.requests.rate_ps_server:
+ - ps_server
+ - disk.device.read.requests.rate
+ cpu_ps_server:
+ - ps_server
+ - cpu
+ disk.device.write.bytes_ps_server:
+ - ps_server
+ - disk.device.write.bytes
+ disk.device.read.bytes_ps_server:
+ - ps_server
+ - disk.device.read.bytes
+ disk.read.bytes_ps_server:
+ - ps_server
+ - disk.read.bytes
+ network.incoming.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes
+ disk.device.iops_ps_server:
+ - ps_server
+ - disk.device.iops
+ disk.device.latency_ps_server:
+ - ps_server
+ - disk.device.latency
+ disk.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.read.bytes.rate
+ memory_ps_server:
+ - ps_server
+ - memory
+ scalable_ps_server:
+ - ps_server
+ - scalable
+ attachment_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - attachment
+ disk.write.requests.rate_ps_server:
+ - ps_server
+ - disk.write.requests.rate
+ disk.write.requests_ps_server:
+ - ps_server
+ - disk.write.requests
+ disk.latency_ps_server:
+ - ps_server
+ - disk.latency
+ disk.ephemeral.size_ps_server:
+ - ps_server
+ - disk.ephemeral.size
+ disk.device.capacity_ps_server:
+ - ps_server
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets.rate
+ disk.iops_ps_server:
+ - ps_server
+ - disk.iops
+ disk.device.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.read.bytes.rate
+ cpu_util_ps_server:
+ - ps_server
+ - cpu_util
+ memory.resident_ps_server:
+ - ps_server
+ - memory.resident
+ disk.device.read.requests_ps_server:
+ - ps_server
+ - disk.device.read.requests
+ disk.write.bytes_ps_server:
+ - ps_server
+ - disk.write.bytes
+ network.outgoing.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests.rate_ps_server:
+ - ps_server
+ - disk.device.write.requests.rate
+ disk.read.requests_ps_server:
+ - ps_server
+ - disk.read.requests
+ disk.allocation_ps_server:
+ - ps_server
+ - disk.allocation
+ memory.usage_ps_server:
+ - ps_server
+ - memory.usage
+ binding_ps_server:
+ - ps_server
+ - binding
+ os_ps_server:
+ - ps_server
+ - os
+ disk.device.usage_ps_server:
+ - ps_server
+ - disk.device.usage
+ binding_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - binding
+ disk.device.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.write.bytes.rate
+ vcpus_ps_server:
+ - ps_server
+ - vcpus
+ network.outgoing.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes
+ disk.usage_ps_server:
+ - ps_server
+ - disk.usage
+ disk.device.write.requests_ps_server:
+ - ps_server
+ - disk.device.write.requests
+ network.outpoing.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outpoing.packets
+ endpoint_ps_server:
+ - ps_server
+ - endpoint
+ disk.capacity_ps_server:
+ - ps_server
+ - disk.capacity
+ disk.device.allocation_ps_server:
+ - ps_server
+ - disk.device.allocation
+ requirements:
+ dependency_ps_server:
+ - ps_server
+ - dependency
+ dependency_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - dependency
+ link_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - link
+ local_storage_ps_server:
+ - ps_server
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/nested1ServiceTemplate.yaml
new file mode 100644
index 0000000000..81884ac853
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/nested1ServiceTemplate.yaml
@@ -0,0 +1,511 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ ps_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_pd_server_availability_zone:
+ - get_input: availability_zone_0
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd_server_port_network:
+ - get_input: net
+ vm_flavor_name:
+ get_input: pd_server_flavor
+ port_pd_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_image
+ port_pd_server_port_replacement_policy:
+ - AUTO
+ port_pd_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server:
+ type: org.openecomp.resource.abstract.nodes.ps_server
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_port_network:
+ - get_input: net
+ compute_ps_server_name:
+ - get_input:
+ - ps_server_names
+ - 1
+ compute_ps_server_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_flavor
+ port_ps_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_image
+ port_ps_server_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested1_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested1.yml
+ description: nested1
+ members:
+ - abstract_pd_server
+ - abstract_ps_server
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested1
+ capabilities:
+ disk.iops_server_pd:
+ - abstract_pd_server
+ - disk.iops_pd_server
+ disk.device.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
+ disk.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes_ps_server
+ disk.device.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
+ network.incoming.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets.rate_ps_server_ps_server_port
+ disk.device.allocation_server_pd:
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
+ disk.iops_server_ps:
+ - abstract_ps_server
+ - disk.iops_ps_server
+ disk.device.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes.rate_ps_server
+ binding_server_ps:
+ - abstract_ps_server
+ - binding_ps_server
+ attachment_ps_server_port:
+ - abstract_ps_server
+ - attachment_ps_server_ps_server_port
+ disk.device.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests_ps_server
+ memory.usage_server_pd:
+ - abstract_pd_server
+ - memory.usage_pd_server
+ feature_ps_server_port:
+ - abstract_ps_server
+ - feature_ps_server_ps_server_port
+ disk.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
+ network.outgoing.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes.rate_ps_server_ps_server_port
+ memory_server_pd:
+ - abstract_pd_server
+ - memory_pd_server
+ disk.device.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
+ disk.device.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes_ps_server
+ disk.device.allocation_server_ps:
+ - abstract_ps_server
+ - disk.device.allocation_ps_server
+ memory.usage_server_ps:
+ - abstract_ps_server
+ - memory.usage_ps_server
+ network.outgoing.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.packets.rate_ps_server_ps_server_port
+ binding_ps_server_port:
+ - abstract_ps_server
+ - binding_ps_server_ps_server_port
+ network.incoming.packets_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pd_server_port
+ disk.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
+ disk.device.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests_ps_server
+ network.outpoing.packets_ps_server_port:
+ - abstract_ps_server
+ - network.outpoing.packets_ps_server_ps_server_port
+ disk.device.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
+ host_server_pd:
+ - abstract_pd_server
+ - host_pd_server
+ vcpus_server_pd:
+ - abstract_pd_server
+ - vcpus_pd_server
+ disk.ephemeral.size_server_pd:
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
+ network.incoming.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes.rate_ps_server_ps_server_port
+ disk.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
+ memory_server_ps:
+ - abstract_ps_server
+ - memory_ps_server
+ network.incoming.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pd_server_port
+ attachment_pd_server_port:
+ - abstract_pd_server
+ - attachment_pd_server_pd_server_port
+ disk.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.write.requests_pd_server
+ network.incoming.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pd_server_port
+ disk.ephemeral.size_server_ps:
+ - abstract_ps_server
+ - disk.ephemeral.size_ps_server
+ disk.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.requests.rate_ps_server
+ disk.device.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes_ps_server
+ disk.root.size_server_ps:
+ - abstract_ps_server
+ - disk.root.size_ps_server
+ disk.device.read.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests.rate_ps_server
+ network.outgoing.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pd_server_port
+ disk.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.write.requests_ps_server
+ binding_server_pd:
+ - abstract_pd_server
+ - binding_pd_server
+ disk.root.size_server_pd:
+ - abstract_pd_server
+ - disk.root.size_pd_server
+ disk.device.read.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
+ network.outpoing.packets_pd_server_port:
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pd_server_port
+ disk.device.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
+ host_server_ps:
+ - abstract_ps_server
+ - host_ps_server
+ network.incoming.packets_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets_ps_server_ps_server_port
+ memory.resident_server_pd:
+ - abstract_pd_server
+ - memory.resident_pd_server
+ disk.usage_server_ps:
+ - abstract_ps_server
+ - disk.usage_ps_server
+ network.outgoing.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes_ps_server_ps_server_port
+ cpu_util_server_pd:
+ - abstract_pd_server
+ - cpu_util_pd_server
+ endpoint_server_ps:
+ - abstract_ps_server
+ - endpoint_ps_server
+ disk.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.read.requests_ps_server
+ memory.resident_server_ps:
+ - abstract_ps_server
+ - memory.resident_ps_server
+ disk.usage_server_pd:
+ - abstract_pd_server
+ - disk.usage_pd_server
+ disk.capacity_server_pd:
+ - abstract_pd_server
+ - disk.capacity_pd_server
+ endpoint_server_pd:
+ - abstract_pd_server
+ - endpoint_pd_server
+ cpu_util_server_ps:
+ - abstract_ps_server
+ - cpu_util_ps_server
+ network.incoming.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes_ps_server_ps_server_port
+ disk.device.capacity_server_pd:
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
+ network.incoming.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pd_server_port
+ vcpus_server_ps:
+ - abstract_ps_server
+ - vcpus_ps_server
+ disk.allocation_server_pd:
+ - abstract_pd_server
+ - disk.allocation_pd_server
+ disk.device.usage_server_pd:
+ - abstract_pd_server
+ - disk.device.usage_pd_server
+ disk.capacity_server_ps:
+ - abstract_ps_server
+ - disk.capacity_ps_server
+ disk.allocation_server_ps:
+ - abstract_ps_server
+ - disk.allocation_ps_server
+ disk.device.usage_server_ps:
+ - abstract_ps_server
+ - disk.device.usage_ps_server
+ instance_server_pd:
+ - abstract_pd_server
+ - instance_pd_server
+ disk.device.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes.rate_ps_server
+ disk.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes.rate_ps_server
+ feature_pd_server_port:
+ - abstract_pd_server
+ - feature_pd_server_pd_server_port
+ disk.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes_ps_server
+ network.outgoing.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pd_server_port
+ network.outgoing.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pd_server_port
+ binding_pd_server_port:
+ - abstract_pd_server
+ - binding_pd_server_pd_server_port
+ cpu_server_ps:
+ - abstract_ps_server
+ - cpu_ps_server
+ cpu.delta_server_pd:
+ - abstract_pd_server
+ - cpu.delta_pd_server
+ instance_server_ps:
+ - abstract_ps_server
+ - instance_ps_server
+ disk.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes.rate_ps_server
+ disk.latency_server_pd:
+ - abstract_pd_server
+ - disk.latency_pd_server
+ disk.device.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
+ os_server_ps:
+ - abstract_ps_server
+ - os_ps_server
+ cpu.delta_server_ps:
+ - abstract_ps_server
+ - cpu.delta_ps_server
+ feature_server_ps:
+ - abstract_ps_server
+ - feature_ps_server
+ disk.device.iops_server_pd:
+ - abstract_pd_server
+ - disk.device.iops_pd_server
+ disk.latency_server_ps:
+ - abstract_ps_server
+ - disk.latency_ps_server
+ disk.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.read.requests_pd_server
+ disk.device.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests.rate_ps_server
+ os_server_pd:
+ - abstract_pd_server
+ - os_pd_server
+ disk.device.latency_server_pd:
+ - abstract_pd_server
+ - disk.device.latency_pd_server
+ disk.device.capacity_server_ps:
+ - abstract_ps_server
+ - disk.device.capacity_ps_server
+ scalable_server_pd:
+ - abstract_pd_server
+ - scalable_pd_server
+ disk.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
+ disk.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
+ disk.device.latency_server_ps:
+ - abstract_ps_server
+ - disk.device.latency_ps_server
+ disk.device.iops_server_ps:
+ - abstract_ps_server
+ - disk.device.iops_ps_server
+ feature_server_pd:
+ - abstract_pd_server
+ - feature_pd_server
+ disk.device.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
+ scalable_server_ps:
+ - abstract_ps_server
+ - scalable_ps_server
+ cpu_server_pd:
+ - abstract_pd_server
+ - cpu_pd_server
+ requirements:
+ local_storage_server_pd:
+ - abstract_pd_server
+ - local_storage_pd_server
+ dependency_server_pd:
+ - abstract_pd_server
+ - dependency_pd_server
+ dependency_server_ps:
+ - abstract_ps_server
+ - dependency_ps_server
+ dependency_ps_server_port:
+ - abstract_ps_server
+ - dependency_ps_server_ps_server_port
+ dependency_pd_server_port:
+ - abstract_pd_server
+ - dependency_pd_server_pd_server_port
+ link_pd_server_port:
+ - abstract_pd_server
+ - link_pd_server_pd_server_port
+ link_ps_server_port:
+ - abstract_ps_server
+ - link_ps_server_ps_server_port
+ local_storage_server_ps:
+ - abstract_ps_server
+ - local_storage_ps_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/MANIFEST.json
new file mode 100644
index 0000000000..1a7abacf3f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/MANIFEST.json
@@ -0,0 +1,22 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested-same-file-1B.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-other-file-1B.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/main.yml
new file mode 100644
index 0000000000..d4e91509ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/main.yml
@@ -0,0 +1,38 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ same_file_param_1:
+ type: string
+ description: network name of jsa log network
+ same_file_param_2:
+ type: string
+ description: network name of jsa log network
+ same_file_param_3:
+ type: string
+ description: network name of jsa log network
+ diff_file_param_1:
+ type: string
+ description: network name of jsa log network
+
+resources:
+ test_nested_same_file_1:
+ type: nested-same-file-1B.yml
+ properties:
+ p1: {get_param: same_file_param_1}
+ p2: {get_param: same_file_param_2}
+
+ test_nested_same_file_2:
+ type: nested-same-file-1B.yml
+ properties:
+ p2: {get_param: same_file_param_3}
+
+ test_nested_diff_file:
+ type: nested-other-file-1B.yml
+ properties:
+ p1: {get_param: diff_file_param_1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-other-file-1B.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-other-file-1B.yml
new file mode 100644
index 0000000000..4990282318
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-other-file-1B.yml
@@ -0,0 +1,82 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_image:
+ type: string
+ description: PD Image server
+ ps_server_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ ps_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ ps_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port }
+
+ server_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_names, 1]}
+ image: { get_param: ps_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_flavor }
+ networks:
+ - port: { get_resource: ps_server_port }
+
+outputs:
+ nested_same_file_attr_1:
+ description: nested_same_file_attr_1
+ value: { get_resource: server_pd } \ 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/nestedTwoSameFileOneDiff/in/nested-same-file-1B.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-same-file-1B.yml
new file mode 100644
index 0000000000..50b03d7a63
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/in/nested-same-file-1B.yml
@@ -0,0 +1,83 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ sm_server_names:
+ type: comma_delimited_list
+ description: SM server names
+ sm_server_image:
+ type: string
+ description: SM Image server
+ oam_server_names:
+ type: comma_delimited_list
+ description: OAM server names
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ type: string
+ oam_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ sm_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [sm_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ oam_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [oam_server_ips, 0]}}]
+ replacement_policy: AUTO
+
+ server_sm:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [sm_server_names, 0]}
+ image: { get_param: sm_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: sm_server_flavor }
+ networks:
+ - port: { get_resource: sm_server_port }
+
+ server_oam:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_names, 1]}
+ image: { get_param: oam_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_flavor }
+ networks:
+ - port: { get_resource: oam_server_port }
+
+outputs:
+ nested_diff_file_attr_1:
+ description: nested_diff_file_attr_1_value
+ value: { get_resource: server_sm }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..b5dc2d96c3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,3183 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_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_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_pd_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_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_pd_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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.packets.rate_pd_server_pd_server_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_pd_server_pd_server_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_pd_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_pd_server_pd_server_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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.outpoing.packets_pd_server_pd_server_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_pd_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_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd_server_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.iops_pd_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_pd_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_pd_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server_pd_server_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pd_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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.heat.nested-same-file-1B:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_names:
+ type: list
+ description: SM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ required: true
+ status: SUPPORTED
+ oam_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ required: true
+ status: SUPPORTED
+ sm_server_ips:
+ 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
+ oam_server_names:
+ type: list
+ description: OAM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ required: true
+ status: SUPPORTED
+ sm_server_image:
+ type: string
+ description: SM Image server
+ required: true
+ status: SUPPORTED
+ attributes:
+ nested_diff_file_attr_1:
+ type: string
+ description: nested_diff_file_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_sm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_sm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ os_server_sm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_sm:
+ type: org.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
+ 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.usage_server_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ network.incoming.packets_sm_server_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_server_sm:
+ type: org.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_oam_server_port:
+ type: tosca.capabilities.Node
+ 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
+ instance_server_sm:
+ type: org.openecomp.capabilities.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
+ host_server_sm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ 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
+ 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
+ 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
+ cpu_util_server_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.capabilities.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_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_oam_server_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_sm:
+ type: org.openecomp.capabilities.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_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.device.read.bytes_server_sm:
+ type: org.openecomp.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.latency_server_sm:
+ type: org.openecomp.capabilities.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
+ attachment_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam:
+ type: tosca.capabilities.Scalable
+ 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
+ feature_server_sm:
+ type: tosca.capabilities.Node
+ 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
+ cpu.delta_server_sm:
+ type: org.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
+ 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
+ disk.device.write.bytes.rate_server_sm:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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
+ 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
+ endpoint_server_sm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_sm:
+ type: org.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
+ disk.read.requests_server_sm:
+ type: org.openecomp.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
+ memory.resident_server_sm:
+ type: org.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_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_server_sm:
+ type: org.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_sm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_sm_server_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_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_sm_server_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_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_sm:
+ type: org.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_sm:
+ type: org.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
+ feature_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_sm:
+ type: org.openecomp.capabilities.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.read.bytes_server_sm:
+ type: org.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_sm:
+ type: org.openecomp.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_sm_server_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_oam_server_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_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_oam_server_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_sm_server_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_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_oam_server_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_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_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ network.outpoing.packets_oam_server_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_oam:
+ type: tosca.capabilities.OperatingSystem
+ 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
+ disk.write.requests_server_sm:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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_sm:
+ type: org.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_sm:
+ type: org.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_sm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_sm:
+ type: org.openecomp.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_oam_server_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_server_sm:
+ type: org.openecomp.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.write.requests.rate_server_sm:
+ type: org.openecomp.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_oam_server_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_sm:
+ type: org.openecomp.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
+ 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
+ network.incoming.bytes.rate_sm_server_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.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.packets_oam_server_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_sm:
+ type: org.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
+ network.outgoing.bytes_sm_server_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_server_sm:
+ type: org.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_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_sm_server_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.iops_server_sm:
+ type: org.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.nested-other-file-1B:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_ips:
+ 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
+ pd_server_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ ps_server_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ attributes:
+ nested_same_file_attr_1:
+ type: string
+ description: nested_same_file_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_server_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port:
+ 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
+ disk.write.bytes_server_ps:
+ type: org.openecomp.capabilities.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.packets.rate_ps_server_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_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.iops_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_ps:
+ type: org.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
+ feature_ps_server_port:
+ type: tosca.capabilities.Node
+ 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
+ network.outgoing.bytes.rate_ps_server_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_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.read.bytes_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_pd_server_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_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_ps:
+ type: org.openecomp.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_ps_server_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_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
+ 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.incoming.bytes.rate_ps_server_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_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_ps:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.Attachment
+ 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.incoming.packets.rate_pd_server_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_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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_ps:
+ type: org.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
+ 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
+ network.outpoing.packets_pd_server_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_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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_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.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
+ disk.usage_server_ps:
+ type: org.openecomp.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_ps_server_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_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_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_ps:
+ type: org.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_ps:
+ type: org.openecomp.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
+ cpu_util_server_ps:
+ type: org.openecomp.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_ps_server_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_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:
+ type: org.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_ps:
+ type: org.openecomp.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.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
+ disk.capacity_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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
+ disk.device.write.bytes.rate_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.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:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_ps:
+ type: org.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_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
+ instance_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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
+ 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
+ os_server_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Node
+ 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
+ disk.latency_server_ps:
+ type: org.openecomp.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
+ disk.device.write.requests.rate_server_ps:
+ type: org.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
+ disk.device.capacity_server_ps:
+ type: org.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_pd:
+ type: tosca.capabilities.Scalable
+ 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
+ disk.device.latency_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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.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
+ scalable_server_ps:
+ type: tosca.capabilities.Scalable
+ 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.abstract.nodes.oam_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_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_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ 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_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ requirements:
+ - dependency_oam_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ cpu.delta_oam_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_oam_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_oam_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_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_oam_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_oam_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.outpoing.packets_oam_server_oam_server_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_oam_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_oam_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.rate_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_oam_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.usage_oam_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_oam_server_oam_server_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_oam_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_oam_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.iops_oam_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_oam_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_oam_server_oam_server_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_oam_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_oam_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_oam_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_oam_server_oam_server_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_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_oam_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_oam_server_oam_server_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_oam_server_oam_server_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_oam_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.sm_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_sm_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_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_sm_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ requirements:
+ - dependency_sm_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_sm_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_sm_server_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.requests_sm_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_sm_server_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_server_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_sm_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_sm_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_sm_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.outpoing.packets_sm_server_sm_server_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_sm_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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.rate_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_sm_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_sm_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_sm_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.rate_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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.ephemeral.size_sm_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.packets.rate_sm_server_sm_server_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_sm_server_sm_server_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_sm_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_sm_server_sm_server_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.ps_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ 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
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_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_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ instance_ps_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_ps_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_ps_server_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_ps_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_ps_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_ps_server_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.rate_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_ps_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_ps_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_ps_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.ephemeral.size_ps_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_ps_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_ps_server_ps_server_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.iops_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_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_ps_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_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_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_ps_server_ps_server_port:
+ 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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.outpoing.packets_ps_server_ps_server_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_ps_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_ps_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_ps_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..2548fb9b30
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/MainServiceTemplate.yaml
@@ -0,0 +1,76 @@
+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:
+ same_file_param_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ same_file_param_2:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ same_file_param_3:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ diff_file_param_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ test_nested_diff_file:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-other-file-1B
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: diff_file_param_1
+ service_template_filter:
+ substitute_service_template: nested-other-file-1BServiceTemplate.yaml
+ test_nested_same_file_1:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_input: same_file_param_1
+ service_template_filter:
+ substitute_service_template: nested-same-file-1BServiceTemplate.yaml
+ p2:
+ get_input: same_file_param_2
+ test_nested_same_file_2:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-same-file-1BServiceTemplate.yaml
+ p2:
+ get_input: same_file_param_3
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested_diff_file
+ - test_nested_same_file_1
+ - test_nested_same_file_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_oam_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_oam_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..973864216f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_oam_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_order:
+ type: integer
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_oam_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ node_templates:
+ oam_server:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_name
+ - index_value
+ oam_server_oam_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_oam_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_oam_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_oam_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_oam_server_port_mac_requirements
+ order:
+ get_input: port_oam_server_port_order
+ network_role:
+ get_input: port_oam_server_port_network_role
+ subnetpoolid:
+ get_input: port_oam_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_oam_server_port_fixed_ips
+ network:
+ get_input:
+ - port_oam_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server
+ capabilities:
+ cpu.delta_oam_server:
+ - oam_server
+ - cpu.delta
+ host_oam_server:
+ - oam_server
+ - host
+ disk.usage_oam_server:
+ - oam_server
+ - disk.usage
+ network.incoming.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets.rate
+ feature_oam_server:
+ - oam_server
+ - feature
+ disk.device.write.bytes_oam_server:
+ - oam_server
+ - disk.device.write.bytes
+ cpu_util_oam_server:
+ - oam_server
+ - cpu_util
+ network.outpoing.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outpoing.packets
+ disk.capacity_oam_server:
+ - oam_server
+ - disk.capacity
+ memory_oam_server:
+ - oam_server
+ - memory
+ disk.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.read.bytes.rate
+ disk.write.bytes_oam_server:
+ - oam_server
+ - disk.write.bytes
+ disk.write.requests_oam_server:
+ - oam_server
+ - disk.write.requests
+ attachment_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - attachment
+ cpu_oam_server:
+ - oam_server
+ - cpu
+ vcpus_oam_server:
+ - oam_server
+ - vcpus
+ disk.device.read.requests.rate_oam_server:
+ - oam_server
+ - disk.device.read.requests.rate
+ disk.allocation_oam_server:
+ - oam_server
+ - disk.allocation
+ disk.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.write.bytes.rate
+ disk.device.write.requests.rate_oam_server:
+ - oam_server
+ - disk.device.write.requests.rate
+ instance_oam_server:
+ - oam_server
+ - instance
+ memory.resident_oam_server:
+ - oam_server
+ - memory.resident
+ disk.device.read.requests_oam_server:
+ - oam_server
+ - disk.device.read.requests
+ disk.device.allocation_oam_server:
+ - oam_server
+ - disk.device.allocation
+ disk.device.write.requests_oam_server:
+ - oam_server
+ - disk.device.write.requests
+ binding_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - binding
+ disk.iops_oam_server:
+ - oam_server
+ - disk.iops
+ disk.device.capacity_oam_server:
+ - oam_server
+ - disk.device.capacity
+ binding_oam_server:
+ - oam_server
+ - binding
+ disk.device.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.write.bytes.rate
+ disk.device.usage_oam_server:
+ - oam_server
+ - disk.device.usage
+ network.incoming.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes.rate
+ disk.latency_oam_server:
+ - oam_server
+ - disk.latency
+ disk.read.requests_oam_server:
+ - oam_server
+ - disk.read.requests
+ disk.device.iops_oam_server:
+ - oam_server
+ - disk.device.iops
+ disk.root.size_oam_server:
+ - oam_server
+ - disk.root.size
+ network.outgoing.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes
+ disk.device.latency_oam_server:
+ - oam_server
+ - disk.device.latency
+ feature_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - feature
+ memory.usage_oam_server:
+ - oam_server
+ - memory.usage
+ endpoint_oam_server:
+ - oam_server
+ - endpoint
+ network.outgoing.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes.rate
+ scalable_oam_server:
+ - oam_server
+ - scalable
+ disk.write.requests.rate_oam_server:
+ - oam_server
+ - disk.write.requests.rate
+ network.incoming.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes
+ disk.device.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.read.bytes.rate
+ disk.device.read.bytes_oam_server:
+ - oam_server
+ - disk.device.read.bytes
+ os_oam_server:
+ - oam_server
+ - os
+ disk.read.bytes_oam_server:
+ - oam_server
+ - disk.read.bytes
+ network.incoming.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.packets.rate
+ disk.ephemeral.size_oam_server:
+ - oam_server
+ - disk.ephemeral.size
+ requirements:
+ dependency_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - dependency
+ local_storage_oam_server:
+ - oam_server
+ - local_storage
+ dependency_oam_server:
+ - oam_server
+ - dependency
+ link_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..e7fc570514
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_subnetpoolid:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ port_pd_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_port_order:
+ type: integer
+ required: true
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ pd_server_pd_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_pd_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_pd_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd_server_port_mac_requirements
+ order:
+ get_input: port_pd_server_port_order
+ network_role:
+ get_input: port_pd_server_port_network_role
+ subnetpoolid:
+ get_input: port_pd_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd_server_port_fixed_ips
+ network:
+ get_input:
+ - port_pd_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ network.outgoing.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ network.outgoing.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes.rate
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.outpoing.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outpoing.packets
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ network.incoming.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ attachment_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - attachment
+ network.incoming.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.incoming.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ feature_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - feature
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ binding_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - binding
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ network.outgoing.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - link
+ dependency_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..a36e890b2e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_ps_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ node_templates:
+ ps_server_ps_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_ps_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_ps_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_ps_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_ps_server_port_mac_requirements
+ order:
+ get_input: port_ps_server_port_order
+ network_role:
+ get_input: port_ps_server_port_network_role
+ subnetpoolid:
+ get_input: port_ps_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_ps_server_port_fixed_ips
+ network:
+ get_input:
+ - port_ps_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server
+ relationship: tosca.relationships.network.BindsTo
+ ps_server:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server
+ capabilities:
+ instance_ps_server:
+ - ps_server
+ - instance
+ host_ps_server:
+ - ps_server
+ - host
+ network.incoming.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets
+ cpu.delta_ps_server:
+ - ps_server
+ - cpu.delta
+ disk.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.write.bytes.rate
+ feature_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - feature
+ feature_ps_server:
+ - ps_server
+ - feature
+ disk.root.size_ps_server:
+ - ps_server
+ - disk.root.size
+ disk.device.read.requests.rate_ps_server:
+ - ps_server
+ - disk.device.read.requests.rate
+ cpu_ps_server:
+ - ps_server
+ - cpu
+ disk.device.write.bytes_ps_server:
+ - ps_server
+ - disk.device.write.bytes
+ disk.device.read.bytes_ps_server:
+ - ps_server
+ - disk.device.read.bytes
+ disk.read.bytes_ps_server:
+ - ps_server
+ - disk.read.bytes
+ network.incoming.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes
+ disk.device.iops_ps_server:
+ - ps_server
+ - disk.device.iops
+ disk.device.latency_ps_server:
+ - ps_server
+ - disk.device.latency
+ disk.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.read.bytes.rate
+ memory_ps_server:
+ - ps_server
+ - memory
+ scalable_ps_server:
+ - ps_server
+ - scalable
+ attachment_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - attachment
+ disk.write.requests.rate_ps_server:
+ - ps_server
+ - disk.write.requests.rate
+ disk.write.requests_ps_server:
+ - ps_server
+ - disk.write.requests
+ disk.latency_ps_server:
+ - ps_server
+ - disk.latency
+ disk.ephemeral.size_ps_server:
+ - ps_server
+ - disk.ephemeral.size
+ disk.device.capacity_ps_server:
+ - ps_server
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets.rate
+ disk.iops_ps_server:
+ - ps_server
+ - disk.iops
+ disk.device.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.read.bytes.rate
+ cpu_util_ps_server:
+ - ps_server
+ - cpu_util
+ memory.resident_ps_server:
+ - ps_server
+ - memory.resident
+ disk.device.read.requests_ps_server:
+ - ps_server
+ - disk.device.read.requests
+ disk.write.bytes_ps_server:
+ - ps_server
+ - disk.write.bytes
+ network.outgoing.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests.rate_ps_server:
+ - ps_server
+ - disk.device.write.requests.rate
+ disk.read.requests_ps_server:
+ - ps_server
+ - disk.read.requests
+ disk.allocation_ps_server:
+ - ps_server
+ - disk.allocation
+ memory.usage_ps_server:
+ - ps_server
+ - memory.usage
+ binding_ps_server:
+ - ps_server
+ - binding
+ os_ps_server:
+ - ps_server
+ - os
+ disk.device.usage_ps_server:
+ - ps_server
+ - disk.device.usage
+ binding_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - binding
+ disk.device.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.write.bytes.rate
+ vcpus_ps_server:
+ - ps_server
+ - vcpus
+ network.outgoing.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes
+ disk.usage_ps_server:
+ - ps_server
+ - disk.usage
+ disk.device.write.requests_ps_server:
+ - ps_server
+ - disk.device.write.requests
+ network.outpoing.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outpoing.packets
+ endpoint_ps_server:
+ - ps_server
+ - endpoint
+ disk.capacity_ps_server:
+ - ps_server
+ - disk.capacity
+ disk.device.allocation_ps_server:
+ - ps_server
+ - disk.device.allocation
+ requirements:
+ dependency_ps_server:
+ - ps_server
+ - dependency
+ dependency_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - dependency
+ link_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - link
+ local_storage_ps_server:
+ - ps_server
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_sm_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_sm_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..29fc3c16fe
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/Nested_sm_serverServiceTemplate.yaml
@@ -0,0 +1,301 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_sm_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.sm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_sm_server_port_order:
+ type: integer
+ required: true
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ port_sm_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ compute_sm_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ node_templates:
+ sm_server:
+ type: org.openecomp.resource.vfc.nodes.heat.sm_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_sm_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_sm_server_name
+ - index_value
+ sm_server_sm_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_sm_server_port_exCP_naming
+ replacement_policy:
+ get_input:
+ - port_sm_server_port_replacement_policy
+ - index_value
+ vlan_requirements:
+ get_input: port_sm_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_sm_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_sm_server_port_network_role_tag
+ mac_requirements:
+ get_input: port_sm_server_port_mac_requirements
+ order:
+ get_input: port_sm_server_port_order
+ network_role:
+ get_input: port_sm_server_port_network_role
+ subnetpoolid:
+ get_input: port_sm_server_port_subnetpoolid
+ fixed_ips:
+ get_input: port_sm_server_port_fixed_ips
+ network:
+ get_input:
+ - port_sm_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: sm_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.sm_server
+ capabilities:
+ disk.device.read.requests_sm_server:
+ - sm_server
+ - disk.device.read.requests
+ binding_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - binding
+ disk.iops_sm_server:
+ - sm_server
+ - disk.iops
+ disk.device.capacity_sm_server:
+ - sm_server
+ - disk.device.capacity
+ disk.device.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.read.bytes.rate
+ disk.device.write.requests.rate_sm_server:
+ - sm_server
+ - disk.device.write.requests.rate
+ disk.device.allocation_sm_server:
+ - sm_server
+ - disk.device.allocation
+ network.incoming.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes
+ attachment_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - attachment
+ memory.usage_sm_server:
+ - sm_server
+ - memory.usage
+ binding_sm_server:
+ - sm_server
+ - binding
+ disk.read.requests_sm_server:
+ - sm_server
+ - disk.read.requests
+ network.outpoing.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outpoing.packets
+ endpoint_sm_server:
+ - sm_server
+ - endpoint
+ disk.device.read.requests.rate_sm_server:
+ - sm_server
+ - disk.device.read.requests.rate
+ disk.capacity_sm_server:
+ - sm_server
+ - disk.capacity
+ disk.allocation_sm_server:
+ - sm_server
+ - disk.allocation
+ disk.root.size_sm_server:
+ - sm_server
+ - disk.root.size
+ disk.usage_sm_server:
+ - sm_server
+ - disk.usage
+ vcpus_sm_server:
+ - sm_server
+ - vcpus
+ disk.write.bytes_sm_server:
+ - sm_server
+ - disk.write.bytes
+ cpu.delta_sm_server:
+ - sm_server
+ - cpu.delta
+ os_sm_server:
+ - sm_server
+ - os
+ feature_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - feature
+ memory.resident_sm_server:
+ - sm_server
+ - memory.resident
+ network.outgoing.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes
+ instance_sm_server:
+ - sm_server
+ - instance
+ cpu_sm_server:
+ - sm_server
+ - cpu
+ disk.device.write.bytes_sm_server:
+ - sm_server
+ - disk.device.write.bytes
+ network.incoming.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets.rate
+ disk.write.requests.rate_sm_server:
+ - sm_server
+ - disk.write.requests.rate
+ disk.device.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.write.bytes.rate
+ disk.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.write.bytes.rate
+ disk.device.write.requests_sm_server:
+ - sm_server
+ - disk.device.write.requests
+ disk.device.latency_sm_server:
+ - sm_server
+ - disk.device.latency
+ host_sm_server:
+ - sm_server
+ - host
+ feature_sm_server:
+ - sm_server
+ - feature
+ disk.device.usage_sm_server:
+ - sm_server
+ - disk.device.usage
+ scalable_sm_server:
+ - sm_server
+ - scalable
+ disk.device.iops_sm_server:
+ - sm_server
+ - disk.device.iops
+ disk.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.read.bytes.rate
+ disk.device.read.bytes_sm_server:
+ - sm_server
+ - disk.device.read.bytes
+ disk.latency_sm_server:
+ - sm_server
+ - disk.latency
+ network.incoming.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes.rate
+ disk.read.bytes_sm_server:
+ - sm_server
+ - disk.read.bytes
+ disk.write.requests_sm_server:
+ - sm_server
+ - disk.write.requests
+ cpu_util_sm_server:
+ - sm_server
+ - cpu_util
+ disk.ephemeral.size_sm_server:
+ - sm_server
+ - disk.ephemeral.size
+ network.outgoing.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets
+ memory_sm_server:
+ - sm_server
+ - memory
+ network.outgoing.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes.rate
+ requirements:
+ dependency_sm_server:
+ - sm_server
+ - dependency
+ dependency_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - dependency
+ local_storage_sm_server:
+ - sm_server
+ - local_storage
+ link_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-other-file-1BServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-other-file-1BServiceTemplate.yaml
new file mode 100644
index 0000000000..a17a475867
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-other-file-1BServiceTemplate.yaml
@@ -0,0 +1,515 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-other-file-1B
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ ps_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ compute_pd_server_availability_zone:
+ - get_input: availability_zone_0
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd_server_port_network:
+ - get_input: net
+ vm_flavor_name:
+ get_input: pd_server_flavor
+ port_pd_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_image
+ port_pd_server_port_replacement_policy:
+ - AUTO
+ port_pd_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server:
+ type: org.openecomp.resource.abstract.nodes.ps_server
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_port_network:
+ - get_input: net
+ compute_ps_server_name:
+ - get_input:
+ - ps_server_names
+ - 1
+ compute_ps_server_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_flavor
+ port_ps_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_image
+ port_ps_server_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested-other-file-1B_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-other-file-1B.yml
+ description: nested1
+ members:
+ - abstract_pd_server
+ - abstract_ps_server
+ outputs:
+ nested_same_file_attr_1:
+ description: nested_same_file_attr_1
+ value: server_pd
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-other-file-1B
+ capabilities:
+ disk.iops_server_pd:
+ - abstract_pd_server
+ - disk.iops_pd_server
+ disk.device.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
+ disk.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes_ps_server
+ disk.device.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
+ network.incoming.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets.rate_ps_server_ps_server_port
+ disk.device.allocation_server_pd:
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
+ disk.iops_server_ps:
+ - abstract_ps_server
+ - disk.iops_ps_server
+ disk.device.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes.rate_ps_server
+ binding_server_ps:
+ - abstract_ps_server
+ - binding_ps_server
+ attachment_ps_server_port:
+ - abstract_ps_server
+ - attachment_ps_server_ps_server_port
+ disk.device.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests_ps_server
+ memory.usage_server_pd:
+ - abstract_pd_server
+ - memory.usage_pd_server
+ feature_ps_server_port:
+ - abstract_ps_server
+ - feature_ps_server_ps_server_port
+ disk.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
+ network.outgoing.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes.rate_ps_server_ps_server_port
+ memory_server_pd:
+ - abstract_pd_server
+ - memory_pd_server
+ disk.device.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
+ disk.device.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes_ps_server
+ disk.device.allocation_server_ps:
+ - abstract_ps_server
+ - disk.device.allocation_ps_server
+ memory.usage_server_ps:
+ - abstract_ps_server
+ - memory.usage_ps_server
+ network.outgoing.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.packets.rate_ps_server_ps_server_port
+ binding_ps_server_port:
+ - abstract_ps_server
+ - binding_ps_server_ps_server_port
+ network.incoming.packets_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pd_server_port
+ disk.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
+ disk.device.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests_ps_server
+ network.outpoing.packets_ps_server_port:
+ - abstract_ps_server
+ - network.outpoing.packets_ps_server_ps_server_port
+ disk.device.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
+ host_server_pd:
+ - abstract_pd_server
+ - host_pd_server
+ vcpus_server_pd:
+ - abstract_pd_server
+ - vcpus_pd_server
+ disk.ephemeral.size_server_pd:
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
+ network.incoming.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes.rate_ps_server_ps_server_port
+ disk.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
+ memory_server_ps:
+ - abstract_ps_server
+ - memory_ps_server
+ network.incoming.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pd_server_port
+ attachment_pd_server_port:
+ - abstract_pd_server
+ - attachment_pd_server_pd_server_port
+ disk.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.write.requests_pd_server
+ network.incoming.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pd_server_port
+ disk.ephemeral.size_server_ps:
+ - abstract_ps_server
+ - disk.ephemeral.size_ps_server
+ disk.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.requests.rate_ps_server
+ disk.device.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes_ps_server
+ disk.root.size_server_ps:
+ - abstract_ps_server
+ - disk.root.size_ps_server
+ disk.device.read.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests.rate_ps_server
+ network.outgoing.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pd_server_port
+ disk.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.write.requests_ps_server
+ binding_server_pd:
+ - abstract_pd_server
+ - binding_pd_server
+ disk.root.size_server_pd:
+ - abstract_pd_server
+ - disk.root.size_pd_server
+ disk.device.read.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
+ network.outpoing.packets_pd_server_port:
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pd_server_port
+ disk.device.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
+ host_server_ps:
+ - abstract_ps_server
+ - host_ps_server
+ network.incoming.packets_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets_ps_server_ps_server_port
+ memory.resident_server_pd:
+ - abstract_pd_server
+ - memory.resident_pd_server
+ disk.usage_server_ps:
+ - abstract_ps_server
+ - disk.usage_ps_server
+ network.outgoing.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes_ps_server_ps_server_port
+ cpu_util_server_pd:
+ - abstract_pd_server
+ - cpu_util_pd_server
+ endpoint_server_ps:
+ - abstract_ps_server
+ - endpoint_ps_server
+ disk.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.read.requests_ps_server
+ memory.resident_server_ps:
+ - abstract_ps_server
+ - memory.resident_ps_server
+ disk.usage_server_pd:
+ - abstract_pd_server
+ - disk.usage_pd_server
+ disk.capacity_server_pd:
+ - abstract_pd_server
+ - disk.capacity_pd_server
+ endpoint_server_pd:
+ - abstract_pd_server
+ - endpoint_pd_server
+ cpu_util_server_ps:
+ - abstract_ps_server
+ - cpu_util_ps_server
+ network.incoming.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes_ps_server_ps_server_port
+ disk.device.capacity_server_pd:
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
+ network.incoming.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pd_server_port
+ vcpus_server_ps:
+ - abstract_ps_server
+ - vcpus_ps_server
+ disk.allocation_server_pd:
+ - abstract_pd_server
+ - disk.allocation_pd_server
+ disk.device.usage_server_pd:
+ - abstract_pd_server
+ - disk.device.usage_pd_server
+ disk.capacity_server_ps:
+ - abstract_ps_server
+ - disk.capacity_ps_server
+ disk.allocation_server_ps:
+ - abstract_ps_server
+ - disk.allocation_ps_server
+ disk.device.usage_server_ps:
+ - abstract_ps_server
+ - disk.device.usage_ps_server
+ instance_server_pd:
+ - abstract_pd_server
+ - instance_pd_server
+ disk.device.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes.rate_ps_server
+ disk.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes.rate_ps_server
+ feature_pd_server_port:
+ - abstract_pd_server
+ - feature_pd_server_pd_server_port
+ disk.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes_ps_server
+ network.outgoing.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pd_server_port
+ network.outgoing.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pd_server_port
+ binding_pd_server_port:
+ - abstract_pd_server
+ - binding_pd_server_pd_server_port
+ cpu_server_ps:
+ - abstract_ps_server
+ - cpu_ps_server
+ cpu.delta_server_pd:
+ - abstract_pd_server
+ - cpu.delta_pd_server
+ instance_server_ps:
+ - abstract_ps_server
+ - instance_ps_server
+ disk.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes.rate_ps_server
+ disk.latency_server_pd:
+ - abstract_pd_server
+ - disk.latency_pd_server
+ disk.device.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
+ os_server_ps:
+ - abstract_ps_server
+ - os_ps_server
+ cpu.delta_server_ps:
+ - abstract_ps_server
+ - cpu.delta_ps_server
+ feature_server_ps:
+ - abstract_ps_server
+ - feature_ps_server
+ disk.device.iops_server_pd:
+ - abstract_pd_server
+ - disk.device.iops_pd_server
+ disk.latency_server_ps:
+ - abstract_ps_server
+ - disk.latency_ps_server
+ disk.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.read.requests_pd_server
+ disk.device.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests.rate_ps_server
+ os_server_pd:
+ - abstract_pd_server
+ - os_pd_server
+ disk.device.latency_server_pd:
+ - abstract_pd_server
+ - disk.device.latency_pd_server
+ disk.device.capacity_server_ps:
+ - abstract_ps_server
+ - disk.device.capacity_ps_server
+ scalable_server_pd:
+ - abstract_pd_server
+ - scalable_pd_server
+ disk.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
+ disk.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
+ disk.device.latency_server_ps:
+ - abstract_ps_server
+ - disk.device.latency_ps_server
+ disk.device.iops_server_ps:
+ - abstract_ps_server
+ - disk.device.iops_ps_server
+ feature_server_pd:
+ - abstract_pd_server
+ - feature_pd_server
+ disk.device.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
+ scalable_server_ps:
+ - abstract_ps_server
+ - scalable_ps_server
+ cpu_server_pd:
+ - abstract_pd_server
+ - cpu_pd_server
+ requirements:
+ local_storage_server_pd:
+ - abstract_pd_server
+ - local_storage_pd_server
+ dependency_server_pd:
+ - abstract_pd_server
+ - dependency_pd_server
+ dependency_server_ps:
+ - abstract_ps_server
+ - dependency_ps_server
+ dependency_ps_server_port:
+ - abstract_ps_server
+ - dependency_ps_server_ps_server_port
+ dependency_pd_server_port:
+ - abstract_pd_server
+ - dependency_pd_server_pd_server_port
+ link_pd_server_port:
+ - abstract_pd_server
+ - link_pd_server_pd_server_port
+ link_ps_server_port:
+ - abstract_ps_server
+ - link_ps_server_ps_server_port
+ local_storage_server_ps:
+ - abstract_ps_server
+ - local_storage_ps_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-same-file-1BServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-same-file-1BServiceTemplate.yaml
new file mode 100644
index 0000000000..72ba7106b1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/nested-same-file-1BServiceTemplate.yaml
@@ -0,0 +1,515 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-same-file-1B
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ sm_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: SM server names
+ entry_schema:
+ type: string
+ oam_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM Image server
+ oam_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM server names
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for SM server
+ sm_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: SM Image server
+ node_templates:
+ abstract_sm_server:
+ type: org.openecomp.resource.abstract.nodes.sm_server
+ directives:
+ - substitutable
+ properties:
+ vm_flavor_name:
+ get_input: sm_server_flavor
+ port_sm_server_port_network:
+ - get_input: net
+ compute_sm_server_name:
+ - get_input:
+ - sm_server_names
+ - 0
+ port_sm_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: sm_server_image
+ compute_sm_server_availability_zone:
+ - get_input: availability_zone_0
+ port_sm_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_sm_server_port_replacement_policy:
+ - AUTO
+ port_sm_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - sm_server_ips
+ - 0
+ service_template_filter:
+ substitute_service_template: Nested_sm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_oam_server:
+ type: org.openecomp.resource.abstract.nodes.oam_server
+ directives:
+ - substitutable
+ properties:
+ port_oam_server_port_network:
+ - get_input: net
+ port_oam_server_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: oam_server_flavor
+ port_oam_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: oam_server_image
+ port_oam_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - oam_server_ips
+ - 0
+ compute_oam_server_name:
+ - get_input:
+ - oam_server_names
+ - 1
+ port_oam_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_oam_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested-same-file-1B_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-same-file-1B.yml
+ description: nested1
+ members:
+ - abstract_sm_server
+ - abstract_oam_server
+ outputs:
+ nested_diff_file_attr_1:
+ description: nested_diff_file_attr_1_value
+ value: server_sm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ capabilities:
+ os_server_sm:
+ - abstract_sm_server
+ - os_sm_server
+ disk.capacity_server_sm:
+ - abstract_sm_server
+ - disk.capacity_sm_server
+ memory_server_oam:
+ - abstract_oam_server
+ - memory_oam_server
+ disk.device.iops_server_oam:
+ - abstract_oam_server
+ - disk.device.iops_oam_server
+ disk.device.usage_server_sm:
+ - abstract_sm_server
+ - disk.device.usage_sm_server
+ disk.device.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests.rate_sm_server
+ disk.allocation_server_oam:
+ - abstract_oam_server
+ - disk.allocation_oam_server
+ network.incoming.packets_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets_sm_server_sm_server_port
+ disk.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes.rate_sm_server
+ feature_oam_server_port:
+ - abstract_oam_server
+ - feature_oam_server_oam_server_port
+ disk.usage_server_oam:
+ - abstract_oam_server
+ - disk.usage_oam_server
+ instance_server_sm:
+ - abstract_sm_server
+ - instance_sm_server
+ disk.device.latency_server_oam:
+ - abstract_oam_server
+ - disk.device.latency_oam_server
+ disk.root.size_server_oam:
+ - abstract_oam_server
+ - disk.root.size_oam_server
+ host_server_sm:
+ - abstract_sm_server
+ - host_sm_server
+ memory.usage_server_oam:
+ - abstract_oam_server
+ - memory.usage_oam_server
+ disk.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes_oam_server
+ disk.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.read.requests_oam_server
+ cpu_util_server_sm:
+ - abstract_sm_server
+ - cpu_util_sm_server
+ disk.device.capacity_server_sm:
+ - abstract_sm_server
+ - disk.device.capacity_sm_server
+ disk.device.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes_oam_server
+ network.incoming.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes_oam_server_oam_server_port
+ disk.device.iops_server_sm:
+ - abstract_sm_server
+ - disk.device.iops_sm_server
+ disk.device.read.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests.rate_oam_server
+ vcpus_server_oam:
+ - abstract_oam_server
+ - vcpus_oam_server
+ disk.device.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes_sm_server
+ disk.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes.rate_oam_server
+ disk.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes_oam_server
+ disk.latency_server_sm:
+ - abstract_sm_server
+ - disk.latency_sm_server
+ disk.device.allocation_server_oam:
+ - abstract_oam_server
+ - disk.device.allocation_oam_server
+ attachment_oam_server_port:
+ - abstract_oam_server
+ - attachment_oam_server_oam_server_port
+ scalable_server_oam:
+ - abstract_oam_server
+ - scalable_oam_server
+ cpu_util_server_oam:
+ - abstract_oam_server
+ - cpu_util_oam_server
+ feature_server_sm:
+ - abstract_sm_server
+ - feature_sm_server
+ cpu.delta_server_oam:
+ - abstract_oam_server
+ - cpu.delta_oam_server
+ host_server_oam:
+ - abstract_oam_server
+ - host_oam_server
+ cpu.delta_server_sm:
+ - abstract_sm_server
+ - cpu.delta_sm_server
+ binding_server_oam:
+ - abstract_oam_server
+ - binding_oam_server
+ disk.device.capacity_server_oam:
+ - abstract_oam_server
+ - disk.device.capacity_oam_server
+ disk.device.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes.rate_sm_server
+ disk.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes_sm_server
+ disk.latency_server_oam:
+ - abstract_oam_server
+ - disk.latency_oam_server
+ disk.device.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests_oam_server
+ disk.device.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests.rate_oam_server
+ endpoint_server_sm:
+ - abstract_sm_server
+ - endpoint_sm_server
+ disk.device.allocation_server_sm:
+ - abstract_sm_server
+ - disk.device.allocation_sm_server
+ feature_server_oam:
+ - abstract_oam_server
+ - feature_oam_server
+ disk.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.read.requests_sm_server
+ disk.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes.rate_oam_server
+ memory.resident_server_sm:
+ - abstract_sm_server
+ - memory.resident_sm_server
+ cpu_server_oam:
+ - abstract_oam_server
+ - cpu_oam_server
+ memory_server_sm:
+ - abstract_sm_server
+ - memory_sm_server
+ scalable_server_sm:
+ - abstract_sm_server
+ - scalable_sm_server
+ network.outgoing.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.packets.rate_sm_server_sm_server_port
+ binding_sm_server_port:
+ - abstract_sm_server
+ - binding_sm_server_sm_server_port
+ network.outgoing.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes.rate_sm_server_sm_server_port
+ disk.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.write.requests_oam_server
+ disk.device.latency_server_sm:
+ - abstract_sm_server
+ - disk.device.latency_sm_server
+ memory.usage_server_sm:
+ - abstract_sm_server
+ - memory.usage_sm_server
+ memory.resident_server_oam:
+ - abstract_oam_server
+ - memory.resident_oam_server
+ feature_sm_server_port:
+ - abstract_sm_server
+ - feature_sm_server_sm_server_port
+ disk.device.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests_sm_server
+ disk.device.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests_oam_server
+ disk.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes_sm_server
+ cpu_server_sm:
+ - abstract_sm_server
+ - cpu_sm_server
+ network.outpoing.packets_sm_server_port:
+ - abstract_sm_server
+ - network.outpoing.packets_sm_server_sm_server_port
+ network.incoming.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes.rate_oam_server_oam_server_port
+ disk.device.usage_server_oam:
+ - abstract_oam_server
+ - disk.device.usage_oam_server
+ network.outgoing.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.packets.rate_oam_server_oam_server_port
+ network.incoming.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets.rate_sm_server_sm_server_port
+ binding_oam_server_port:
+ - abstract_oam_server
+ - binding_oam_server_oam_server_port
+ network.incoming.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes_oam_server
+ disk.device.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests_sm_server
+ disk.device.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes.rate_sm_server
+ disk.ephemeral.size_server_oam:
+ - abstract_oam_server
+ - disk.ephemeral.size_oam_server
+ network.outpoing.packets_oam_server_port:
+ - abstract_oam_server
+ - network.outpoing.packets_oam_server_oam_server_port
+ os_server_oam:
+ - abstract_oam_server
+ - os_oam_server
+ disk.capacity_server_oam:
+ - abstract_oam_server
+ - disk.capacity_oam_server
+ disk.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.write.requests_sm_server
+ disk.ephemeral.size_server_sm:
+ - abstract_sm_server
+ - disk.ephemeral.size_sm_server
+ disk.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes.rate_sm_server
+ endpoint_server_oam:
+ - abstract_oam_server
+ - endpoint_oam_server
+ disk.device.read.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests.rate_sm_server
+ binding_server_sm:
+ - abstract_sm_server
+ - binding_sm_server
+ disk.root.size_server_sm:
+ - abstract_sm_server
+ - disk.root.size_sm_server
+ network.outgoing.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes_oam_server_oam_server_port
+ disk.allocation_server_sm:
+ - abstract_sm_server
+ - disk.allocation_sm_server
+ disk.iops_server_oam:
+ - abstract_oam_server
+ - disk.iops_oam_server
+ disk.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.requests.rate_sm_server
+ network.outgoing.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes_sm_server
+ disk.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.requests.rate_oam_server
+ disk.device.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes.rate_oam_server
+ network.incoming.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes.rate_sm_server_sm_server_port
+ disk.device.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes.rate_oam_server
+ network.incoming.packets_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets_oam_server_oam_server_port
+ disk.usage_server_sm:
+ - abstract_sm_server
+ - disk.usage_sm_server
+ instance_server_oam:
+ - abstract_oam_server
+ - instance_oam_server
+ network.outgoing.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes_sm_server_sm_server_port
+ vcpus_server_sm:
+ - abstract_sm_server
+ - vcpus_sm_server
+ attachment_sm_server_port:
+ - abstract_sm_server
+ - attachment_sm_server_sm_server_port
+ network.incoming.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes_sm_server_sm_server_port
+ disk.iops_server_sm:
+ - abstract_sm_server
+ - disk.iops_sm_server
+ requirements:
+ dependency_sm_server_port:
+ - abstract_sm_server
+ - dependency_sm_server_sm_server_port
+ link_oam_server_port:
+ - abstract_oam_server
+ - link_oam_server_oam_server_port
+ local_storage_server_oam:
+ - abstract_oam_server
+ - local_storage_oam_server
+ local_storage_server_sm:
+ - abstract_sm_server
+ - local_storage_sm_server
+ link_sm_server_port:
+ - abstract_sm_server
+ - link_sm_server_sm_server_port
+ dependency_server_oam:
+ - abstract_oam_server
+ - dependency_oam_server
+ dependency_oam_server_port:
+ - abstract_oam_server
+ - dependency_oam_server_oam_server_port
+ dependency_server_sm:
+ - abstract_sm_server
+ - dependency_sm_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/MANIFEST.json
new file mode 100644
index 0000000000..1a7abacf3f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/MANIFEST.json
@@ -0,0 +1,22 @@
+{
+ "name": "Nested test",
+ "description": "HOT template to create nested one level multiple compute",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "main.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested-same-file-1B.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested-other-file-1B.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/main.yml
new file mode 100644
index 0000000000..9e5810d042
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/main.yml
@@ -0,0 +1,60 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ description: security_group_name
+
+resources:
+ test_nested_same_file_1:
+ type: nested-same-file-1B.yml
+ properties:
+ p1: {get_attr: [test_nested_diff_file, nested_diff_file_attr_1]}
+ p2: { get_resource: jsa_security_group2}
+
+ test_nested_same_file_2:
+ type: nested-same-file-1B.yml
+ depends_on:
+ - test_nested_same_file_1
+ properties:
+ p2: {get_attr: [test_nested_same_file_1, nested_same_file_attr_1]}
+
+ test_nested_diff_file:
+ type: nested-other-file-1B.yml
+ depends_on:
+ - test_nested_same_file_1
+ - test_nested_same_file_2
+ properties:
+ p1: { get_resource: jsa_security_group1}
+
+ dependsOn_network:
+ type: OS::Neutron::Net
+ depends_on:
+ - test_nested_same_file_1
+ - test_nested_same_file_2
+ - test_nested_diff_file
+ properties:
+ name:
+ get_param: jsa_name
+
+ jsa_security_group1:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}]
+
+ jsa_security_group2:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/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/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-other-file-1B.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-other-file-1B.yml
new file mode 100644
index 0000000000..8b0a580ffc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-other-file-1B.yml
@@ -0,0 +1,84 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pd_server_names:
+ type: comma_delimited_list
+ description: PD server names
+ pd_server_image:
+ type: string
+ description: PD Image server
+ ps_server_names:
+ type: comma_delimited_list
+ description: Ps server names
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ ps_server_flavor:
+ type: string
+ description: Flavor for PS server
+ pd_server_ips:
+ type: string
+ ps_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ pd_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [pd_server_ips, 0]}}]
+ security_groups: [{get_param: p1},{get_param: p2}]
+ replacement_policy: AUTO
+
+ ps_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [ps_server_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_pd:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [pd_server_names, 0]}
+ image: { get_param: pd_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: pd_server_flavor }
+ networks:
+ - port: { get_resource: pd_server_port }
+
+ server_ps:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ps_server_names, 1]}
+ image: { get_param: ps_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: ps_server_flavor }
+ networks:
+ - port: { get_resource: ps_server_port }
+
+outputs:
+ nested_same_file_attr_1:
+ description: nested_same_file_attr_1
+ value: { get_resource: server_pd } \ 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/nestedTwoSameOneDiffWithConnectivity/in/nested-same-file-1B.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-same-file-1B.yml
new file mode 100644
index 0000000000..8a4dc3a0cb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/in/nested-same-file-1B.yml
@@ -0,0 +1,85 @@
+heat_template_version: 2013-05-23
+
+description: nested1
+
+parameters:
+ p1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ sm_server_names:
+ type: comma_delimited_list
+ description: SM server names
+ sm_server_image:
+ type: string
+ description: SM Image server
+ oam_server_names:
+ type: comma_delimited_list
+ description: OAM server names
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ type: string
+ oam_server_ips:
+ type: string
+ net:
+ type: string
+resources:
+
+ sm_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [sm_server_ips, 0]}}]
+ security_groups: [{get_param: p1},{get_param: p2}]
+ replacement_policy: AUTO
+
+ oam_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [oam_server_ips, 0]}}]
+ security_groups: [{get_param: p1}]
+ replacement_policy: AUTO
+
+ server_sm:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [sm_server_names, 0]}
+ image: { get_param: sm_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: sm_server_flavor }
+ networks:
+ - port: { get_resource: sm_server_port }
+
+ server_oam:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [oam_server_names, 1]}
+ image: { get_param: oam_server_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: oam_server_flavor }
+ networks:
+ - port: { get_resource: oam_server_port }
+
+outputs:
+ nested_diff_file_attr_1:
+ description: nested_diff_file_attr_1_value
+ value: { get_resource: server_sm }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..9c2d3e605d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,3207 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_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
+ port_pd_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ 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_pd_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pd_server_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_pd_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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.packets.rate_pd_server_pd_server_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_pd_server_pd_server_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_pd_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_pd_server_pd_server_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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.outpoing.packets_pd_server_pd_server_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_pd_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_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pd_server_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.iops_pd_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_pd_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_pd_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server_pd_server_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_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_pd_server_pd_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pd_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_server_pd_server_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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.heat.nested-same-file-1B:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ 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
+ security_group_name:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_names:
+ type: list
+ description: SM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ oam_server_image:
+ type: string
+ description: OAM Image server
+ required: true
+ status: SUPPORTED
+ oam_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_server_flavor:
+ type: string
+ description: Flavor for OAM server
+ required: true
+ status: SUPPORTED
+ sm_server_ips:
+ 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
+ oam_server_names:
+ type: list
+ description: OAM server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ type: string
+ description: Flavor for SM server
+ required: true
+ status: SUPPORTED
+ sm_server_image:
+ type: string
+ description: SM Image server
+ required: true
+ status: SUPPORTED
+ attributes:
+ nested_diff_file_attr_1:
+ type: string
+ description: nested_diff_file_attr_1_value
+ status: SUPPORTED
+ requirements:
+ - dependency_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_server_sm:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_sm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ os_server_sm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_server_sm:
+ type: org.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
+ 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.usage_server_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ network.incoming.packets_sm_server_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_server_sm:
+ type: org.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_oam_server_port:
+ type: tosca.capabilities.Node
+ 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
+ instance_server_sm:
+ type: org.openecomp.capabilities.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
+ host_server_sm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ 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
+ 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
+ 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
+ cpu_util_server_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.capabilities.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_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_oam_server_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_sm:
+ type: org.openecomp.capabilities.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_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.device.read.bytes_server_sm:
+ type: org.openecomp.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.latency_server_sm:
+ type: org.openecomp.capabilities.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
+ attachment_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_oam:
+ type: tosca.capabilities.Scalable
+ 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
+ feature_server_sm:
+ type: tosca.capabilities.Node
+ 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
+ cpu.delta_server_sm:
+ type: org.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
+ 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
+ disk.device.write.bytes.rate_server_sm:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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
+ 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
+ endpoint_server_sm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.allocation_server_sm:
+ type: org.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
+ disk.read.requests_server_sm:
+ type: org.openecomp.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
+ memory.resident_server_sm:
+ type: org.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_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_server_sm:
+ type: org.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_sm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.packets.rate_sm_server_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_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outgoing.bytes.rate_sm_server_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_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_sm:
+ type: org.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_sm:
+ type: org.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
+ feature_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.requests_server_sm:
+ type: org.openecomp.capabilities.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.read.bytes_server_sm:
+ type: org.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_sm:
+ type: org.openecomp.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_sm_server_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_oam_server_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_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_oam_server_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_sm_server_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_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets.rate_oam_server_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_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_sm:
+ type: org.openecomp.capabilities.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_sm:
+ type: org.openecomp.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
+ network.outpoing.packets_oam_server_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_oam:
+ type: tosca.capabilities.OperatingSystem
+ 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
+ disk.write.requests_server_sm:
+ type: org.openecomp.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_sm:
+ type: org.openecomp.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_sm:
+ type: org.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_sm:
+ type: org.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_sm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_server_sm:
+ type: org.openecomp.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_oam_server_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_server_sm:
+ type: org.openecomp.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.write.requests.rate_server_sm:
+ type: org.openecomp.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_oam_server_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_sm:
+ type: org.openecomp.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
+ 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
+ network.incoming.bytes.rate_sm_server_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.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.packets_oam_server_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_sm:
+ type: org.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
+ network.outgoing.bytes_sm_server_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_server_sm:
+ type: org.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_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_sm_server_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.iops_server_sm:
+ type: org.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.nested-other-file-1B:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ p1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_image:
+ type: string
+ description: Ps Image server
+ required: true
+ status: SUPPORTED
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ ps_server_ips:
+ 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
+ pd_server_names:
+ type: list
+ description: PD server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ type: string
+ description: Flavor for PD server
+ required: true
+ status: SUPPORTED
+ ps_server_names:
+ type: list
+ description: Ps server names
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ pd_server_image:
+ type: string
+ description: PD Image server
+ required: true
+ status: SUPPORTED
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ net:
+ type: string
+ required: true
+ status: SUPPORTED
+ pd_server_ips:
+ type: string
+ required: true
+ status: SUPPORTED
+ attributes:
+ nested_same_file_attr_1:
+ type: string
+ description: nested_same_file_attr_1
+ status: SUPPORTED
+ requirements:
+ - dependency_server_ps:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_ps:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_port:
+ 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
+ disk.write.bytes_server_ps:
+ type: org.openecomp.capabilities.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.packets.rate_ps_server_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_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.iops_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_server_ps:
+ type: org.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
+ feature_ps_server_port:
+ type: tosca.capabilities.Node
+ 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
+ network.outgoing.bytes.rate_ps_server_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_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.read.bytes_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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_ps:
+ type: org.openecomp.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_ps_server_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_ps_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.packets_pd_server_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_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_ps:
+ type: org.openecomp.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_ps_server_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_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
+ 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.incoming.bytes.rate_ps_server_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_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_ps:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.Attachment
+ 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.incoming.packets.rate_pd_server_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_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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_ps:
+ type: org.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
+ 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
+ network.outpoing.packets_pd_server_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_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_ps:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_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.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
+ disk.usage_server_ps:
+ type: org.openecomp.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_ps_server_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_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_ps:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_server_ps:
+ type: org.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_ps:
+ type: org.openecomp.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
+ cpu_util_server_ps:
+ type: org.openecomp.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_ps_server_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_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:
+ type: org.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_ps:
+ type: org.openecomp.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.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
+ disk.capacity_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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
+ disk.device.write.bytes.rate_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.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:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_server_ps:
+ type: org.openecomp.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:
+ type: org.openecomp.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:
+ type: org.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:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_server_ps:
+ type: org.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_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
+ instance_server_ps:
+ type: org.openecomp.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_ps:
+ type: org.openecomp.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
+ 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
+ os_server_ps:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_server_ps:
+ type: org.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_ps:
+ type: tosca.capabilities.Node
+ 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
+ disk.latency_server_ps:
+ type: org.openecomp.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
+ disk.device.write.requests.rate_server_ps:
+ type: org.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
+ disk.device.capacity_server_ps:
+ type: org.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_pd:
+ type: tosca.capabilities.Scalable
+ 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
+ disk.device.latency_server_ps:
+ type: org.openecomp.capabilities.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_ps:
+ type: org.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.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
+ scalable_server_ps:
+ type: tosca.capabilities.Scalable
+ 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.abstract.nodes.oam_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_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_oam_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ 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_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ requirements:
+ - dependency_oam_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_oam_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_oam_server_oam_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_server_oam_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ cpu.delta_oam_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_oam_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_oam_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_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes_oam_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_oam_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.outpoing.packets_oam_server_oam_server_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_oam_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_oam_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.rate_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.write.bytes.rate_oam_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.usage_oam_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_oam_server_oam_server_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_oam_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_oam_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.iops_oam_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_oam_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_oam_server_oam_server_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_oam_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_oam_server_oam_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_oam_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_oam_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_oam_server_oam_server_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_oam_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_oam_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_oam_server_oam_server_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_oam_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_oam_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_oam_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes_oam_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_oam_server_oam_server_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_oam_server_oam_server_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_oam_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.sm_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_sm_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_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_sm_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_sm_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_sm_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_sm_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_sm_server_sm_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_sm_server_sm_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.requests_sm_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_sm_server_sm_server_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.iops_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_server_sm_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.usage_sm_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_sm_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_sm_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.outpoing.packets_sm_server_sm_server_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_sm_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests.rate_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server_sm_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ memory.resident_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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.rate_sm_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_sm_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_sm_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_sm_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_sm_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_sm_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_sm_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_sm_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.iops_sm_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.rate_sm_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_sm_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_sm_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_sm_server_sm_server_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_sm_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_sm_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_sm_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.ephemeral.size_sm_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.packets.rate_sm_server_sm_server_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_sm_server_sm_server_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_sm_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_sm_server_sm_server_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.ps_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ 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
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_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_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ requirements:
+ - dependency_ps_server_ps_server_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_ps_server_ps_server_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_ps_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_ps_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ instance_ps_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_ps_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets_ps_server_ps_server_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_ps_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_ps_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_ps_server_ps_server_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_ps_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.rate_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_ps_server_ps_server_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_ps_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_ps_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_ps_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.ephemeral.size_ps_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_ps_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_ps_server_ps_server_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.iops_ps_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_ps_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_ps_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_ps_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_ps_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_ps_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_server_ps_server_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_ps_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_ps_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_ps_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_ps_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_ps_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_ps_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.usage_ps_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_ps_server_ps_server_port:
+ 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_ps_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_ps_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_ps_server_ps_server_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_ps_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_ps_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.outpoing.packets_ps_server_ps_server_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_ps_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_ps_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_ps_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..f5b820a913
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/MainServiceTemplate.yaml
@@ -0,0 +1,122 @@
+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:
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: security_group_name
+ jsa_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ dependsOn_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: jsa_name
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_same_file_1
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_same_file_2
+ relationship: tosca.relationships.DependsOn
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: test_nested_diff_file
+ relationship: tosca.relationships.DependsOn
+ test_nested_diff_file:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-other-file-1B
+ directives:
+ - substitutable
+ properties:
+ p1: jsa_security_group1
+ service_template_filter:
+ substitute_service_template: nested-other-file-1BServiceTemplate.yaml
+ test_nested_same_file_1:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ directives:
+ - substitutable
+ properties:
+ p1:
+ get_attribute:
+ - test_nested_diff_file
+ - nested_diff_file_attr_1
+ service_template_filter:
+ substitute_service_template: nested-same-file-1BServiceTemplate.yaml
+ p2: jsa_security_group2
+ test_nested_same_file_2:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-same-file-1BServiceTemplate.yaml
+ p2:
+ get_attribute:
+ - test_nested_same_file_1
+ - nested_same_file_attr_1
+ jsa_security_group1:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_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_ps_server_port
+ node: test_nested_diff_file
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_pd_server_port
+ node: test_nested_diff_file
+ relationship: org.openecomp.relationships.AttachesTo
+ jsa_security_group2:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ get_input: security_group_name
+ description: ems security group
+ rules:
+ - protocol: icmp
+ ethertype: IPv6
+ remote_ip_prefix: ::/0
+ direction: ingress
+ requirements:
+ - port:
+ capability: attachment_sm_server_port
+ node: test_nested_same_file_1
+ relationship: org.openecomp.relationships.AttachesTo
+ groups:
+ main_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/main.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - dependsOn_network
+ - test_nested_diff_file
+ - test_nested_same_file_1
+ - test_nested_same_file_2
+ - jsa_security_group1
+ - jsa_security_group2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_oam_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_oam_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..4b4ec5e6e5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_oam_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_oam_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.oam_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_oam_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_order:
+ type: integer
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_oam_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_oam_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_oam_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_oam_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_oam_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_oam_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_oam_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_oam_server_port_network_role_tag:
+ type: string
+ required: true
+ port_oam_server_port_network_role:
+ type: string
+ required: true
+ port_oam_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_oam_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_oam_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ node_templates:
+ oam_server:
+ type: org.openecomp.resource.vfc.nodes.heat.oam_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_oam_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_oam_server_name
+ - index_value
+ oam_server_oam_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_oam_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_oam_server_port_mac_requirements
+ order:
+ get_input: port_oam_server_port_order
+ security_groups:
+ get_input:
+ - port_oam_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_oam_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_oam_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_oam_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_oam_server_port_network_role_tag
+ network_role:
+ get_input: port_oam_server_port_network_role
+ fixed_ips:
+ get_input: port_oam_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_oam_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_oam_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: oam_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.oam_server
+ capabilities:
+ cpu.delta_oam_server:
+ - oam_server
+ - cpu.delta
+ host_oam_server:
+ - oam_server
+ - host
+ disk.usage_oam_server:
+ - oam_server
+ - disk.usage
+ network.incoming.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets.rate
+ feature_oam_server:
+ - oam_server
+ - feature
+ disk.device.write.bytes_oam_server:
+ - oam_server
+ - disk.device.write.bytes
+ cpu_util_oam_server:
+ - oam_server
+ - cpu_util
+ network.outpoing.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outpoing.packets
+ disk.capacity_oam_server:
+ - oam_server
+ - disk.capacity
+ memory_oam_server:
+ - oam_server
+ - memory
+ disk.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.read.bytes.rate
+ disk.write.bytes_oam_server:
+ - oam_server
+ - disk.write.bytes
+ disk.write.requests_oam_server:
+ - oam_server
+ - disk.write.requests
+ attachment_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - attachment
+ cpu_oam_server:
+ - oam_server
+ - cpu
+ vcpus_oam_server:
+ - oam_server
+ - vcpus
+ disk.device.read.requests.rate_oam_server:
+ - oam_server
+ - disk.device.read.requests.rate
+ disk.allocation_oam_server:
+ - oam_server
+ - disk.allocation
+ disk.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.write.bytes.rate
+ disk.device.write.requests.rate_oam_server:
+ - oam_server
+ - disk.device.write.requests.rate
+ instance_oam_server:
+ - oam_server
+ - instance
+ memory.resident_oam_server:
+ - oam_server
+ - memory.resident
+ disk.device.read.requests_oam_server:
+ - oam_server
+ - disk.device.read.requests
+ disk.device.allocation_oam_server:
+ - oam_server
+ - disk.device.allocation
+ disk.device.write.requests_oam_server:
+ - oam_server
+ - disk.device.write.requests
+ binding_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - binding
+ disk.iops_oam_server:
+ - oam_server
+ - disk.iops
+ disk.device.capacity_oam_server:
+ - oam_server
+ - disk.device.capacity
+ binding_oam_server:
+ - oam_server
+ - binding
+ disk.device.write.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.write.bytes.rate
+ disk.device.usage_oam_server:
+ - oam_server
+ - disk.device.usage
+ network.incoming.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes.rate
+ disk.latency_oam_server:
+ - oam_server
+ - disk.latency
+ disk.read.requests_oam_server:
+ - oam_server
+ - disk.read.requests
+ disk.device.iops_oam_server:
+ - oam_server
+ - disk.device.iops
+ disk.root.size_oam_server:
+ - oam_server
+ - disk.root.size
+ network.outgoing.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes
+ disk.device.latency_oam_server:
+ - oam_server
+ - disk.device.latency
+ feature_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - feature
+ memory.usage_oam_server:
+ - oam_server
+ - memory.usage
+ endpoint_oam_server:
+ - oam_server
+ - endpoint
+ network.outgoing.bytes.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.bytes.rate
+ scalable_oam_server:
+ - oam_server
+ - scalable
+ disk.write.requests.rate_oam_server:
+ - oam_server
+ - disk.write.requests.rate
+ network.incoming.bytes_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.bytes
+ disk.device.read.bytes.rate_oam_server:
+ - oam_server
+ - disk.device.read.bytes.rate
+ disk.device.read.bytes_oam_server:
+ - oam_server
+ - disk.device.read.bytes
+ os_oam_server:
+ - oam_server
+ - os
+ disk.read.bytes_oam_server:
+ - oam_server
+ - disk.read.bytes
+ network.incoming.packets_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.incoming.packets
+ network.outgoing.packets.rate_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - network.outgoing.packets.rate
+ disk.ephemeral.size_oam_server:
+ - oam_server
+ - disk.ephemeral.size
+ requirements:
+ dependency_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - dependency
+ local_storage_oam_server:
+ - oam_server
+ - local_storage
+ dependency_oam_server:
+ - oam_server
+ - dependency
+ link_oam_server_oam_server_port:
+ - oam_server_oam_server_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..e3396eb9ef
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_pd_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd_server_port_subnetpoolid:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_pd_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd_server_port_network_role_tag:
+ type: string
+ required: true
+ port_pd_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pd_server_port_network_role:
+ type: string
+ required: true
+ port_pd_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_image_name:
+ type: string
+ required: true
+ port_pd_server_port_order:
+ type: integer
+ required: true
+ port_pd_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pd_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ pd_server_pd_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_pd_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_pd_server_port_mac_requirements
+ order:
+ get_input: port_pd_server_port_order
+ security_groups:
+ get_input:
+ - port_pd_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pd_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd_server_port_network_role_tag
+ network_role:
+ get_input: port_pd_server_port_network_role
+ fixed_ips:
+ get_input: port_pd_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_pd_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ network.outgoing.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ network.outgoing.bytes.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes.rate
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.outpoing.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outpoing.packets
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ network.incoming.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.bytes
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ attachment_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - attachment
+ network.incoming.packets.rate_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.incoming.packets_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.incoming.packets
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ feature_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - feature
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ binding_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - binding
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ network.outgoing.bytes_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - network.outgoing.bytes
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - link
+ dependency_pd_server_pd_server_port:
+ - pd_server_pd_server_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..2513bf731f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_ps_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.ps_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_ps_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_ps_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_ps_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_ps_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role:
+ type: string
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_ps_server_port_order:
+ type: integer
+ required: true
+ port_ps_server_port_subnetpoolid:
+ type: string
+ required: true
+ port_ps_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ vm_flavor_name:
+ type: string
+ required: true
+ port_ps_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_ps_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_ps_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_ps_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_ps_server_port_network_role_tag:
+ type: string
+ required: true
+ node_templates:
+ ps_server_ps_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_ps_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_ps_server_port_mac_requirements
+ order:
+ get_input: port_ps_server_port_order
+ security_groups:
+ get_input:
+ - port_ps_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_ps_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_ps_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_ps_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_ps_server_port_network_role_tag
+ network_role:
+ get_input: port_ps_server_port_network_role
+ fixed_ips:
+ get_input: port_ps_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_ps_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_ps_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: ps_server
+ relationship: tosca.relationships.network.BindsTo
+ ps_server:
+ type: org.openecomp.resource.vfc.nodes.heat.ps_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_ps_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_ps_server_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.ps_server
+ capabilities:
+ instance_ps_server:
+ - ps_server
+ - instance
+ host_ps_server:
+ - ps_server
+ - host
+ network.incoming.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets
+ cpu.delta_ps_server:
+ - ps_server
+ - cpu.delta
+ disk.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.write.bytes.rate
+ feature_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - feature
+ feature_ps_server:
+ - ps_server
+ - feature
+ disk.root.size_ps_server:
+ - ps_server
+ - disk.root.size
+ disk.device.read.requests.rate_ps_server:
+ - ps_server
+ - disk.device.read.requests.rate
+ cpu_ps_server:
+ - ps_server
+ - cpu
+ disk.device.write.bytes_ps_server:
+ - ps_server
+ - disk.device.write.bytes
+ disk.device.read.bytes_ps_server:
+ - ps_server
+ - disk.device.read.bytes
+ disk.read.bytes_ps_server:
+ - ps_server
+ - disk.read.bytes
+ network.incoming.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes
+ disk.device.iops_ps_server:
+ - ps_server
+ - disk.device.iops
+ disk.device.latency_ps_server:
+ - ps_server
+ - disk.device.latency
+ disk.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.read.bytes.rate
+ memory_ps_server:
+ - ps_server
+ - memory
+ scalable_ps_server:
+ - ps_server
+ - scalable
+ attachment_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - attachment
+ disk.write.requests.rate_ps_server:
+ - ps_server
+ - disk.write.requests.rate
+ disk.write.requests_ps_server:
+ - ps_server
+ - disk.write.requests
+ disk.latency_ps_server:
+ - ps_server
+ - disk.latency
+ disk.ephemeral.size_ps_server:
+ - ps_server
+ - disk.ephemeral.size
+ disk.device.capacity_ps_server:
+ - ps_server
+ - disk.device.capacity
+ network.incoming.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.packets.rate
+ disk.iops_ps_server:
+ - ps_server
+ - disk.iops
+ disk.device.read.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.read.bytes.rate
+ cpu_util_ps_server:
+ - ps_server
+ - cpu_util
+ memory.resident_ps_server:
+ - ps_server
+ - memory.resident
+ disk.device.read.requests_ps_server:
+ - ps_server
+ - disk.device.read.requests
+ disk.write.bytes_ps_server:
+ - ps_server
+ - disk.write.bytes
+ network.outgoing.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes.rate
+ network.outgoing.packets.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.incoming.bytes.rate
+ disk.device.write.requests.rate_ps_server:
+ - ps_server
+ - disk.device.write.requests.rate
+ disk.read.requests_ps_server:
+ - ps_server
+ - disk.read.requests
+ disk.allocation_ps_server:
+ - ps_server
+ - disk.allocation
+ memory.usage_ps_server:
+ - ps_server
+ - memory.usage
+ binding_ps_server:
+ - ps_server
+ - binding
+ os_ps_server:
+ - ps_server
+ - os
+ disk.device.usage_ps_server:
+ - ps_server
+ - disk.device.usage
+ binding_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - binding
+ disk.device.write.bytes.rate_ps_server:
+ - ps_server
+ - disk.device.write.bytes.rate
+ vcpus_ps_server:
+ - ps_server
+ - vcpus
+ network.outgoing.bytes_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outgoing.bytes
+ disk.usage_ps_server:
+ - ps_server
+ - disk.usage
+ disk.device.write.requests_ps_server:
+ - ps_server
+ - disk.device.write.requests
+ network.outpoing.packets_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - network.outpoing.packets
+ endpoint_ps_server:
+ - ps_server
+ - endpoint
+ disk.capacity_ps_server:
+ - ps_server
+ - disk.capacity
+ disk.device.allocation_ps_server:
+ - ps_server
+ - disk.device.allocation
+ requirements:
+ dependency_ps_server:
+ - ps_server
+ - dependency
+ dependency_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - dependency
+ link_ps_server_ps_server_port:
+ - ps_server_ps_server_port
+ - link
+ local_storage_ps_server:
+ - ps_server
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_sm_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_sm_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..08e4b3afe4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/Nested_sm_serverServiceTemplate.yaml
@@ -0,0 +1,310 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_sm_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.sm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_sm_server_port_order:
+ type: integer
+ required: true
+ port_sm_server_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_sm_server_port_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_sm_server_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_sm_server_port_network_role_tag:
+ type: string
+ required: true
+ port_sm_server_port_network_role:
+ type: string
+ required: true
+ port_sm_server_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_sm_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ compute_sm_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_sm_server_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_sm_server_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_sm_server_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ sm_server:
+ type: org.openecomp.resource.vfc.nodes.heat.sm_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_sm_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_sm_server_name
+ - index_value
+ sm_server_sm_server_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_sm_server_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_sm_server_port_mac_requirements
+ order:
+ get_input: port_sm_server_port_order
+ security_groups:
+ get_input:
+ - port_sm_server_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_sm_server_port_exCP_naming
+ vlan_requirements:
+ get_input: port_sm_server_port_vlan_requirements
+ ip_requirements:
+ get_input: port_sm_server_port_ip_requirements
+ network_role_tag:
+ get_input: port_sm_server_port_network_role_tag
+ network_role:
+ get_input: port_sm_server_port_network_role
+ fixed_ips:
+ get_input: port_sm_server_port_fixed_ips
+ subnetpoolid:
+ get_input: port_sm_server_port_subnetpoolid
+ network:
+ get_input:
+ - port_sm_server_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: sm_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.sm_server
+ capabilities:
+ disk.device.read.requests_sm_server:
+ - sm_server
+ - disk.device.read.requests
+ binding_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - binding
+ disk.iops_sm_server:
+ - sm_server
+ - disk.iops
+ disk.device.capacity_sm_server:
+ - sm_server
+ - disk.device.capacity
+ disk.device.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.read.bytes.rate
+ disk.device.write.requests.rate_sm_server:
+ - sm_server
+ - disk.device.write.requests.rate
+ disk.device.allocation_sm_server:
+ - sm_server
+ - disk.device.allocation
+ network.incoming.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes
+ attachment_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - attachment
+ memory.usage_sm_server:
+ - sm_server
+ - memory.usage
+ binding_sm_server:
+ - sm_server
+ - binding
+ disk.read.requests_sm_server:
+ - sm_server
+ - disk.read.requests
+ network.outpoing.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outpoing.packets
+ endpoint_sm_server:
+ - sm_server
+ - endpoint
+ disk.device.read.requests.rate_sm_server:
+ - sm_server
+ - disk.device.read.requests.rate
+ disk.capacity_sm_server:
+ - sm_server
+ - disk.capacity
+ disk.allocation_sm_server:
+ - sm_server
+ - disk.allocation
+ disk.root.size_sm_server:
+ - sm_server
+ - disk.root.size
+ disk.usage_sm_server:
+ - sm_server
+ - disk.usage
+ vcpus_sm_server:
+ - sm_server
+ - vcpus
+ disk.write.bytes_sm_server:
+ - sm_server
+ - disk.write.bytes
+ cpu.delta_sm_server:
+ - sm_server
+ - cpu.delta
+ os_sm_server:
+ - sm_server
+ - os
+ feature_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - feature
+ memory.resident_sm_server:
+ - sm_server
+ - memory.resident
+ network.outgoing.bytes_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes
+ instance_sm_server:
+ - sm_server
+ - instance
+ cpu_sm_server:
+ - sm_server
+ - cpu
+ disk.device.write.bytes_sm_server:
+ - sm_server
+ - disk.device.write.bytes
+ network.incoming.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets.rate
+ disk.write.requests.rate_sm_server:
+ - sm_server
+ - disk.write.requests.rate
+ disk.device.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.device.write.bytes.rate
+ disk.write.bytes.rate_sm_server:
+ - sm_server
+ - disk.write.bytes.rate
+ disk.device.write.requests_sm_server:
+ - sm_server
+ - disk.device.write.requests
+ disk.device.latency_sm_server:
+ - sm_server
+ - disk.device.latency
+ host_sm_server:
+ - sm_server
+ - host
+ feature_sm_server:
+ - sm_server
+ - feature
+ disk.device.usage_sm_server:
+ - sm_server
+ - disk.device.usage
+ scalable_sm_server:
+ - sm_server
+ - scalable
+ disk.device.iops_sm_server:
+ - sm_server
+ - disk.device.iops
+ disk.read.bytes.rate_sm_server:
+ - sm_server
+ - disk.read.bytes.rate
+ disk.device.read.bytes_sm_server:
+ - sm_server
+ - disk.device.read.bytes
+ disk.latency_sm_server:
+ - sm_server
+ - disk.latency
+ network.incoming.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.bytes.rate
+ disk.read.bytes_sm_server:
+ - sm_server
+ - disk.read.bytes
+ disk.write.requests_sm_server:
+ - sm_server
+ - disk.write.requests
+ cpu_util_sm_server:
+ - sm_server
+ - cpu_util
+ disk.ephemeral.size_sm_server:
+ - sm_server
+ - disk.ephemeral.size
+ network.outgoing.packets.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.packets.rate
+ network.incoming.packets_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.incoming.packets
+ memory_sm_server:
+ - sm_server
+ - memory
+ network.outgoing.bytes.rate_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - network.outgoing.bytes.rate
+ requirements:
+ dependency_sm_server:
+ - sm_server
+ - dependency
+ dependency_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - dependency
+ local_storage_sm_server:
+ - sm_server
+ - local_storage
+ link_sm_server_sm_server_port:
+ - sm_server_sm_server_port
+ - link
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-other-file-1BServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-other-file-1BServiceTemplate.yaml
new file mode 100644
index 0000000000..a01666fe5b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-other-file-1BServiceTemplate.yaml
@@ -0,0 +1,520 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-other-file-1B
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Ps Image server
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ ps_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ ps_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PS server
+ pd_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: PD server names
+ entry_schema:
+ type: string
+ pd_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for PD server
+ ps_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: Ps server names
+ entry_schema:
+ type: string
+ pd_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: PD Image server
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ pd_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ port_pd_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd_server_port_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ compute_pd_server_availability_zone:
+ - get_input: availability_zone_0
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd_server_port_network:
+ - get_input: net
+ vm_flavor_name:
+ get_input: pd_server_flavor
+ port_pd_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - pd_server_ips
+ - 0
+ vm_image_name:
+ get_input: pd_server_image
+ port_pd_server_port_replacement_policy:
+ - AUTO
+ port_pd_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_ps_server:
+ type: org.openecomp.resource.abstract.nodes.ps_server
+ directives:
+ - substitutable
+ properties:
+ port_ps_server_port_network:
+ - get_input: net
+ compute_ps_server_name:
+ - get_input:
+ - ps_server_names
+ - 1
+ port_ps_server_port_security_groups:
+ - - get_input: p1
+ compute_ps_server_availability_zone:
+ - get_input: availability_zone_0
+ port_ps_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - ps_server_ips
+ - 0
+ vm_flavor_name:
+ get_input: ps_server_flavor
+ port_ps_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_ps_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: ps_server_image
+ port_ps_server_port_replacement_policy:
+ - AUTO
+ service_template_filter:
+ substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested-other-file-1B_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-other-file-1B.yml
+ description: nested1
+ members:
+ - abstract_pd_server
+ - abstract_ps_server
+ outputs:
+ nested_same_file_attr_1:
+ description: nested_same_file_attr_1
+ value: server_pd
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-other-file-1B
+ capabilities:
+ disk.iops_server_pd:
+ - abstract_pd_server
+ - disk.iops_pd_server
+ disk.device.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
+ disk.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes_ps_server
+ disk.device.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
+ network.incoming.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets.rate_ps_server_ps_server_port
+ disk.device.allocation_server_pd:
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
+ disk.iops_server_ps:
+ - abstract_ps_server
+ - disk.iops_ps_server
+ disk.device.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes.rate_ps_server
+ binding_server_ps:
+ - abstract_ps_server
+ - binding_ps_server
+ attachment_ps_server_port:
+ - abstract_ps_server
+ - attachment_ps_server_ps_server_port
+ disk.device.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests_ps_server
+ memory.usage_server_pd:
+ - abstract_pd_server
+ - memory.usage_pd_server
+ feature_ps_server_port:
+ - abstract_ps_server
+ - feature_ps_server_ps_server_port
+ disk.read.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
+ network.outgoing.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes.rate_ps_server_ps_server_port
+ memory_server_pd:
+ - abstract_pd_server
+ - memory_pd_server
+ disk.device.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
+ disk.device.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.read.bytes_ps_server
+ disk.device.allocation_server_ps:
+ - abstract_ps_server
+ - disk.device.allocation_ps_server
+ memory.usage_server_ps:
+ - abstract_ps_server
+ - memory.usage_ps_server
+ network.outgoing.packets.rate_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.packets.rate_ps_server_ps_server_port
+ binding_ps_server_port:
+ - abstract_ps_server
+ - binding_ps_server_ps_server_port
+ network.incoming.packets_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pd_server_port
+ disk.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
+ disk.device.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests_ps_server
+ network.outpoing.packets_ps_server_port:
+ - abstract_ps_server
+ - network.outpoing.packets_ps_server_ps_server_port
+ disk.device.read.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
+ host_server_pd:
+ - abstract_pd_server
+ - host_pd_server
+ vcpus_server_pd:
+ - abstract_pd_server
+ - vcpus_pd_server
+ disk.ephemeral.size_server_pd:
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
+ network.incoming.bytes.rate_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes.rate_ps_server_ps_server_port
+ disk.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
+ memory_server_ps:
+ - abstract_ps_server
+ - memory_ps_server
+ network.incoming.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pd_server_port
+ attachment_pd_server_port:
+ - abstract_pd_server
+ - attachment_pd_server_pd_server_port
+ disk.write.requests_server_pd:
+ - abstract_pd_server
+ - disk.write.requests_pd_server
+ network.incoming.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pd_server_port
+ disk.ephemeral.size_server_ps:
+ - abstract_ps_server
+ - disk.ephemeral.size_ps_server
+ disk.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.requests.rate_ps_server
+ disk.device.write.bytes_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes_ps_server
+ disk.root.size_server_ps:
+ - abstract_ps_server
+ - disk.root.size_ps_server
+ disk.device.read.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.read.requests.rate_ps_server
+ network.outgoing.bytes_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pd_server_port
+ disk.write.requests_server_ps:
+ - abstract_ps_server
+ - disk.write.requests_ps_server
+ binding_server_pd:
+ - abstract_pd_server
+ - binding_pd_server
+ disk.root.size_server_pd:
+ - abstract_pd_server
+ - disk.root.size_pd_server
+ disk.device.read.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
+ network.outpoing.packets_pd_server_port:
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pd_server_port
+ disk.device.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
+ host_server_ps:
+ - abstract_ps_server
+ - host_ps_server
+ network.incoming.packets_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.packets_ps_server_ps_server_port
+ memory.resident_server_pd:
+ - abstract_pd_server
+ - memory.resident_pd_server
+ disk.usage_server_ps:
+ - abstract_ps_server
+ - disk.usage_ps_server
+ network.outgoing.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.outgoing.bytes_ps_server_ps_server_port
+ cpu_util_server_pd:
+ - abstract_pd_server
+ - cpu_util_pd_server
+ endpoint_server_ps:
+ - abstract_ps_server
+ - endpoint_ps_server
+ disk.read.requests_server_ps:
+ - abstract_ps_server
+ - disk.read.requests_ps_server
+ memory.resident_server_ps:
+ - abstract_ps_server
+ - memory.resident_ps_server
+ disk.usage_server_pd:
+ - abstract_pd_server
+ - disk.usage_pd_server
+ disk.capacity_server_pd:
+ - abstract_pd_server
+ - disk.capacity_pd_server
+ endpoint_server_pd:
+ - abstract_pd_server
+ - endpoint_pd_server
+ cpu_util_server_ps:
+ - abstract_ps_server
+ - cpu_util_ps_server
+ network.incoming.bytes_ps_server_port:
+ - abstract_ps_server
+ - network.incoming.bytes_ps_server_ps_server_port
+ disk.device.capacity_server_pd:
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
+ network.incoming.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pd_server_port
+ vcpus_server_ps:
+ - abstract_ps_server
+ - vcpus_ps_server
+ disk.allocation_server_pd:
+ - abstract_pd_server
+ - disk.allocation_pd_server
+ disk.device.usage_server_pd:
+ - abstract_pd_server
+ - disk.device.usage_pd_server
+ disk.capacity_server_ps:
+ - abstract_ps_server
+ - disk.capacity_ps_server
+ disk.allocation_server_ps:
+ - abstract_ps_server
+ - disk.allocation_ps_server
+ disk.device.usage_server_ps:
+ - abstract_ps_server
+ - disk.device.usage_ps_server
+ instance_server_pd:
+ - abstract_pd_server
+ - instance_pd_server
+ disk.device.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.bytes.rate_ps_server
+ disk.write.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.write.bytes.rate_ps_server
+ feature_pd_server_port:
+ - abstract_pd_server
+ - feature_pd_server_pd_server_port
+ disk.read.bytes_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes_ps_server
+ network.outgoing.bytes.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pd_server_port
+ network.outgoing.packets.rate_pd_server_port:
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pd_server_port
+ binding_pd_server_port:
+ - abstract_pd_server
+ - binding_pd_server_pd_server_port
+ cpu_server_ps:
+ - abstract_ps_server
+ - cpu_ps_server
+ cpu.delta_server_pd:
+ - abstract_pd_server
+ - cpu.delta_pd_server
+ instance_server_ps:
+ - abstract_ps_server
+ - instance_ps_server
+ disk.read.bytes.rate_server_ps:
+ - abstract_ps_server
+ - disk.read.bytes.rate_ps_server
+ disk.latency_server_pd:
+ - abstract_pd_server
+ - disk.latency_pd_server
+ disk.device.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
+ os_server_ps:
+ - abstract_ps_server
+ - os_ps_server
+ cpu.delta_server_ps:
+ - abstract_ps_server
+ - cpu.delta_ps_server
+ feature_server_ps:
+ - abstract_ps_server
+ - feature_ps_server
+ disk.device.iops_server_pd:
+ - abstract_pd_server
+ - disk.device.iops_pd_server
+ disk.latency_server_ps:
+ - abstract_ps_server
+ - disk.latency_ps_server
+ disk.read.requests_server_pd:
+ - abstract_pd_server
+ - disk.read.requests_pd_server
+ disk.device.write.requests.rate_server_ps:
+ - abstract_ps_server
+ - disk.device.write.requests.rate_ps_server
+ os_server_pd:
+ - abstract_pd_server
+ - os_pd_server
+ disk.device.latency_server_pd:
+ - abstract_pd_server
+ - disk.device.latency_pd_server
+ disk.device.capacity_server_ps:
+ - abstract_ps_server
+ - disk.device.capacity_ps_server
+ scalable_server_pd:
+ - abstract_pd_server
+ - scalable_pd_server
+ disk.write.bytes_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
+ disk.write.bytes.rate_server_pd:
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
+ disk.device.latency_server_ps:
+ - abstract_ps_server
+ - disk.device.latency_ps_server
+ disk.device.iops_server_ps:
+ - abstract_ps_server
+ - disk.device.iops_ps_server
+ feature_server_pd:
+ - abstract_pd_server
+ - feature_pd_server
+ disk.device.write.requests.rate_server_pd:
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
+ scalable_server_ps:
+ - abstract_ps_server
+ - scalable_ps_server
+ cpu_server_pd:
+ - abstract_pd_server
+ - cpu_pd_server
+ requirements:
+ local_storage_server_pd:
+ - abstract_pd_server
+ - local_storage_pd_server
+ dependency_server_pd:
+ - abstract_pd_server
+ - dependency_pd_server
+ dependency_server_ps:
+ - abstract_ps_server
+ - dependency_ps_server
+ dependency_ps_server_port:
+ - abstract_ps_server
+ - dependency_ps_server_ps_server_port
+ dependency_pd_server_port:
+ - abstract_pd_server
+ - dependency_pd_server_pd_server_port
+ link_pd_server_port:
+ - abstract_pd_server
+ - link_pd_server_pd_server_port
+ link_ps_server_port:
+ - abstract_ps_server
+ - link_ps_server_ps_server_port
+ local_storage_server_ps:
+ - abstract_ps_server
+ - local_storage_ps_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-same-file-1BServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-same-file-1BServiceTemplate.yaml
new file mode 100644
index 0000000000..dbac5b33ff
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/nested-same-file-1BServiceTemplate.yaml
@@ -0,0 +1,520 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-same-file-1B
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ p1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ p2:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ sm_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: SM server names
+ entry_schema:
+ type: string
+ oam_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM Image server
+ oam_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for OAM server
+ sm_server_ips:
+ hidden: false
+ immutable: false
+ type: string
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ oam_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM server names
+ entry_schema:
+ type: string
+ sm_server_flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor for SM server
+ sm_server_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: SM Image server
+ node_templates:
+ abstract_sm_server:
+ type: org.openecomp.resource.abstract.nodes.sm_server
+ directives:
+ - substitutable
+ properties:
+ vm_flavor_name:
+ get_input: sm_server_flavor
+ port_sm_server_port_network:
+ - get_input: net
+ compute_sm_server_name:
+ - get_input:
+ - sm_server_names
+ - 0
+ port_sm_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ vm_image_name:
+ get_input: sm_server_image
+ compute_sm_server_availability_zone:
+ - get_input: availability_zone_0
+ port_sm_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_sm_server_port_replacement_policy:
+ - AUTO
+ port_sm_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - sm_server_ips
+ - 0
+ port_sm_server_port_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ service_template_filter:
+ substitute_service_template: Nested_sm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_oam_server:
+ type: org.openecomp.resource.abstract.nodes.oam_server
+ directives:
+ - substitutable
+ properties:
+ port_oam_server_port_network:
+ - get_input: net
+ port_oam_server_port_security_groups:
+ - - get_input: p1
+ port_oam_server_port_replacement_policy:
+ - AUTO
+ vm_flavor_name:
+ get_input: oam_server_flavor
+ port_oam_server_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_oam_server_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: oam_server_image
+ port_oam_server_port_fixed_ips:
+ - ip_address:
+ get_input:
+ - oam_server_ips
+ - 0
+ compute_oam_server_name:
+ - get_input:
+ - oam_server_names
+ - 1
+ port_oam_server_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ service_template_filter:
+ substitute_service_template: Nested_oam_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ nested-same-file-1B_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-same-file-1B.yml
+ description: nested1
+ members:
+ - abstract_sm_server
+ - abstract_oam_server
+ outputs:
+ nested_diff_file_attr_1:
+ description: nested_diff_file_attr_1_value
+ value: server_sm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-same-file-1B
+ capabilities:
+ os_server_sm:
+ - abstract_sm_server
+ - os_sm_server
+ disk.capacity_server_sm:
+ - abstract_sm_server
+ - disk.capacity_sm_server
+ memory_server_oam:
+ - abstract_oam_server
+ - memory_oam_server
+ disk.device.iops_server_oam:
+ - abstract_oam_server
+ - disk.device.iops_oam_server
+ disk.device.usage_server_sm:
+ - abstract_sm_server
+ - disk.device.usage_sm_server
+ disk.device.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests.rate_sm_server
+ disk.allocation_server_oam:
+ - abstract_oam_server
+ - disk.allocation_oam_server
+ network.incoming.packets_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets_sm_server_sm_server_port
+ disk.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes.rate_sm_server
+ feature_oam_server_port:
+ - abstract_oam_server
+ - feature_oam_server_oam_server_port
+ disk.usage_server_oam:
+ - abstract_oam_server
+ - disk.usage_oam_server
+ instance_server_sm:
+ - abstract_sm_server
+ - instance_sm_server
+ disk.device.latency_server_oam:
+ - abstract_oam_server
+ - disk.device.latency_oam_server
+ disk.root.size_server_oam:
+ - abstract_oam_server
+ - disk.root.size_oam_server
+ host_server_sm:
+ - abstract_sm_server
+ - host_sm_server
+ memory.usage_server_oam:
+ - abstract_oam_server
+ - memory.usage_oam_server
+ disk.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes_oam_server
+ disk.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.read.requests_oam_server
+ cpu_util_server_sm:
+ - abstract_sm_server
+ - cpu_util_sm_server
+ disk.device.capacity_server_sm:
+ - abstract_sm_server
+ - disk.device.capacity_sm_server
+ disk.device.read.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes_oam_server
+ network.incoming.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes_oam_server_oam_server_port
+ disk.device.iops_server_sm:
+ - abstract_sm_server
+ - disk.device.iops_sm_server
+ disk.device.read.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests.rate_oam_server
+ vcpus_server_oam:
+ - abstract_oam_server
+ - vcpus_oam_server
+ disk.device.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes_sm_server
+ disk.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.read.bytes.rate_oam_server
+ disk.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes_oam_server
+ disk.latency_server_sm:
+ - abstract_sm_server
+ - disk.latency_sm_server
+ disk.device.allocation_server_oam:
+ - abstract_oam_server
+ - disk.device.allocation_oam_server
+ attachment_oam_server_port:
+ - abstract_oam_server
+ - attachment_oam_server_oam_server_port
+ scalable_server_oam:
+ - abstract_oam_server
+ - scalable_oam_server
+ cpu_util_server_oam:
+ - abstract_oam_server
+ - cpu_util_oam_server
+ feature_server_sm:
+ - abstract_sm_server
+ - feature_sm_server
+ cpu.delta_server_oam:
+ - abstract_oam_server
+ - cpu.delta_oam_server
+ host_server_oam:
+ - abstract_oam_server
+ - host_oam_server
+ cpu.delta_server_sm:
+ - abstract_sm_server
+ - cpu.delta_sm_server
+ binding_server_oam:
+ - abstract_oam_server
+ - binding_oam_server
+ disk.device.capacity_server_oam:
+ - abstract_oam_server
+ - disk.device.capacity_oam_server
+ disk.device.write.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes.rate_sm_server
+ disk.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.write.bytes_sm_server
+ disk.latency_server_oam:
+ - abstract_oam_server
+ - disk.latency_oam_server
+ disk.device.read.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.read.requests_oam_server
+ disk.device.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests.rate_oam_server
+ endpoint_server_sm:
+ - abstract_sm_server
+ - endpoint_sm_server
+ disk.device.allocation_server_sm:
+ - abstract_sm_server
+ - disk.device.allocation_sm_server
+ feature_server_oam:
+ - abstract_oam_server
+ - feature_oam_server
+ disk.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.read.requests_sm_server
+ disk.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.bytes.rate_oam_server
+ memory.resident_server_sm:
+ - abstract_sm_server
+ - memory.resident_sm_server
+ cpu_server_oam:
+ - abstract_oam_server
+ - cpu_oam_server
+ memory_server_sm:
+ - abstract_sm_server
+ - memory_sm_server
+ scalable_server_sm:
+ - abstract_sm_server
+ - scalable_sm_server
+ network.outgoing.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.packets.rate_sm_server_sm_server_port
+ binding_sm_server_port:
+ - abstract_sm_server
+ - binding_sm_server_sm_server_port
+ network.outgoing.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes.rate_sm_server_sm_server_port
+ disk.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.write.requests_oam_server
+ disk.device.latency_server_sm:
+ - abstract_sm_server
+ - disk.device.latency_sm_server
+ memory.usage_server_sm:
+ - abstract_sm_server
+ - memory.usage_sm_server
+ memory.resident_server_oam:
+ - abstract_oam_server
+ - memory.resident_oam_server
+ feature_sm_server_port:
+ - abstract_sm_server
+ - feature_sm_server_sm_server_port
+ disk.device.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.write.requests_sm_server
+ disk.device.write.requests_server_oam:
+ - abstract_oam_server
+ - disk.device.write.requests_oam_server
+ disk.read.bytes_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes_sm_server
+ cpu_server_sm:
+ - abstract_sm_server
+ - cpu_sm_server
+ network.outpoing.packets_sm_server_port:
+ - abstract_sm_server
+ - network.outpoing.packets_sm_server_sm_server_port
+ network.incoming.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.bytes.rate_oam_server_oam_server_port
+ disk.device.usage_server_oam:
+ - abstract_oam_server
+ - disk.device.usage_oam_server
+ network.outgoing.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.packets.rate_oam_server_oam_server_port
+ network.incoming.packets.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.packets.rate_sm_server_sm_server_port
+ binding_oam_server_port:
+ - abstract_oam_server
+ - binding_oam_server_oam_server_port
+ network.incoming.packets.rate_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes_oam_server
+ disk.device.read.requests_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests_sm_server
+ disk.device.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.bytes.rate_sm_server
+ disk.ephemeral.size_server_oam:
+ - abstract_oam_server
+ - disk.ephemeral.size_oam_server
+ network.outpoing.packets_oam_server_port:
+ - abstract_oam_server
+ - network.outpoing.packets_oam_server_oam_server_port
+ os_server_oam:
+ - abstract_oam_server
+ - os_oam_server
+ disk.capacity_server_oam:
+ - abstract_oam_server
+ - disk.capacity_oam_server
+ disk.write.requests_server_sm:
+ - abstract_sm_server
+ - disk.write.requests_sm_server
+ disk.ephemeral.size_server_sm:
+ - abstract_sm_server
+ - disk.ephemeral.size_sm_server
+ disk.read.bytes.rate_server_sm:
+ - abstract_sm_server
+ - disk.read.bytes.rate_sm_server
+ endpoint_server_oam:
+ - abstract_oam_server
+ - endpoint_oam_server
+ disk.device.read.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.device.read.requests.rate_sm_server
+ binding_server_sm:
+ - abstract_sm_server
+ - binding_sm_server
+ disk.root.size_server_sm:
+ - abstract_sm_server
+ - disk.root.size_sm_server
+ network.outgoing.bytes_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes_oam_server_oam_server_port
+ disk.allocation_server_sm:
+ - abstract_sm_server
+ - disk.allocation_sm_server
+ disk.iops_server_oam:
+ - abstract_oam_server
+ - disk.iops_oam_server
+ disk.write.requests.rate_server_sm:
+ - abstract_sm_server
+ - disk.write.requests.rate_sm_server
+ network.outgoing.bytes.rate_oam_server_port:
+ - abstract_oam_server
+ - network.outgoing.bytes.rate_oam_server_oam_server_port
+ disk.device.write.bytes_server_sm:
+ - abstract_sm_server
+ - disk.device.write.bytes_sm_server
+ disk.write.requests.rate_server_oam:
+ - abstract_oam_server
+ - disk.write.requests.rate_oam_server
+ disk.device.read.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.read.bytes.rate_oam_server
+ network.incoming.bytes.rate_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes.rate_sm_server_sm_server_port
+ disk.device.write.bytes.rate_server_oam:
+ - abstract_oam_server
+ - disk.device.write.bytes.rate_oam_server
+ network.incoming.packets_oam_server_port:
+ - abstract_oam_server
+ - network.incoming.packets_oam_server_oam_server_port
+ disk.usage_server_sm:
+ - abstract_sm_server
+ - disk.usage_sm_server
+ instance_server_oam:
+ - abstract_oam_server
+ - instance_oam_server
+ network.outgoing.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.outgoing.bytes_sm_server_sm_server_port
+ vcpus_server_sm:
+ - abstract_sm_server
+ - vcpus_sm_server
+ attachment_sm_server_port:
+ - abstract_sm_server
+ - attachment_sm_server_sm_server_port
+ network.incoming.bytes_sm_server_port:
+ - abstract_sm_server
+ - network.incoming.bytes_sm_server_sm_server_port
+ disk.iops_server_sm:
+ - abstract_sm_server
+ - disk.iops_sm_server
+ requirements:
+ dependency_sm_server_port:
+ - abstract_sm_server
+ - dependency_sm_server_sm_server_port
+ link_oam_server_port:
+ - abstract_oam_server
+ - link_oam_server_oam_server_port
+ local_storage_server_oam:
+ - abstract_oam_server
+ - local_storage_oam_server
+ local_storage_server_sm:
+ - abstract_sm_server
+ - local_storage_sm_server
+ link_sm_server_port:
+ - abstract_sm_server
+ - link_sm_server_sm_server_port
+ dependency_server_oam:
+ - abstract_oam_server
+ - dependency_oam_server
+ dependency_oam_server_port:
+ - abstract_oam_server
+ - dependency_oam_server_oam_server_port
+ dependency_server_sm:
+ - abstract_sm_server
+ - dependency_sm_server
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 f67e04bfc0..7117003215 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
@@ -54,15 +54,15 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_1_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.2
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -91,15 +91,15 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -149,7 +149,7 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_1_0
+ - server_pcm_001
- oam_net_gw
vm_image_name:
get_input: compute_image_name
@@ -190,7 +190,7 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_pcm_001
- compute_port_0
- abstract_compute
- - abstract_pcm_server_0
- - abstract_pcm_server_1_0
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 713591db2f..3702b5affd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -49,7 +49,7 @@ node_types:
description: List of DNS servers.
required: true
status: SUPPORTED
- entry_schema: &id001
+ entry_schema: &id007
type: string
oam_net_security_group_id:
type: string
@@ -57,11 +57,6 @@ node_types:
The ID of Security group applied on the port bound to the vSON OAM network.
required: true
status: SUPPORTED
- vson_vm_image_name:
- type: string
- description: VM Image name the vSON instance will be created from.
- required: true
- status: SUPPORTED
vnf_id:
type: string
description: Unique ID for this VF instance.
@@ -94,7 +89,7 @@ node_types:
description: Fixed IP assignments for vSON instances on the OAM network.
required: true
status: SUPPORTED
- entry_schema: &id002
+ entry_schema: &id008
type: string
vfc_role:
type: string
@@ -133,28 +128,22 @@ node_types:
description: List of availability zones.
required: true
status: SUPPORTED
- entry_schema: &id003
+ entry_schema: &id009
type: string
volume_ids:
type: list
description: List of Volumes IDs.
required: true
status: SUPPORTED
- entry_schema: &id004
+ entry_schema: &id010
type: string
ntp_servers:
type: list
description: List of NTP servers.
required: true
status: SUPPORTED
- entry_schema: &id005
+ entry_schema: &id011
type: string
- vson_join_cluster_auth_token:
- type: string
- description: "Authentication Token generated for the user permitted to add\
- \ a new Datacenter/vSON member to existing vSON Cluster. \n"
- required: true
- status: SUPPORTED
oam_net_id:
type: string
description: The ID of the OAM network.
@@ -173,7 +162,7 @@ node_types:
description: A list of unique names to be issued to the vSON Cluster leaders.
required: true
status: SUPPORTED
- entry_schema: &id006
+ entry_schema: &id012
type: string
requirements:
- dependency_vson_server:
@@ -1042,9 +1031,510 @@ node_types:
description: Unique ID for this VF Module instance
required: true
status: SUPPORTED
- vson_cluster_name:
+ default_gateway:
type: string
- description: Name of the vSON Cluster.
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id001
+ type: string
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vson_vm_image_name:
+ type: string
+ description: VM Image name the vSON instance will be created from.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id002
+ type: string
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id003
+ type: string
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id004
+ type: string
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id005
+ type: string
+ vson_join_cluster_auth_token:
+ type: string
+ description: "Authentication Token generated for the user permitted to add\
+ \ a new Datacenter/vSON member to existing vSON Cluster. \n"
+ required: true
+ status: SUPPORTED
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id006
+ type: string
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
required: true
status: SUPPORTED
default_gateway:
@@ -1073,10 +1563,504 @@ node_types:
description: Prefix length of the subnet on the OAM network.
required: true
status: SUPPORTED
- swift_storage_url:
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id001
+ oam_net_security_group_id:
type: string
description: |
- Swift storage URL. Example: http://172.16.209.246:8080/v1/AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 http://172.16.209.246:8080 - protocol, IP and port, v1 - API version AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 - account ID
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vson_vm_image_name:
+ type: string
+ description: VM Image name the vSON instance will be created from.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id002
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id003
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id004
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id005
+ vson_join_cluster_auth_token:
+ type: string
+ description: "Authentication Token generated for the user permitted to add\
+ \ a new Datacenter/vSON member to existing vSON Cluster. \n"
+ required: true
+ status: SUPPORTED
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id006
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_8:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
required: true
status: SUPPORTED
vf_module_name:
@@ -1089,8 +2073,496 @@ node_types:
description: List of DNS servers.
required: true
status: SUPPORTED
+ entry_schema: *id007
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id008
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id009
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id010
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id011
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id012
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_9:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id001
oam_net_security_group_id:
type: string
description: |
@@ -1124,18 +2596,517 @@ node_types:
type: string
required: true
status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
oam_net_ips:
type: list
description: Fixed IP assignments for vSON instances on the OAM network.
required: true
status: SUPPORTED
+ entry_schema: *id002
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
entry_schema:
- type: string
- swift_son_container_name:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id003
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id004
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id005
+ vson_join_cluster_auth_token:
type: string
- description: Swift container storing vSON artifacts.
+ description: "Authentication Token generated for the user permitted to add\
+ \ a new Datacenter/vSON member to existing vSON Cluster. \n"
+ required: true
+ status: SUPPORTED
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id006
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_6:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id001
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vson_vm_image_name:
+ type: string
+ description: VM Image name the vSON instance will be created from.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
required: true
status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id002
vfc_role:
type: string
description: Unique ID for this VF Module instance
@@ -1173,15 +3144,25 @@ node_types:
description: List of availability zones.
required: true
status: SUPPORTED
- entry_schema:
- type: string
+ entry_schema: *id003
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id004
ntp_servers:
type: list
description: List of NTP servers.
required: true
status: SUPPORTED
- entry_schema:
- type: string
+ entry_schema: *id005
+ vson_join_cluster_auth_token:
+ type: string
+ description: "Authentication Token generated for the user permitted to add\
+ \ a new Datacenter/vSON member to existing vSON Cluster. \n"
+ required: true
+ status: SUPPORTED
oam_net_id:
type: string
description: The ID of the OAM network.
@@ -1200,8 +3181,7 @@ node_types:
description: A list of unique names to be issued to the vSON Cluster leaders.
required: true
status: SUPPORTED
- entry_schema:
- type: string
+ entry_schema: *id006
requirements:
- dependency_vson_server:
capability: tosca.capabilities.Node
@@ -1538,7 +3518,7 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.heat.vson_vm_1:
+ org.openecomp.resource.abstract.nodes.heat.vson_vm_7:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
vf_module_id:
@@ -2038,3 +4018,1495 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.vson_vm_4:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ vson_cluster_name:
+ type: string
+ description: Name of the vSON Cluster.
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ swift_storage_url:
+ type: string
+ description: |
+ Swift storage URL. Example: http://172.16.209.246:8080/v1/AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 http://172.16.209.246:8080 - protocol, IP and port, v1 - API version AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 - account ID
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id013
+ type: string
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vson_vm_image_name:
+ type: string
+ description: VM Image name the vSON instance will be created from.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id014
+ type: string
+ swift_son_container_name:
+ type: string
+ description: Swift container storing vSON artifacts.
+ required: true
+ status: SUPPORTED
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id015
+ type: string
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id016
+ type: string
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: &id017
+ type: string
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_10:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ vson_cluster_name:
+ type: string
+ description: Name of the vSON Cluster.
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ swift_storage_url:
+ type: string
+ description: |
+ Swift storage URL. Example: http://172.16.209.246:8080/v1/AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 http://172.16.209.246:8080 - protocol, IP and port, v1 - API version AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 - account ID
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id013
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vson_vm_image_name:
+ type: string
+ description: VM Image name the vSON instance will be created from.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id014
+ swift_son_container_name:
+ type: string
+ description: Swift container storing vSON artifacts.
+ required: true
+ status: SUPPORTED
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id015
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id016
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id017
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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.heat.vson_vm_5:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ default_gateway:
+ type: string
+ description: Default gateway.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ instance_index:
+ type: float
+ description: Index of the instance.
+ required: true
+ status: SUPPORTED
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance.
+ required: true
+ status: SUPPORTED
+ oam_net_subnet_prefix_length:
+ type: string
+ description: Prefix length of the subnet on the OAM network.
+ required: true
+ status: SUPPORTED
+ vf_module_name:
+ type: string
+ description: Unique name for this VF module instance.
+ required: true
+ status: SUPPORTED
+ dns_servers:
+ type: list
+ description: List of DNS servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id007
+ oam_net_security_group_id:
+ type: string
+ description: |
+ The ID of Security group applied on the port bound to the vSON OAM network.
+ required: true
+ status: SUPPORTED
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_clm_oam_net_ip:
+ type: string
+ description: IP of the vSON Cluster Manager.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ vson_dc_unit:
+ type: string
+ description: Name of the vSON Data Center.
+ required: true
+ status: SUPPORTED
+ oam_net_ips:
+ type: list
+ description: Fixed IP assignments for vSON instances on the OAM network.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id008
+ vfc_role:
+ type: string
+ description: Unique ID for this VF Module instance
+ required: true
+ status: SUPPORTED
+ swift_account_auth_token:
+ type: string
+ description: |
+ Swift account auth token. Example: 041a5187bb4641f9b89583e2539776b0
+ required: true
+ status: SUPPORTED
+ vson_server_group_id:
+ type: string
+ description: |
+ Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+ required: true
+ status: SUPPORTED
+ vson_vm_flavor_name:
+ type: string
+ description: The ID or name of the flavor to boot onto.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ availability_zones:
+ type: list
+ description: List of availability zones.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id009
+ volume_ids:
+ type: list
+ description: List of Volumes IDs.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id010
+ ntp_servers:
+ type: list
+ description: List of NTP servers.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id011
+ oam_net_id:
+ type: string
+ description: The ID of the OAM network.
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_vson_server_oam_net_port_0_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ vson_vm_names:
+ type: list
+ description: A list of unique names to be issued to the vSON Cluster leaders.
+ required: true
+ status: SUPPORTED
+ entry_schema: *id012
+ requirements:
+ - dependency_vson_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_vson_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_vson_server_oam_net_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.write.bytes_vson_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_vson_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_vson_server_oam_net_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_vson_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_vson_server_oam_net_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_vson_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.rate_vson_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_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ feature_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_vson_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_vson_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_vson_server_oam_net_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_vson_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_vson_server_oam_net_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ vcpus_vson_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_vson_server_oam_net_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.rate_vson_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_vson_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_vson_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_vson_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.iops_vson_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_vson_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.outpoing.packets_vson_server_oam_net_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.bytes_vson_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.rate_vson_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_vson_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.packets.rate_vson_server_oam_net_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.root.size_vson_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.ephemeral.size_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes.rate_vson_server_oam_net_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_vson_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_vson_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_vson_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.usage_vson_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_vson_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_vson_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_vson_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.allocation_vson_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_vson_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vson_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vson_server_oam_net_port_0:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.incoming.bytes.rate_vson_server_oam_net_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_vson_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 \ 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/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 881506c874..bd968da3a9 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
@@ -879,14 +879,134 @@ topology_template:
type: string
description: Unique name to be issued to the vSON Mediator instance.
node_templates:
- abstract_vson_vm_3_0:
- type: org.openecomp.resource.abstract.nodes.heat.vson_vm_3
+ vson_dbc_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_dbc_volume_size_0) * 1024'
+ name:
+ get_input: vson_dbc_volume_name_0
+ description: vSON DB Config cinder volume.
+ vson_mdr_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: vson_mdr_image_name
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_mdr_volume_size_0) * 1024'
+ name:
+ get_input: vson_mdr_volume_name_0
+ description: |
+ vSON MDR cinder volume. The volume is created from the vSON base VM image.
+ vson_mgt_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: vson_mgt_image_name
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_mgt_volume_size_0) * 1024'
+ name:
+ get_input: vson_mgt_volume_name_0
+ description: |
+ vSON MGT cinder volume. The volume is created from the vSON base VM image.
+ vson_mon_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: vson_mon_image_name
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_mon_volume_size_0) * 1024'
+ name:
+ get_input: vson_mon_volume_name_0
+ description: |
+ vSON MON cinder volume. The volume is created from the vSON base VM image.
+ vson_cll_volume_2:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_cll_volume_size_2) * 1024'
+ name:
+ str_replace:
+ template: VNF_NAME_cll_volume_2
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ description: Cinder volume for the third vSON Cluster leader.
+ vson_cll_volume_0:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_0
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_cll_volume_size_0) * 1024'
+ name:
+ str_replace:
+ template: VNF_NAME_cll_volume_0
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ description: Cinder volume for the first vSON Cluster leader.
+ vson_cll_volume_1:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_1
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_cll_volume_size_1) * 1024'
+ name:
+ str_replace:
+ template: VNF_NAME_cll_volume_1
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ description: Cinder volume for the second vSON Cluster leader.
+ vson_clm_0:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server
directives:
- substitutable
properties:
vf_module_id:
get_input: vf_module_id
- vson_cluster_name: ''
+ vson_cluster_name:
+ get_input: vson_cluster_name
default_gateway:
get_input: default_gateway
port_vson_server_oam_net_port_0_ip_requirements:
@@ -895,44 +1015,37 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
- instance_index:
- get_property:
- - SELF
- - service_template_filter
- - index_value
+ instance_index: 0
vnf_name:
get_input: vnf_name
oam_net_subnet_prefix_length:
get_input: oam_net_subnet_prefix_length
- swift_storage_url: ''
+ swift_storage_url:
+ get_input: swift_storage_url
vf_module_name:
get_input: vf_module_name
dns_servers:
get_input: dns_servers
- oam_net_security_group_id:
- get_input: oam_net_security_group_id
+ oam_net_security_group_id: oam_net_security_group
service_template_filter:
substitute_service_template: nested_vson_serverServiceTemplate.yaml
- count:
- get_input: number_of_servers
- mandatory: false
vson_vm_image_name:
get_input: vson_clm_image_name
vnf_id:
get_input: vnf_id
vson_clm_oam_net_ip:
- get_input: vson_clm_0_oam_net_ip_0
+ get_input: vson_master_clm_ip
port_vson_server_oam_net_port_0_mac_requirements:
mac_count_required:
is_required: false
oam_net_ips:
- get_input: vson_clm_oam_net_ip_0
- swift_son_container_name: ''
+ swift_son_container_name:
+ get_input: swift_son_container_name
vfc_role: clm
swift_account_auth_token:
get_input: swift_account_auth_token
- vson_server_group_id:
- get_input: vson_clm_server_group_id
+ vson_server_group_id: UNSUPPORTED_RESOURCE_vson_clm_server_group
vson_vm_flavor_name:
get_input: vson_clm_flavor_name
port_vson_server_oam_net_port_0_network_role_tag: oam
@@ -944,8 +1057,13 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_clm_name_0
- abstract_vson_vm_1_0:
- type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: oam_net_security_group
+ relationship: tosca.relationships.DependsOn
+ vson_mgt_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_from_vol
directives:
- substitutable
properties:
@@ -975,12 +1093,10 @@ topology_template:
oam_net_security_group_id:
get_input: oam_net_security_group_id
service_template_filter:
- substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
+ substitute_service_template: nested_vson_server_from_volServiceTemplate.yaml
count:
get_input: number_of_servers
mandatory: false
- vson_vm_image_name:
- get_input: vson_dcl_image_name
vnf_id:
get_input: vnf_id
vson_clm_oam_net_ip:
@@ -991,37 +1107,41 @@ topology_template:
vson_dc_unit:
get_input: vson_dc_unit
oam_net_ips:
- - get_input: vson_dcl_oam_net_ip_0
- - get_input: vson_dcl_oam_net_ip_1
- - get_input: vson_dcl_oam_net_ip_2
- vfc_role: dcl
+ - get_input: vson_mgt_oam_net_ip_0
+ vfc_role: mgt
swift_account_auth_token:
get_input: swift_account_auth_token
vson_server_group_id:
- get_input: vson_leader_server_group_id
+ get_input: vson_mgt_server_group_id
vson_vm_flavor_name:
- get_input: vson_dcl_flavor_name
+ get_input: vson_mgt_flavor_name
port_vson_server_oam_net_port_0_network_role_tag: oam
availability_zones:
- get_input: availability_zone_0
- - get_input: availability_zone_1
- - get_input: availability_zone_0
volume_ids:
- - get_input: vson_dcl_volume_id_0
- - get_input: vson_dcl_volume_id_1
- - get_input: vson_dcl_volume_id_2
+ - get_input: vson_mgt_volume_id_0
ntp_servers:
get_input: ntp_servers
- vson_join_cluster_auth_token:
- get_input: vson_join_cluster_auth_token
oam_net_id:
get_input: oam_net_id
vson_vm_names:
- - get_input: vson_dcl_name_0
- - get_input: vson_dcl_name_1
- - get_input: vson_dcl_name_2
- abstract_vson_vm_2_0:
- type: org.openecomp.resource.abstract.nodes.heat.vson_vm_2
+ - get_input: vson_mgt_name_0
+ vson_dbs_volume_1:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_input: availability_zone_1
+ metadata:
+ vnf_name:
+ get_input: vnf_name
+ vf_module_name:
+ get_input: vf_module_name
+ size: '(get_input : vson_dbs_volume_size_1) * 1024'
+ name:
+ get_input: vson_dbs_volume_name_1
+ description: Cinder volume for the second vSON DBS VM instance.
+ vson_dbc_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol
directives:
- substitutable
properties:
@@ -1051,10 +1171,12 @@ topology_template:
oam_net_security_group_id:
get_input: oam_net_security_group_id
service_template_filter:
- substitute_service_template: nested_vson_server_from_volServiceTemplate.yaml
+ substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
count:
get_input: number_of_servers
mandatory: false
+ vson_vm_image_name:
+ get_input: vson_dbc_image_name
vnf_id:
get_input: vnf_id
vson_clm_oam_net_ip:
@@ -1065,91 +1187,107 @@ topology_template:
vson_dc_unit:
get_input: vson_dc_unit
oam_net_ips:
- - get_input: vson_mon_oam_net_ip_0
- vfc_role: mon
+ - get_input: vson_dbc_oam_net_ip_0
+ vfc_role: dbc
swift_account_auth_token:
get_input: swift_account_auth_token
vson_server_group_id:
- get_input: vson_mon_server_group_id
+ get_input: vson_dbc_server_group_id
vson_vm_flavor_name:
- get_input: vson_mon_flavor_name
+ get_input: vson_dbc_flavor_name
port_vson_server_oam_net_port_0_network_role_tag: oam
availability_zones:
- get_input: availability_zone_0
volume_ids:
- - get_input: vson_mon_volume_id_0
+ - get_input: vson_dbc_volume_id_0
ntp_servers:
get_input: ntp_servers
+ vson_join_cluster_auth_token:
+ get_input: vson_join_cluster_auth_token
oam_net_id:
get_input: oam_net_id
vson_vm_names:
- - get_input: vson_mon_name_0
- vson_dbc_volume_0:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
- properties:
- availability_zone:
- get_input: availability_zone_0
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dbc_volume_size_0) * 1024'
- name:
- get_input: vson_dbc_volume_name_0
- description: vSON DB Config cinder volume.
- vson_mdr_volume_0:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
- properties:
- availability_zone:
- get_input: availability_zone_0
- image:
- get_input: vson_mdr_image_name
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_mdr_volume_size_0) * 1024'
- name:
- get_input: vson_mdr_volume_name_0
- description: |
- vSON MDR cinder volume. The volume is created from the vSON base VM image.
- vson_mgt_volume_0:
+ - get_input: vson_dbc_name_0
+ vson_dbs_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
availability_zone:
get_input: availability_zone_0
- image:
- get_input: vson_mgt_image_name
metadata:
vnf_name:
get_input: vnf_name
vf_module_name:
get_input: vf_module_name
- size: '(get_input : vson_mgt_volume_size_0) * 1024'
+ size: '(get_input : vson_dbs_volume_size_0) * 1024'
name:
- get_input: vson_mgt_volume_name_0
- description: |
- vSON MGT cinder volume. The volume is created from the vSON base VM image.
- vson_mon_volume_0:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ get_input: vson_dbs_volume_name_0
+ description: Cinder volume for the first vSON DBS VM instance.
+ vson_clm_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server
+ directives:
+ - substitutable
properties:
- availability_zone:
- get_input: availability_zone_0
- image:
- get_input: vson_mon_image_name
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_mon_volume_size_0) * 1024'
- name:
- get_input: vson_mon_volume_name_0
- description: |
- vSON MON cinder volume. The volume is created from the vSON base VM image.
- vson_cll_volume_2:
+ vf_module_id:
+ get_input: vf_module_id
+ vson_cluster_name: ''
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ swift_storage_url: ''
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_serverServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vson_vm_image_name:
+ get_input: vson_clm_image_name
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ oam_net_ips:
+ - get_input: vson_clm_oam_net_ip_0
+ swift_son_container_name: ''
+ vfc_role: clm
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_clm_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_clm_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ ntp_servers:
+ get_input: ntp_servers
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_clm_name_0
+ vson_dcl_volume_2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
availability_zone:
@@ -1159,15 +1297,15 @@ topology_template:
get_input: vnf_name
vf_module_name:
get_input: vf_module_name
- size: '(get_input : vson_cll_volume_size_2) * 1024'
+ size: '(get_input : vson_dcl_volume_size_2) * 1024'
name:
str_replace:
- template: VNF_NAME_cll_volume_2
+ template: VNF_NAME_dcl_volume_2
params:
VNF_NAME:
get_input: vnf_name
- description: Cinder volume for the third vSON Cluster leader.
- vson_cll_volume_0:
+ description: Cinder volume for the third vSON DC leader.
+ vson_dcl_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
availability_zone:
@@ -1177,15 +1315,15 @@ topology_template:
get_input: vnf_name
vf_module_name:
get_input: vf_module_name
- size: '(get_input : vson_cll_volume_size_0) * 1024'
+ size: '(get_input : vson_dcl_volume_size_0) * 1024'
name:
str_replace:
- template: VNF_NAME_cll_volume_0
+ template: VNF_NAME_dcl_volume_0
params:
VNF_NAME:
get_input: vnf_name
- description: Cinder volume for the first vSON Cluster leader.
- vson_cll_volume_1:
+ description: Cinder volume for the first vSON DC leader.
+ vson_dcl_volume_1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
availability_zone:
@@ -1195,62 +1333,152 @@ topology_template:
get_input: vnf_name
vf_module_name:
get_input: vf_module_name
- size: '(get_input : vson_cll_volume_size_1) * 1024'
+ size: '(get_input : vson_dcl_volume_size_1) * 1024'
name:
str_replace:
- template: VNF_NAME_cll_volume_1
+ template: VNF_NAME_dcl_volume_1
params:
VNF_NAME:
get_input: vnf_name
- description: Cinder volume for the second vSON Cluster leader.
- vson_dbs_volume_1:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
- properties:
- availability_zone:
- get_input: availability_zone_1
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dbs_volume_size_1) * 1024'
- name:
- get_input: vson_dbs_volume_name_1
- description: Cinder volume for the second vSON DBS VM instance.
- vson_dbs_volume_0:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ description: Cinder volume for the second vSON DC leader.
+ vson_mdr_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_from_vol
+ directives:
+ - substitutable
properties:
- availability_zone:
- get_input: availability_zone_0
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dbs_volume_size_0) * 1024'
- name:
- get_input: vson_dbs_volume_name_0
- description: Cinder volume for the first vSON DBS VM instance.
- vson_dcl_volume_2:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_from_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_mdr_oam_net_ip_0
+ vfc_role: mdr
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_mdr_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_mdr_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ volume_ids:
+ - get_input: vson_mdr_volume_id_0
+ ntp_servers:
+ get_input: ntp_servers
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_mdr_name_0
+ vson_dbs_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol
+ directives:
+ - substitutable
properties:
- availability_zone:
- get_input: availability_zone_0
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dcl_volume_size_2) * 1024'
- name:
- str_replace:
- template: VNF_NAME_dcl_volume_2
- params:
- VNF_NAME:
- get_input: vnf_name
- description: Cinder volume for the third vSON DC leader.
- abstract_vson_vm_0:
- type: org.openecomp.resource.abstract.nodes.heat.vson_vm
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vson_vm_image_name:
+ get_input: vson_dbs_image_name
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_dbs_oam_net_ip_0
+ - get_input: vson_dbs_oam_net_ip_1
+ vfc_role: dbs
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_dbs_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_dbs_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_1
+ volume_ids:
+ - get_input: vson_dbs_volume_id_0
+ - get_input: vson_dbs_volume_id_1
+ ntp_servers:
+ get_input: ntp_servers
+ vson_join_cluster_auth_token:
+ get_input: vson_join_cluster_auth_token
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_dbs_name_0
+ - get_input: vson_dbs_name_1
+ vson_app_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol_dual_ip_stack
directives:
- substitutable
properties:
@@ -1323,42 +1551,6 @@ topology_template:
get_input: oam_net_id
vson_vm_names:
- get_input: vson_app_name_0
- vson_dcl_volume_0:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
- properties:
- availability_zone:
- get_input: availability_zone_0
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dcl_volume_size_0) * 1024'
- name:
- str_replace:
- template: VNF_NAME_dcl_volume_0
- params:
- VNF_NAME:
- get_input: vnf_name
- description: Cinder volume for the first vSON DC leader.
- vson_dcl_volume_1:
- type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
- properties:
- availability_zone:
- get_input: availability_zone_1
- metadata:
- vnf_name:
- get_input: vnf_name
- vf_module_name:
- get_input: vf_module_name
- size: '(get_input : vson_dcl_volume_size_1) * 1024'
- name:
- str_replace:
- template: VNF_NAME_dcl_volume_1
- params:
- VNF_NAME:
- get_input: vnf_name
- description: Cinder volume for the second vSON DC leader.
oam_net_security_group:
type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
properties:
@@ -1461,47 +1653,47 @@ topology_template:
requirements:
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_3_0
+ node: vson_clm_0
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_1_0
+ node: vson_dcl_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_1_0
+ node: vson_dbs_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_1_0
+ node: vson_dbg_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_3_0
+ node: vson_clm_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_2_0
+ node: vson_mdr_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_1_0
+ node: vson_cll_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_0
+ node: vson_app_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_1_0
+ node: vson_dbc_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_2_0
+ node: vson_mon_group
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_vson_server_oam_net_port_0
- node: abstract_vson_vm_2_0
+ node: vson_mgt_group
relationship: org.openecomp.relationships.AttachesTo
vson_dbg_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
@@ -1517,6 +1709,149 @@ topology_template:
name:
get_input: vson_dbg_volume_name_0
description: vSON DB Global cinder volume.
+ vson_dbg_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vson_vm_image_name:
+ get_input: vson_dbg_image_name
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_dbg_oam_net_ip_0
+ vfc_role: dbg
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_dbg_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_dbg_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ volume_ids:
+ - get_input: vson_dbg_volume_id_0
+ ntp_servers:
+ get_input: ntp_servers
+ vson_join_cluster_auth_token:
+ get_input: vson_join_cluster_auth_token
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_dbg_name_0
+ vson_cll_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vson_vm_image_name:
+ get_input: vson_cll_image_name
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_cll_oam_net_ip_0
+ - get_input: vson_cll_oam_net_ip_1
+ - get_input: vson_cll_oam_net_ip_2
+ vfc_role: cll
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_leader_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_cll_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_1
+ - get_input: availability_zone_0
+ volume_ids:
+ - get_input: vson_cll_volume_id_0
+ - get_input: vson_cll_volume_id_1
+ - get_input: vson_cll_volume_id_2
+ ntp_servers:
+ get_input: ntp_servers
+ vson_join_cluster_auth_token: ''
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_cll_name_0
+ - get_input: vson_cll_name_1
+ - get_input: vson_cll_name_2
vson_app_volume_0:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -1531,6 +1866,146 @@ topology_template:
name:
get_input: vson_app_volume_name_0
description: vSON APP cinder volume.
+ vson_mon_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_from_vol
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_from_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_mon_oam_net_ip_0
+ vfc_role: mon
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_mon_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_mon_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ volume_ids:
+ - get_input: vson_mon_volume_id_0
+ ntp_servers:
+ get_input: ntp_servers
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_mon_name_0
+ vson_dcl_group:
+ type: org.openecomp.resource.abstract.nodes.heat.nested_vson_server_with_vol
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ default_gateway:
+ get_input: default_gateway
+ port_vson_server_oam_net_port_0_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ instance_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vnf_name:
+ get_input: vnf_name
+ oam_net_subnet_prefix_length:
+ get_input: oam_net_subnet_prefix_length
+ vf_module_name:
+ get_input: vf_module_name
+ dns_servers:
+ get_input: dns_servers
+ oam_net_security_group_id:
+ get_input: oam_net_security_group_id
+ service_template_filter:
+ substitute_service_template: nested_vson_server_with_volServiceTemplate.yaml
+ count:
+ get_input: number_of_servers
+ mandatory: false
+ vson_vm_image_name:
+ get_input: vson_dcl_image_name
+ vnf_id:
+ get_input: vnf_id
+ vson_clm_oam_net_ip:
+ get_input: vson_clm_0_oam_net_ip_0
+ port_vson_server_oam_net_port_0_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vson_dc_unit:
+ get_input: vson_dc_unit
+ oam_net_ips:
+ - get_input: vson_dcl_oam_net_ip_0
+ - get_input: vson_dcl_oam_net_ip_1
+ - get_input: vson_dcl_oam_net_ip_2
+ vfc_role: dcl
+ swift_account_auth_token:
+ get_input: swift_account_auth_token
+ vson_server_group_id:
+ get_input: vson_leader_server_group_id
+ vson_vm_flavor_name:
+ get_input: vson_dcl_flavor_name
+ port_vson_server_oam_net_port_0_network_role_tag: oam
+ availability_zones:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_1
+ - get_input: availability_zone_0
+ volume_ids:
+ - get_input: vson_dcl_volume_id_0
+ - get_input: vson_dcl_volume_id_1
+ - get_input: vson_dcl_volume_id_2
+ ntp_servers:
+ get_input: ntp_servers
+ vson_join_cluster_auth_token:
+ get_input: vson_join_cluster_auth_token
+ oam_net_id:
+ get_input: oam_net_id
+ vson_vm_names:
+ - get_input: vson_dcl_name_0
+ - get_input: vson_dcl_name_1
+ - get_input: vson_dcl_name_2
groups:
module_5_vson_dbg_volume_group:
type: org.openecomp.groups.heat.HeatStack
@@ -1546,7 +2021,7 @@ topology_template:
heat_file: ../Artifacts/module_7_vson_app.yaml
description: The template deploys vSON VFC of type APP.
members:
- - abstract_vson_vm_0
+ - vson_app_group
module_2_vson_mdr_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1562,7 +2037,7 @@ topology_template:
description: |
The template deploys three instances of vSON Cluster leaders, instantiates cluster and the first Datacenter.
members:
- - abstract_vson_vm_1_0
+ - vson_cll_group
module_6_vson_dbs_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1583,7 +2058,7 @@ topology_template:
heat_file: ../Artifacts/module_0_vson_mgt.yaml
description: The template deploys vSON VFC of type MGT.
members:
- - abstract_vson_vm_2_0
+ - vson_mgt_group
module_1_vson_mon_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1598,7 +2073,7 @@ topology_template:
heat_file: ../Artifacts/module_2_vson_mdr.yaml
description: The template deploys vSON VFC of type Mediator (MDR).
members:
- - abstract_vson_vm_2_0
+ - vson_mdr_group
module_0_vson_mgt_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1631,7 +2106,7 @@ topology_template:
heat_file: ../Artifacts/module_4_vson_dbc.yaml
description: The template deploys vSON VFC of type Database Config (DBC).
members:
- - abstract_vson_vm_1_0
+ - vson_dbc_group
module_3_vson_cll_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1648,14 +2123,14 @@ topology_template:
heat_file: ../Artifacts/module_8_vson_dcl.yaml
description: The template deploys vSON Datacenter.
members:
- - abstract_vson_vm_1_0
+ - vson_dcl_group
module_9_vson_clm_group:
type: org.openecomp.groups.heat.HeatStack
properties:
heat_file: ../Artifacts/module_9_vson_clm.yaml
description: The template deploys vSON VFC of type CLM.
members:
- - abstract_vson_vm_3_0
+ - vson_clm_group
module_4_vson_dbc_volume_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1672,7 +2147,7 @@ topology_template:
Creates essential resources: vSON internal network, Security Groups and vSON Cluster Manager instance. Deploys and configure appropriate software on the Cluster Management server. Exposes shared resource as outputs that could be used by add-on templates.
members:
- oam_net_security_group
- - abstract_vson_vm_3_0
+ - vson_clm_0
module_6_vson_dbs_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -1680,21 +2155,21 @@ topology_template:
description: "The template deploys vSON VFC of type Database Shard (DBS) VM\
\ instances: Primary and Secondary. \n"
members:
- - abstract_vson_vm_1_0
+ - vson_dbs_group
module_5_vson_dbg_group:
type: org.openecomp.groups.heat.HeatStack
properties:
heat_file: ../Artifacts/module_5_vson_dbg.yaml
description: The template deploys vSON VFC of type Database Global (DBG).
members:
- - abstract_vson_vm_1_0
+ - vson_dbg_group
module_1_vson_mon_group:
type: org.openecomp.groups.heat.HeatStack
properties:
heat_file: ../Artifacts/module_1_vson_mon.yaml
description: The template deploys vSON VFC of type MON.
members:
- - abstract_vson_vm_2_0
+ - vson_mon_group
outputs:
vson_dbg_volume_id_0:
description: vSON DB Global volume ID.
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_serverServiceTemplate.yaml
index f4845f41a3..7001ebd0c1 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_serverServiceTemplate.yaml
@@ -279,7 +279,7 @@ topology_template:
- vson_server
- vson_server_oam_net_port_0
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_3
+ node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_4
capabilities:
disk.write.bytes_vson_server:
- vson_server
@@ -449,4 +449,4 @@ topology_template:
- dependency
local_storage_vson_server:
- vson_server
- - local_storage
+ - local_storage \ 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/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_from_volServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_from_volServiceTemplate.yaml
index 4273bf1169..76b31290e4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_from_volServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_from_volServiceTemplate.yaml
@@ -266,7 +266,7 @@ topology_template:
- vson_server
- vson_server_oam_net_port_0
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_3
+ node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_2
capabilities:
disk.write.bytes_vson_server:
- vson_server
@@ -436,4 +436,4 @@ topology_template:
- dependency
local_storage_vson_server:
- vson_server
- - local_storage
+ - local_storage \ 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/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_with_volServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_with_volServiceTemplate.yaml
index eda87f5d01..eb5f2b27bd 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_with_volServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/nested_vson_server_with_volServiceTemplate.yaml
@@ -281,7 +281,7 @@ topology_template:
- vson_server
- vson_server_oam_net_port_0
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_3
+ node_type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
capabilities:
disk.write.bytes_vson_server:
- vson_server
@@ -451,4 +451,4 @@ topology_template:
- dependency
local_storage_vson_server:
- vson_server
- - local_storage
+ - local_storage \ 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/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml
index fc289a6ac5..535f2ea84e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -284,6 +284,1671 @@ node_types:
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.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:
@@ -2020,6 +3685,571 @@ node_types:
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:
@@ -4223,466 +6453,3 @@ node_types:
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.abstract.nodes.heat.nested4:
- 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
- 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_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 \ 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/nestedMultiLevels/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/MainServiceTemplate.yaml
index 2d367f7555..7b42e35fa2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/MainServiceTemplate.yaml
@@ -276,4 +276,4 @@ topology_template:
- test_resourceGroup
- jsa_security_group1
- jsa_security_group2
- - abstract_jsa \ No newline at end of file
+ - abstract_jsa
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmauiServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmauiServiceTemplate.yaml
new file mode 100644
index 0000000000..b728a8ad1e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmauiServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_6_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_6_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_5_order:
+ type: integer
+ required: true
+ port_cmaui_port_5_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui_port_6_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_6_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_6_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_6_order:
+ type: integer
+ required: true
+ port_cmaui_port_5_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_5_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_6_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_5_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_6_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_5_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_5_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_6_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_5_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_cmaui_port_5_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_5_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_6_network_role:
+ type: string
+ required: true
+ port_cmaui_port_5_network_role:
+ type: string
+ required: true
+ port_cmaui_port_6_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_5_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_6_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ cmaui_cmaui_port_5:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_5_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_5_mac_requirements
+ order:
+ get_input: port_cmaui_port_5_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_5_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_5_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_5_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_5_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_5_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_5_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_5_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_5_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_5_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_cmaui_port_6:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_6_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_6_mac_requirements
+ order:
+ get_input: port_cmaui_port_6_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_6_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_6_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_6_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_6_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_6_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_6_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_6_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_6_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_6_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ network.incoming.bytes_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.incoming.bytes
+ host_cmaui:
+ - cmaui
+ - host
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ network.incoming.bytes_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.incoming.bytes
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ feature_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - feature
+ binding_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - binding
+ feature_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - feature
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ binding_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - binding
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ attachment_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - attachment
+ network.incoming.packets_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.incoming.packets
+ network.incoming.packets_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.incoming.packets
+ attachment_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - attachment
+ network.incoming.packets.rate_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.incoming.packets.rate
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ network.incoming.packets.rate_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.incoming.packets.rate
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ network.outgoing.packets.rate_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.outgoing.packets.rate
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ network.incoming.bytes.rate_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.incoming.bytes.rate
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.incoming.bytes.rate_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.incoming.bytes.rate
+ network.outpoing.packets_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.outpoing.packets
+ network.outgoing.bytes.rate_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.outgoing.bytes.rate
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ feature_cmaui:
+ - cmaui
+ - feature
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ network.outgoing.bytes_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - network.outgoing.bytes
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ network.outgoing.bytes_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - network.outgoing.bytes
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ dependency_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - dependency
+ dependency_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - dependency
+ link_cmaui_cmaui_port_6:
+ - cmaui_cmaui_port_6
+ - link
+ link_cmaui_cmaui_port_5:
+ - cmaui_cmaui_port_5
+ - link
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_1ServiceTemplate.yaml
new file mode 100644
index 0000000000..7092c79c36
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_1ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_1
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_3_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_3_order:
+ type: integer
+ required: true
+ port_cmaui_port_3_subnetpoolid:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_4_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_4_subnetpoolid:
+ type: string
+ required: true
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_4_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_3_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_3_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_3_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_4_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_4_order:
+ type: integer
+ required: true
+ port_cmaui_port_3_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_4_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_3_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_3_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_4_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_4_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_3_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_4_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_4_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_3_network_role:
+ type: string
+ required: true
+ port_cmaui_port_4_network_role:
+ type: string
+ required: true
+ port_cmaui_port_3_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_cmaui_port_4_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ node_templates:
+ cmaui_cmaui_port_4:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_4_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_4_mac_requirements
+ order:
+ get_input: port_cmaui_port_4_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_4_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_4_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_4_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_4_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_4_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_4_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_4_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_4_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_4_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_cmaui_port_3:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_3_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_3_mac_requirements
+ order:
+ get_input: port_cmaui_port_3_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_3_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_3_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_3_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_3_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_3_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_3_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_3_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_3_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_3_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_1
+ capabilities:
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ network.incoming.bytes_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.incoming.bytes
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ network.incoming.bytes_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.incoming.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ binding_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - binding
+ feature_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - feature
+ feature_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - feature
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ binding_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - binding
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ attachment_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - attachment
+ network.incoming.packets_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.incoming.packets
+ network.incoming.packets_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.incoming.packets
+ attachment_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - attachment
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ network.incoming.packets.rate_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.incoming.packets.rate
+ network.incoming.packets.rate_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.incoming.packets.rate
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ network.outgoing.packets.rate_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.outgoing.packets.rate
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ network.incoming.bytes.rate_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.incoming.bytes.rate
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ network.incoming.bytes.rate_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.incoming.bytes.rate
+ network.outgoing.packets.rate_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.outgoing.packets.rate
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.outpoing.packets_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.outpoing.packets
+ network.outgoing.bytes.rate_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.outgoing.bytes.rate
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ network.outgoing.bytes.rate_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.outgoing.bytes.rate
+ feature_cmaui:
+ - cmaui
+ - feature
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ network.outgoing.bytes_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - network.outgoing.bytes
+ network.outgoing.bytes_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - network.outgoing.bytes
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ dependency_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - dependency
+ dependency_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - dependency
+ link_cmaui_cmaui_port_4:
+ - cmaui_cmaui_port_4
+ - link
+ link_cmaui_cmaui_port_3:
+ - cmaui_cmaui_port_3
+ - link
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_2ServiceTemplate.yaml
new file mode 100644
index 0000000000..d21b9f051b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_cmaui_2ServiceTemplate.yaml
@@ -0,0 +1,435 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_cmaui_2
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.cmaui:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ port_cmaui_port_1_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_2_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui_port_1_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui_port_1_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_cmaui_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_2_network_role:
+ type: string
+ required: true
+ port_cmaui_port_1_order:
+ type: integer
+ required: true
+ compute_cmaui_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_1_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_1_network_role:
+ type: string
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_cmaui_port_2_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_2_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_2_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_cmaui_port_1_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_2_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_1_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_1_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_2_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_2_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_2_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_cmaui_port_2_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_cmaui_port_2_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_2_order:
+ type: integer
+ required: true
+ port_cmaui_port_1_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ cmaui_cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_1_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_1_mac_requirements
+ order:
+ get_input: port_cmaui_port_1_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_1_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_1_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_1_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_1_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_1_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_1_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_1_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_1_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_1_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_cmaui_port_2_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_cmaui_port_2_mac_requirements
+ order:
+ get_input: port_cmaui_port_2_order
+ security_groups:
+ get_input:
+ - port_cmaui_port_2_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_cmaui_port_2_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_2_vlan_requirements
+ ip_requirements:
+ get_input: port_cmaui_port_2_ip_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_2_network_role_tag
+ network_role:
+ get_input: port_cmaui_port_2_network_role
+ fixed_ips:
+ get_input: port_cmaui_port_2_fixed_ips
+ subnetpoolid:
+ get_input: port_cmaui_port_2_subnetpoolid
+ network:
+ get_input:
+ - port_cmaui_port_2_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui:
+ type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ properties:
+ availability_zone:
+ get_input:
+ - compute_cmaui_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_cmaui_name
+ - index_value
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.cmaui_2
+ capabilities:
+ network.incoming.bytes_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.incoming.bytes
+ disk.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.read.bytes.rate
+ disk.ephemeral.size_cmaui:
+ - cmaui
+ - disk.ephemeral.size
+ disk.device.write.bytes_cmaui:
+ - cmaui
+ - disk.device.write.bytes
+ disk.device.iops_cmaui:
+ - cmaui
+ - disk.device.iops
+ memory.resident_cmaui:
+ - cmaui
+ - memory.resident
+ disk.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.write.bytes.rate
+ host_cmaui:
+ - cmaui
+ - host
+ disk.device.allocation_cmaui:
+ - cmaui
+ - disk.device.allocation
+ network.incoming.bytes_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.incoming.bytes
+ disk.read.bytes_cmaui:
+ - cmaui
+ - disk.read.bytes
+ disk.write.requests_cmaui:
+ - cmaui
+ - disk.write.requests
+ feature_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - feature
+ binding_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - binding
+ scalable_cmaui:
+ - cmaui
+ - scalable
+ feature_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - feature
+ binding_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - binding
+ disk.device.write.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.write.bytes.rate
+ cpu.delta_cmaui:
+ - cmaui
+ - cpu.delta
+ disk.root.size_cmaui:
+ - cmaui
+ - disk.root.size
+ network.incoming.packets_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.incoming.packets
+ memory.usage_cmaui:
+ - cmaui
+ - memory.usage
+ os_cmaui:
+ - cmaui
+ - os
+ attachment_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - attachment
+ disk.device.read.bytes.rate_cmaui:
+ - cmaui
+ - disk.device.read.bytes.rate
+ network.incoming.packets.rate_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.incoming.packets.rate
+ attachment_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - attachment
+ network.incoming.packets_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.incoming.packets
+ network.incoming.packets.rate_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.incoming.packets.rate
+ disk.device.usage_cmaui:
+ - cmaui
+ - disk.device.usage
+ disk.iops_cmaui:
+ - cmaui
+ - disk.iops
+ disk.device.latency_cmaui:
+ - cmaui
+ - disk.device.latency
+ disk.device.read.requests_cmaui:
+ - cmaui
+ - disk.device.read.requests
+ disk.capacity_cmaui:
+ - cmaui
+ - disk.capacity
+ cpu_cmaui:
+ - cmaui
+ - cpu
+ disk.read.requests_cmaui:
+ - cmaui
+ - disk.read.requests
+ disk.device.read.bytes_cmaui:
+ - cmaui
+ - disk.device.read.bytes
+ network.incoming.bytes.rate_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.incoming.bytes.rate
+ disk.device.write.requests_cmaui:
+ - cmaui
+ - disk.device.write.requests
+ network.outgoing.packets.rate_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.outgoing.packets.rate
+ network.incoming.bytes.rate_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.incoming.bytes.rate
+ network.outpoing.packets_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.outpoing.packets
+ network.outpoing.packets_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.outpoing.packets
+ vcpus_cmaui:
+ - cmaui
+ - vcpus
+ network.outgoing.bytes.rate_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.outgoing.bytes.rate
+ network.outgoing.bytes.rate_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.outgoing.bytes.rate
+ feature_cmaui:
+ - cmaui
+ - feature
+ binding_cmaui:
+ - cmaui
+ - binding
+ endpoint_cmaui:
+ - cmaui
+ - endpoint
+ disk.device.capacity_cmaui:
+ - cmaui
+ - disk.device.capacity
+ disk.device.read.requests.rate_cmaui:
+ - cmaui
+ - disk.device.read.requests.rate
+ memory_cmaui:
+ - cmaui
+ - memory
+ disk.write.requests.rate_cmaui:
+ - cmaui
+ - disk.write.requests.rate
+ disk.usage_cmaui:
+ - cmaui
+ - disk.usage
+ network.outgoing.bytes_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - network.outgoing.bytes
+ network.outgoing.bytes_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - network.outgoing.bytes
+ disk.latency_cmaui:
+ - cmaui
+ - disk.latency
+ instance_cmaui:
+ - cmaui
+ - instance
+ disk.allocation_cmaui:
+ - cmaui
+ - disk.allocation
+ disk.write.bytes_cmaui:
+ - cmaui
+ - disk.write.bytes
+ cpu_util_cmaui:
+ - cmaui
+ - cpu_util
+ disk.device.write.requests.rate_cmaui:
+ - cmaui
+ - disk.device.write.requests.rate
+ requirements:
+ dependency_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - dependency
+ link_cmaui_cmaui_port_2:
+ - cmaui_cmaui_port_2
+ - link
+ link_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - link
+ dependency_cmaui:
+ - cmaui
+ - dependency
+ local_storage_cmaui:
+ - cmaui
+ - local_storage
+ dependency_cmaui_cmaui_port_1:
+ - cmaui_cmaui_port_1
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_jsaServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_jsaServiceTemplate.yaml
index 80fe6dec9c..1f2821f79c 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_jsaServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/Nested_jsaServiceTemplate.yaml
@@ -168,4 +168,4 @@ topology_template:
- local_storage
dependency_jsa:
- jsa
- - dependency \ No newline at end of file
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested1ServiceTemplate.yaml
index 42b1a26b87..c3d230d7b3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.cmaui:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
cmaui_names:
@@ -60,46 +57,70 @@ topology_template:
immutable: false
type: string
node_templates:
- cmaui_port_2:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_cmaui_2:
+ type: org.openecomp.resource.abstract.nodes.cmaui_2
+ directives:
+ - substitutable
properties:
- replacement_policy: AUTO
- ip_requirements:
+ port_cmaui_port_1_security_groups:
+ - - get_input: p1
+ - get_input: p2
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 0
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ port_cmaui_port_1_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_2_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: p2
- fixed_ips:
+ port_cmaui_port_2_security_groups:
+ - - get_input: p2
+ port_cmaui_port_1_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui_port_1_replacement_policy:
+ - AUTO
+ port_cmaui_port_2_replacement_policy:
+ - AUTO
+ port_cmaui_port_1_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_2_fixed_ips:
- ip_address:
get_input:
- cmaui_oam_ips
- 0
- mac_requirements:
+ port_cmaui_port_2_network:
+ - get_input: net
+ port_cmaui_port_2_mac_requirements:
mac_count_required:
is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
- server_cmaui:
- type: org.openecomp.resource.vfc.nodes.heat.cmaui
- properties:
- flavor:
- get_input: cmaui_flavor
- availability_zone:
- get_input: availability_zone_0
- image:
- get_input: cmaui_image
- name:
- get_input:
- - cmaui_names
- - 0
+ port_cmaui_port_1_network:
+ - get_input: net
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_2ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
test_nested2Level:
type: org.openecomp.resource.abstract.nodes.heat.nested2
directives:
@@ -111,34 +132,6 @@ topology_template:
substitute_service_template: nested2ServiceTemplate.yaml
p2:
get_input: p2
- cmaui_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- replacement_policy: AUTO
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: p1
- - get_input: p2
- fixed_ips:
- - ip_address:
- get_input:
- - cmaui_oam_ips
- - 0
- mac_requirements:
- mac_count_required:
- is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
groups:
nested1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -146,10 +139,8 @@ topology_template:
heat_file: ../Artifacts/nested1.yml
description: nested1
members:
- - cmaui_port_2
- - server_cmaui
- test_nested2Level
- - cmaui_port_1
+ - abstract_cmaui_2
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.heat.nested1
capabilities:
@@ -157,11 +148,11 @@ topology_template:
- test_nested2Level
- os_server_cmaui
disk.device.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.requests.rate
+ - abstract_cmaui_2
+ - disk.device.write.requests.rate_cmaui
disk.device.allocation_server_cmaui:
- - server_cmaui
- - disk.device.allocation
+ - abstract_cmaui_2
+ - disk.device.allocation_cmaui
disk.device.allocation_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.allocation_server_cmaui_test_nested3Level
@@ -178,8 +169,8 @@ topology_template:
- test_nested2Level
- disk.device.usage_server_cmaui_test_nested3Level
host_server_cmaui:
- - server_cmaui
- - host
+ - abstract_cmaui_2
+ - host_cmaui
disk.device.latency_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.latency_server_cmaui_test_nested4Level_test_nested3Level
@@ -190,14 +181,14 @@ topology_template:
- test_nested2Level
- feature_server_cmaui
network.outgoing.bytes_cmaui_port_2:
- - cmaui_port_2
- - network.outgoing.bytes
+ - abstract_cmaui_2
+ - network.outgoing.bytes_cmaui_cmaui_port_2
endpoint_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- endpoint_server_cmaui_test_nested3Level
network.outgoing.bytes_cmaui_port_1:
- - cmaui_port_1
- - network.outgoing.bytes
+ - abstract_cmaui_2
+ - network.outgoing.bytes_cmaui_cmaui_port_1
binding_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- binding_cmaui_port_5_test_nested3Level
@@ -229,8 +220,8 @@ topology_template:
- test_nested2Level
- disk.usage_server_cmaui_test_nested4Level_test_nested3Level
instance_server_cmaui:
- - server_cmaui
- - instance
+ - abstract_cmaui_2
+ - instance_cmaui
cpu.delta_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- cpu.delta_server_cmaui_test_nested3Level
@@ -256,8 +247,8 @@ topology_template:
- test_nested2Level
- network.incoming.packets.rate_cmaui_port_5_test_nested3Level
os_server_cmaui:
- - server_cmaui
- - os
+ - abstract_cmaui_2
+ - os_cmaui
memory.resident_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- memory.resident_server_cmaui_test_nested3Level
@@ -310,14 +301,14 @@ topology_template:
- test_nested2Level
- disk.latency_server_cmaui_test_nested4Level_test_nested3Level
feature_server_cmaui:
- - server_cmaui
- - feature
+ - abstract_cmaui_2
+ - feature_cmaui
binding_cmaui_port_1:
- - cmaui_port_1
- - binding
+ - abstract_cmaui_2
+ - binding_cmaui_cmaui_port_1
binding_cmaui_port_2:
- - cmaui_port_2
- - binding
+ - abstract_cmaui_2
+ - binding_cmaui_cmaui_port_2
binding_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- binding_server_cmaui_test_nested3Level
@@ -325,11 +316,11 @@ topology_template:
- test_nested2Level
- feature
memory.usage_server_cmaui:
- - server_cmaui
- - memory.usage
+ - abstract_cmaui_2
+ - memory.usage_cmaui
disk.ephemeral.size_server_cmaui:
- - server_cmaui
- - disk.ephemeral.size
+ - abstract_cmaui_2
+ - disk.ephemeral.size_cmaui
os_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- os_server_cmaui_test_nested3Level
@@ -346,20 +337,20 @@ topology_template:
- test_nested2Level
- disk.device.read.requests_server_cmaui_test_nested4Level_test_nested3Level
disk.device.iops_server_cmaui:
- - server_cmaui
- - disk.device.iops
+ - abstract_cmaui_2
+ - disk.device.iops_cmaui
network.incoming.bytes.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.incoming.bytes.rate_cmaui_port_5_test_nested3Level
network.incoming.bytes_cmaui_port_2:
- - cmaui_port_2
- - network.incoming.bytes
+ - abstract_cmaui_2
+ - network.incoming.bytes_cmaui_cmaui_port_2
disk.device.iops_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.iops_server_cmaui_test_nested4Level_test_nested3Level
network.incoming.bytes_cmaui_port_1:
- - cmaui_port_1
- - network.incoming.bytes
+ - abstract_cmaui_2
+ - network.incoming.bytes_cmaui_cmaui_port_1
network.incoming.bytes_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.incoming.bytes_cmaui_port_5_test_nested3Level
@@ -370,26 +361,26 @@ topology_template:
- test_nested2Level
- disk.device.read.requests_server_cmaui
network.incoming.packets.rate_cmaui_port_1:
- - cmaui_port_1
- - network.incoming.packets.rate
+ - abstract_cmaui_2
+ - network.incoming.packets.rate_cmaui_cmaui_port_1
network.incoming.packets.rate_cmaui_port_2:
- - cmaui_port_2
- - network.incoming.packets.rate
+ - abstract_cmaui_2
+ - network.incoming.packets.rate_cmaui_cmaui_port_2
cpu_server_cmaui:
- - server_cmaui
- - cpu
+ - abstract_cmaui_2
+ - cpu_cmaui
network.incoming.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.incoming.bytes.rate_cmaui_port_8_test_nested4Level_test_nested3Level
feature_cmaui_port_1:
- - cmaui_port_1
- - feature
+ - abstract_cmaui_2
+ - feature_cmaui_cmaui_port_1
feature_cmaui_port_2:
- - cmaui_port_2
- - feature
+ - abstract_cmaui_2
+ - feature_cmaui_cmaui_port_2
disk.device.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes.rate
+ - abstract_cmaui_2
+ - disk.device.read.bytes.rate_cmaui
disk.device.read.requests.rate_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.device.read.requests.rate_server_cmaui
@@ -397,23 +388,23 @@ topology_template:
- test_nested2Level
- disk.device.latency_server_cmaui
disk.device.latency_server_cmaui:
- - server_cmaui
- - disk.device.latency
+ - abstract_cmaui_2
+ - disk.device.latency_cmaui
disk.read.requests_server_cmaui:
- - server_cmaui
- - disk.read.requests
+ - abstract_cmaui_2
+ - disk.read.requests_cmaui
disk.usage_server_cmaui:
- - server_cmaui
- - disk.usage
+ - abstract_cmaui_2
+ - disk.usage_cmaui
disk.device.usage_server_cmaui:
- - server_cmaui
- - disk.device.usage
+ - abstract_cmaui_2
+ - disk.device.usage_cmaui
disk.capacity_server_cmaui:
- - server_cmaui
- - disk.capacity
+ - abstract_cmaui_2
+ - disk.capacity_cmaui
disk.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.write.requests.rate
+ - abstract_cmaui_2
+ - disk.write.requests.rate_cmaui
network.incoming.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.incoming.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level
@@ -424,8 +415,8 @@ topology_template:
- test_nested2Level
- network.outpoing.packets_cmaui_port_8_test_nested4Level_test_nested3Level
disk.device.read.requests_server_cmaui:
- - server_cmaui
- - disk.device.read.requests
+ - abstract_cmaui_2
+ - disk.device.read.requests_cmaui
disk.iops_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.iops_server_cmaui_test_nested4Level_test_nested3Level
@@ -439,14 +430,14 @@ topology_template:
- test_nested2Level
- disk.write.requests.rate_server_cmaui
binding_server_cmaui:
- - server_cmaui
- - binding
+ - abstract_cmaui_2
+ - binding_cmaui
network.outgoing.packets.rate_cmaui_port_4_test_nested2Level:
- test_nested2Level
- network.outgoing.packets.rate_cmaui_port_4
disk.device.read.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.requests.rate
+ - abstract_cmaui_2
+ - disk.device.read.requests.rate_cmaui
vcpus_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- vcpus_server_cmaui_test_nested3Level
@@ -460,8 +451,8 @@ topology_template:
- test_nested2Level
- disk.device.capacity_server_cmaui_test_nested3Level
disk.write.bytes_server_cmaui:
- - server_cmaui
- - disk.write.bytes
+ - abstract_cmaui_2
+ - disk.write.bytes_cmaui
endpoint_server_cmaui_test_nested2Level:
- test_nested2Level
- endpoint_server_cmaui
@@ -505,11 +496,11 @@ topology_template:
- test_nested2Level
- binding_server_cmaui_test_nested4Level_test_nested3Level
vcpus_server_cmaui:
- - server_cmaui
- - vcpus
+ - abstract_cmaui_2
+ - vcpus_cmaui
disk.device.write.bytes_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes
+ - abstract_cmaui_2
+ - disk.device.write.bytes_cmaui
disk.read.bytes_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.read.bytes_server_cmaui_test_nested3Level
@@ -520,17 +511,17 @@ topology_template:
- test_nested2Level
- memory_server_cmaui
disk.allocation_server_cmaui:
- - server_cmaui
- - disk.allocation
+ - abstract_cmaui_2
+ - disk.allocation_cmaui
disk.device.write.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.write.requests_server_cmaui_test_nested4Level_test_nested3Level
network.outpoing.packets_cmaui_port_1:
- - cmaui_port_1
- - network.outpoing.packets
+ - abstract_cmaui_2
+ - network.outpoing.packets_cmaui_cmaui_port_1
network.outpoing.packets_cmaui_port_2:
- - cmaui_port_2
- - network.outpoing.packets
+ - abstract_cmaui_2
+ - network.outpoing.packets_cmaui_cmaui_port_2
attachment_cmaui_port_7_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- attachment_cmaui_port_7_test_nested4Level_test_nested3Level
@@ -559,8 +550,8 @@ topology_template:
- test_nested2Level
- memory.usage_server_cmaui_test_nested4Level_test_nested3Level
cpu.delta_server_cmaui:
- - server_cmaui
- - cpu.delta
+ - abstract_cmaui_2
+ - cpu.delta_cmaui
feature_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- feature_cmaui_port_5_test_nested3Level
@@ -574,11 +565,11 @@ topology_template:
- test_nested2Level
- disk.write.requests_server_cmaui
scalable_server_cmaui:
- - server_cmaui
- - scalable
+ - abstract_cmaui_2
+ - scalable_cmaui
disk.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.read.bytes.rate
+ - abstract_cmaui_2
+ - disk.read.bytes.rate_cmaui
disk.device.usage_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.usage_server_cmaui_test_nested4Level_test_nested3Level
@@ -601,11 +592,11 @@ topology_template:
- test_nested2Level
- disk.usage_server_cmaui_test_nested3Level
cpu_util_server_cmaui:
- - server_cmaui
- - cpu_util
+ - abstract_cmaui_2
+ - cpu_util_cmaui
disk.device.write.requests_server_cmaui:
- - server_cmaui
- - disk.device.write.requests
+ - abstract_cmaui_2
+ - disk.device.write.requests_cmaui
disk.write.requests.rate_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.write.requests.rate_server_cmaui_test_nested3Level
@@ -625,8 +616,8 @@ topology_template:
- test_nested2Level
- disk.read.requests_server_cmaui_test_nested3Level
disk.device.read.bytes_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes
+ - abstract_cmaui_2
+ - disk.device.read.bytes_cmaui
network.incoming.packets_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.incoming.packets_cmaui_port_5_test_nested3Level
@@ -634,8 +625,8 @@ topology_template:
- test_nested2Level
- cpu_util_server_cmaui_test_nested3Level
disk.root.size_server_cmaui:
- - server_cmaui
- - disk.root.size
+ - abstract_cmaui_2
+ - disk.root.size_cmaui
disk.latency_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.latency_server_cmaui_test_nested3Level
@@ -652,11 +643,11 @@ topology_template:
- test_nested2Level
- disk.device.write.requests.rate_server_cmaui
network.incoming.packets_cmaui_port_2:
- - cmaui_port_2
- - network.incoming.packets
+ - abstract_cmaui_2
+ - network.incoming.packets_cmaui_cmaui_port_2
disk.device.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes.rate
+ - abstract_cmaui_2
+ - disk.device.write.bytes.rate_cmaui
disk.device.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.device.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level
@@ -664,8 +655,8 @@ topology_template:
- test_nested2Level
- network.outgoing.packets.rate_cmaui_port_6_test_nested3Level
network.incoming.packets_cmaui_port_1:
- - cmaui_port_1
- - network.incoming.packets
+ - abstract_cmaui_2
+ - network.incoming.packets_cmaui_cmaui_port_1
disk.device.read.bytes_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.device.read.bytes_server_cmaui
@@ -724,14 +715,14 @@ topology_template:
- test_nested2Level
- disk.device.write.bytes.rate_server_cmaui_test_nested3Level
network.outgoing.bytes.rate_cmaui_port_2:
- - cmaui_port_2
- - network.outgoing.bytes.rate
+ - abstract_cmaui_2
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_2
disk.iops_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.iops_server_cmaui
network.outgoing.bytes.rate_cmaui_port_1:
- - cmaui_port_1
- - network.outgoing.bytes.rate
+ - abstract_cmaui_2
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_1
attachment_cmaui_port_4_test_nested2Level:
- test_nested2Level
- attachment_cmaui_port_4
@@ -739,8 +730,8 @@ topology_template:
- test_nested2Level
- memory.usage_server_cmaui
disk.iops_server_cmaui:
- - server_cmaui
- - disk.iops
+ - abstract_cmaui_2
+ - disk.iops_cmaui
network.outgoing.packets.rate_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- network.outgoing.packets.rate_cmaui_port_5_test_nested3Level
@@ -748,8 +739,8 @@ topology_template:
- test_nested2Level
- network.outgoing.bytes.rate_cmaui_port_4
disk.read.bytes_server_cmaui:
- - server_cmaui
- - disk.read.bytes
+ - abstract_cmaui_2
+ - disk.read.bytes_cmaui
disk.read.requests_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.read.requests_server_cmaui
@@ -763,8 +754,8 @@ topology_template:
- test_nested2Level
- cpu_server_cmaui_test_nested4Level_test_nested3Level
disk.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.write.bytes.rate
+ - abstract_cmaui_2
+ - disk.write.bytes.rate_cmaui
disk.iops_server_cmaui_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.iops_server_cmaui_test_nested3Level
@@ -778,23 +769,23 @@ topology_template:
- test_nested2Level
- disk.device.read.requests.rate_server_cmaui_test_nested4Level_test_nested3Level
attachment_cmaui_port_2:
- - cmaui_port_2
- - attachment
+ - abstract_cmaui_2
+ - attachment_cmaui_cmaui_port_2
disk.device.capacity_server_cmaui:
- - server_cmaui
- - disk.device.capacity
+ - abstract_cmaui_2
+ - disk.device.capacity_cmaui
network.outgoing.packets.rate_cmaui_port_1:
- - cmaui_port_1
- - network.outgoing.packets.rate
+ - abstract_cmaui_2
+ - network.outgoing.packets.rate_cmaui_cmaui_port_1
network.outgoing.packets.rate_cmaui_port_2:
- - cmaui_port_2
- - network.outgoing.packets.rate
+ - abstract_cmaui_2
+ - network.outgoing.packets.rate_cmaui_cmaui_port_2
network.incoming.packets.rate_cmaui_port_3_test_nested2Level:
- test_nested2Level
- network.incoming.packets.rate_cmaui_port_3
attachment_cmaui_port_1:
- - cmaui_port_1
- - attachment
+ - abstract_cmaui_2
+ - attachment_cmaui_cmaui_port_1
disk.device.write.bytes_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.device.write.bytes_server_cmaui
@@ -817,8 +808,8 @@ topology_template:
- test_nested2Level
- disk.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level
memory_server_cmaui:
- - server_cmaui
- - memory
+ - abstract_cmaui_2
+ - memory_cmaui
scalable_server_cmaui_test_nested2Level:
- test_nested2Level
- scalable_server_cmaui
@@ -865,14 +856,14 @@ topology_template:
- test_nested2Level
- disk.device.write.requests_server_cmaui
memory.resident_server_cmaui:
- - server_cmaui
- - memory.resident
+ - abstract_cmaui_2
+ - memory.resident_cmaui
disk.read.bytes.rate_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.read.bytes.rate_server_cmaui
disk.latency_server_cmaui:
- - server_cmaui
- - disk.latency
+ - abstract_cmaui_2
+ - disk.latency_cmaui
disk.allocation_server_cmaui_test_nested2Level:
- test_nested2Level
- disk.allocation_server_cmaui
@@ -883,14 +874,14 @@ topology_template:
- test_nested2Level
- network.outgoing.bytes_cmaui_port_6_test_nested3Level
network.incoming.bytes.rate_cmaui_port_1:
- - cmaui_port_1
- - network.incoming.bytes.rate
+ - abstract_cmaui_2
+ - network.incoming.bytes.rate_cmaui_cmaui_port_1
network.incoming.bytes.rate_cmaui_port_2:
- - cmaui_port_2
- - network.incoming.bytes.rate
+ - abstract_cmaui_2
+ - network.incoming.bytes.rate_cmaui_cmaui_port_2
disk.write.requests_server_cmaui:
- - server_cmaui
- - disk.write.requests
+ - abstract_cmaui_2
+ - disk.write.requests_cmaui
cpu.delta_server_cmaui_test_nested2Level:
- test_nested2Level
- cpu.delta_server_cmaui
@@ -910,8 +901,8 @@ topology_template:
- test_nested2Level
- network.incoming.bytes.rate_cmaui_port_3
endpoint_server_cmaui:
- - server_cmaui
- - endpoint
+ - abstract_cmaui_2
+ - endpoint_cmaui
disk.read.requests_server_cmaui_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- disk.read.requests_server_cmaui_test_nested4Level_test_nested3Level
@@ -920,8 +911,8 @@ topology_template:
- disk.allocation_server_cmaui_test_nested3Level
requirements:
dependency_server_cmaui:
- - server_cmaui
- - dependency
+ - abstract_cmaui_2
+ - dependency_cmaui
link_cmaui_port_5_test_nested3Level_test_nested2Level:
- test_nested2Level
- link_cmaui_port_5_test_nested3Level
@@ -935,11 +926,11 @@ topology_template:
- test_nested2Level
- dependency
link_cmaui_port_2:
- - cmaui_port_2
- - link
+ - abstract_cmaui_2
+ - link_cmaui_cmaui_port_2
link_cmaui_port_1:
- - cmaui_port_1
- - link
+ - abstract_cmaui_2
+ - link_cmaui_cmaui_port_1
link_cmaui_port_8_test_nested4Level_test_nested3Level_test_nested2Level:
- test_nested2Level
- link_cmaui_port_8_test_nested4Level_test_nested3Level
@@ -953,8 +944,8 @@ topology_template:
- test_nested2Level
- dependency_cmaui_port_3
dependency_cmaui_port_1:
- - cmaui_port_1
- - dependency
+ - abstract_cmaui_2
+ - dependency_cmaui_cmaui_port_1
link_cmaui_port_6_test_nested3Level_test_nested2Level:
- test_nested2Level
- link_cmaui_port_6_test_nested3Level
@@ -962,8 +953,8 @@ topology_template:
- test_nested2Level
- dependency_server_cmaui
dependency_cmaui_port_2:
- - cmaui_port_2
- - dependency
+ - abstract_cmaui_2
+ - dependency_cmaui_cmaui_port_2
link_cmaui_port_4_test_nested2Level:
- test_nested2Level
- link_cmaui_port_4
@@ -971,8 +962,8 @@ topology_template:
- test_nested2Level
- dependency_cmaui_port_5_test_nested3Level
local_storage_server_cmaui:
- - server_cmaui
- - local_storage
+ - abstract_cmaui_2
+ - local_storage_cmaui
local_storage_server_cmaui_test_nested2Level:
- test_nested2Level
- local_storage_server_cmaui
@@ -999,4 +990,4 @@ topology_template:
- local_storage_server_cmaui_test_nested4Level_test_nested3Level
dependency_cmaui_port_4_test_nested2Level:
- test_nested2Level
- - dependency_cmaui_port_4 \ No newline at end of file
+ - dependency_cmaui_port_4
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested2ServiceTemplate.yaml
index c2319a006c..c3425ca981 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested2ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.cmaui:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
cmaui_names:
@@ -60,61 +57,6 @@ topology_template:
immutable: false
type: string
node_templates:
- cmaui_port_3:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- replacement_policy: AUTO
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: p2
- - get_input: p1
- fixed_ips:
- - ip_address:
- get_input:
- - cmaui_oam_ips
- - 0
- mac_requirements:
- mac_count_required:
- is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
- cmaui_port_4:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- replacement_policy: AUTO
- ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
- security_groups:
- - get_input: p1
- fixed_ips:
- - ip_address:
- get_input:
- - cmaui_oam_ips
- - 0
- mac_requirements:
- mac_count_required:
- is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
test_nested3Level:
type: org.openecomp.resource.abstract.nodes.heat.nested3
directives:
@@ -133,19 +75,70 @@ topology_template:
- SELF
- service_template_filter
- index_value
- server_cmaui:
- type: org.openecomp.resource.vfc.nodes.heat.cmaui
+ abstract_cmaui_1:
+ type: org.openecomp.resource.abstract.nodes.cmaui_1
+ directives:
+ - substitutable
properties:
- flavor:
+ port_cmaui_port_3_mac_requirements:
+ mac_count_required:
+ is_required: false
+ vm_flavor_name:
get_input: cmaui_flavor
- availability_zone:
- get_input: availability_zone_0
- image:
- get_input: cmaui_image
- name:
- get_input:
+ compute_cmaui_name:
+ - get_input:
- cmaui_names
- 0
+ port_cmaui_port_4_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ port_cmaui_port_4_security_groups:
+ - - get_input: p1
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_3_fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ port_cmaui_port_4_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_3_network:
+ - get_input: net
+ port_cmaui_port_3_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui_port_4_replacement_policy:
+ - AUTO
+ port_cmaui_port_3_replacement_policy:
+ - AUTO
+ port_cmaui_port_4_network:
+ - get_input: net
+ port_cmaui_port_4_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui_port_3_security_groups:
+ - - get_input: p2
+ - get_input: p1
+ service_template_filter:
+ substitute_service_template: Nested_cmaui_1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested2_group:
type: org.openecomp.groups.heat.HeatStack
@@ -153,19 +146,17 @@ topology_template:
heat_file: ../Artifacts/nested2.yml
description: nested2
members:
- - cmaui_port_3
- - cmaui_port_4
- test_nested3Level
- - server_cmaui
+ - abstract_cmaui_1
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.heat.nested2
capabilities:
cpu.delta_server_cmaui:
- - server_cmaui
- - cpu.delta
+ - abstract_cmaui_1
+ - cpu.delta_cmaui
disk.device.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.requests.rate
+ - abstract_cmaui_1
+ - disk.device.write.requests.rate_cmaui
disk.write.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.write.bytes.rate_server_cmaui_test_nested4Level
@@ -173,8 +164,8 @@ topology_template:
- test_nested3Level
- vcpus_server_cmaui
disk.device.allocation_server_cmaui:
- - server_cmaui
- - disk.device.allocation
+ - abstract_cmaui_1
+ - disk.device.allocation_cmaui
disk.latency_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.latency_server_cmaui
@@ -182,11 +173,11 @@ topology_template:
- test_nested3Level
- disk.device.capacity_server_cmaui_test_nested4Level
scalable_server_cmaui:
- - server_cmaui
- - scalable
+ - abstract_cmaui_1
+ - scalable_cmaui
disk.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.read.bytes.rate
+ - abstract_cmaui_1
+ - disk.read.bytes.rate_cmaui
memory.resident_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- memory.resident_server_cmaui_test_nested4Level
@@ -197,11 +188,11 @@ topology_template:
- test_nested3Level
- disk.capacity_server_cmaui_test_nested4Level
host_server_cmaui:
- - server_cmaui
- - host
+ - abstract_cmaui_1
+ - host_cmaui
cpu_util_server_cmaui:
- - server_cmaui
- - cpu_util
+ - abstract_cmaui_1
+ - cpu_util_cmaui
os_server_cmaui_test_nested3Level:
- test_nested3Level
- os_server_cmaui
@@ -215,11 +206,11 @@ topology_template:
- test_nested3Level
- memory.usage_server_cmaui_test_nested4Level
network.outgoing.bytes_cmaui_port_3:
- - cmaui_port_3
- - network.outgoing.bytes
+ - abstract_cmaui_1
+ - network.outgoing.bytes_cmaui_cmaui_port_3
disk.device.write.requests_server_cmaui:
- - server_cmaui
- - disk.device.write.requests
+ - abstract_cmaui_1
+ - disk.device.write.requests_cmaui
instance_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- instance_server_cmaui_test_nested4Level
@@ -248,17 +239,17 @@ topology_template:
- test_nested3Level
- memory.usage_server_cmaui
instance_server_cmaui:
- - server_cmaui
- - instance
+ - abstract_cmaui_1
+ - instance_cmaui
disk.device.read.bytes_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes
+ - abstract_cmaui_1
+ - disk.device.read.bytes_cmaui
binding_server_cmaui_test_nested3Level:
- test_nested3Level
- binding_server_cmaui
disk.root.size_server_cmaui:
- - server_cmaui
- - disk.root.size
+ - abstract_cmaui_1
+ - disk.root.size_cmaui
memory_server_cmaui_test_nested3Level:
- test_nested3Level
- memory_server_cmaui
@@ -266,17 +257,17 @@ topology_template:
- test_nested3Level
- network.outgoing.bytes.rate_cmaui_port_5
network.incoming.packets_cmaui_port_3:
- - cmaui_port_3
- - network.incoming.packets
+ - abstract_cmaui_1
+ - network.incoming.packets_cmaui_cmaui_port_3
os_server_cmaui:
- - server_cmaui
- - os
+ - abstract_cmaui_1
+ - os_cmaui
disk.device.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes.rate
+ - abstract_cmaui_1
+ - disk.device.write.bytes.rate_cmaui
network.incoming.packets_cmaui_port_4:
- - cmaui_port_4
- - network.incoming.packets
+ - abstract_cmaui_1
+ - network.incoming.packets_cmaui_cmaui_port_4
disk.device.latency_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.device.latency_server_cmaui_test_nested4Level
@@ -338,17 +329,17 @@ topology_template:
- test_nested3Level
- disk.write.requests_server_cmaui_test_nested4Level
feature_server_cmaui:
- - server_cmaui
- - feature
+ - abstract_cmaui_1
+ - feature_cmaui
binding_cmaui_port_3:
- - cmaui_port_3
- - binding
+ - abstract_cmaui_1
+ - binding_cmaui_cmaui_port_3
disk.device.read.bytes.rate_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.device.read.bytes.rate_server_cmaui
binding_cmaui_port_4:
- - cmaui_port_4
- - binding
+ - abstract_cmaui_1
+ - binding_cmaui_cmaui_port_4
disk.device.write.requests_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.device.write.requests_server_cmaui_test_nested4Level
@@ -359,8 +350,8 @@ topology_template:
- test_nested3Level
- disk.device.write.requests_server_cmaui
memory.usage_server_cmaui:
- - server_cmaui
- - memory.usage
+ - abstract_cmaui_1
+ - memory.usage_cmaui
feature_cmaui_port_6_test_nested3Level:
- test_nested3Level
- feature_cmaui_port_6
@@ -368,8 +359,8 @@ topology_template:
- test_nested3Level
- feature_cmaui_port_8_test_nested4Level
disk.ephemeral.size_server_cmaui:
- - server_cmaui
- - disk.ephemeral.size
+ - abstract_cmaui_1
+ - disk.ephemeral.size_cmaui
network.incoming.bytes.rate_cmaui_port_6_test_nested3Level:
- test_nested3Level
- network.incoming.bytes.rate_cmaui_port_6
@@ -377,35 +368,35 @@ topology_template:
- test_nested3Level
- memory_server_cmaui_test_nested4Level
network.outgoing.bytes.rate_cmaui_port_3:
- - cmaui_port_3
- - network.outgoing.bytes.rate
+ - abstract_cmaui_1
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_3
disk.device.usage_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.device.usage_server_cmaui
network.outgoing.bytes.rate_cmaui_port_4:
- - cmaui_port_4
- - network.outgoing.bytes.rate
+ - abstract_cmaui_1
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_4
binding_cmaui_port_6_test_nested3Level:
- test_nested3Level
- binding_cmaui_port_6
disk.iops_server_cmaui:
- - server_cmaui
- - disk.iops
+ - abstract_cmaui_1
+ - disk.iops_cmaui
network.incoming.bytes_cmaui_port_4:
- - cmaui_port_4
- - network.incoming.bytes
+ - abstract_cmaui_1
+ - network.incoming.bytes_cmaui_cmaui_port_4
disk.iops_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.iops_server_cmaui_test_nested4Level
network.incoming.bytes_cmaui_port_3:
- - cmaui_port_3
- - network.incoming.bytes
+ - abstract_cmaui_1
+ - network.incoming.bytes_cmaui_cmaui_port_3
disk.device.iops_server_cmaui:
- - server_cmaui
- - disk.device.iops
+ - abstract_cmaui_1
+ - disk.device.iops_cmaui
disk.read.bytes_server_cmaui:
- - server_cmaui
- - disk.read.bytes
+ - abstract_cmaui_1
+ - disk.read.bytes_cmaui
disk.root.size_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.root.size_server_cmaui
@@ -422,26 +413,26 @@ topology_template:
- test_nested3Level
- feature_cmaui_port_7_test_nested4Level
cpu_server_cmaui:
- - server_cmaui
- - cpu
+ - abstract_cmaui_1
+ - cpu_cmaui
network.incoming.packets.rate_cmaui_port_3:
- - cmaui_port_3
- - network.incoming.packets.rate
+ - abstract_cmaui_1
+ - network.incoming.packets.rate_cmaui_cmaui_port_3
feature_cmaui_port_3:
- - cmaui_port_3
- - feature
+ - abstract_cmaui_1
+ - feature_cmaui_cmaui_port_3
network.incoming.packets.rate_cmaui_port_4:
- - cmaui_port_4
- - network.incoming.packets.rate
+ - abstract_cmaui_1
+ - network.incoming.packets.rate_cmaui_cmaui_port_4
feature_cmaui_port_4:
- - cmaui_port_4
- - feature
+ - abstract_cmaui_1
+ - feature_cmaui_cmaui_port_4
attachment_cmaui_port_6_test_nested3Level:
- test_nested3Level
- attachment_cmaui_port_6
disk.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.write.bytes.rate
+ - abstract_cmaui_1
+ - disk.write.bytes.rate_cmaui
disk.device.write.bytes_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.device.write.bytes_server_cmaui_test_nested4Level
@@ -449,23 +440,23 @@ topology_template:
- test_nested3Level
- network.outgoing.packets.rate_cmaui_port_6
disk.device.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes.rate
+ - abstract_cmaui_1
+ - disk.device.read.bytes.rate_cmaui
network.outgoing.packets.rate_cmaui_port_4:
- - cmaui_port_4
- - network.outgoing.packets.rate
+ - abstract_cmaui_1
+ - network.outgoing.packets.rate_cmaui_cmaui_port_4
disk.write.requests.rate_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.write.requests.rate_server_cmaui
attachment_cmaui_port_3:
- - cmaui_port_3
- - attachment
+ - abstract_cmaui_1
+ - attachment_cmaui_cmaui_port_3
disk.write.bytes_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.write.bytes_server_cmaui_test_nested4Level
attachment_cmaui_port_4:
- - cmaui_port_4
- - attachment
+ - abstract_cmaui_1
+ - attachment_cmaui_cmaui_port_4
disk.iops_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.iops_server_cmaui
@@ -473,11 +464,11 @@ topology_template:
- test_nested3Level
- host_server_cmaui_test_nested4Level
disk.device.latency_server_cmaui:
- - server_cmaui
- - disk.device.latency
+ - abstract_cmaui_1
+ - disk.device.latency_cmaui
disk.read.requests_server_cmaui:
- - server_cmaui
- - disk.read.requests
+ - abstract_cmaui_1
+ - disk.read.requests_cmaui
disk.device.allocation_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.device.allocation_server_cmaui
@@ -485,17 +476,17 @@ topology_template:
- test_nested3Level
- disk.device.read.requests_server_cmaui_test_nested4Level
disk.device.capacity_server_cmaui:
- - server_cmaui
- - disk.device.capacity
+ - abstract_cmaui_1
+ - disk.device.capacity_cmaui
disk.usage_server_cmaui:
- - server_cmaui
- - disk.usage
+ - abstract_cmaui_1
+ - disk.usage_cmaui
network.outgoing.packets.rate_cmaui_port_3:
- - cmaui_port_3
- - network.outgoing.packets.rate
+ - abstract_cmaui_1
+ - network.outgoing.packets.rate_cmaui_cmaui_port_3
disk.device.usage_server_cmaui:
- - server_cmaui
- - disk.device.usage
+ - abstract_cmaui_1
+ - disk.device.usage_cmaui
disk.device.iops_server_cmaui_test_nested3Level:
- test_nested3Level
- disk.device.iops_server_cmaui
@@ -506,11 +497,11 @@ topology_template:
- test_nested3Level
- disk.allocation_server_cmaui_test_nested4Level
disk.capacity_server_cmaui:
- - server_cmaui
- - disk.capacity
+ - abstract_cmaui_1
+ - disk.capacity_cmaui
disk.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.write.requests.rate
+ - abstract_cmaui_1
+ - disk.write.requests.rate_cmaui
os_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- os_server_cmaui_test_nested4Level
@@ -530,14 +521,14 @@ topology_template:
- test_nested3Level
- disk.root.size_server_cmaui_test_nested4Level
disk.device.read.requests_server_cmaui:
- - server_cmaui
- - disk.device.read.requests
+ - abstract_cmaui_1
+ - disk.device.read.requests_cmaui
network.incoming.bytes_cmaui_port_6_test_nested3Level:
- test_nested3Level
- network.incoming.bytes_cmaui_port_6
memory_server_cmaui:
- - server_cmaui
- - memory
+ - abstract_cmaui_1
+ - memory_cmaui
disk.read.bytes.rate_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.read.bytes.rate_server_cmaui_test_nested4Level
@@ -548,8 +539,8 @@ topology_template:
- test_nested3Level
- network.incoming.packets.rate_cmaui_port_8_test_nested4Level
binding_server_cmaui:
- - server_cmaui
- - binding
+ - abstract_cmaui_1
+ - binding_cmaui
disk.device.usage_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- disk.device.usage_server_cmaui_test_nested4Level
@@ -563,8 +554,8 @@ topology_template:
- test_nested3Level
- attachment_cmaui_port_5
disk.device.read.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.requests.rate
+ - abstract_cmaui_1
+ - disk.device.read.requests.rate_cmaui
feature_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- feature_server_cmaui_test_nested4Level
@@ -578,8 +569,8 @@ topology_template:
- test_nested3Level
- disk.read.bytes_server_cmaui_test_nested4Level
disk.write.bytes_server_cmaui:
- - server_cmaui
- - disk.write.bytes
+ - abstract_cmaui_1
+ - disk.write.bytes_cmaui
host_server_cmaui_test_nested3Level:
- test_nested3Level
- host_server_cmaui
@@ -623,8 +614,8 @@ topology_template:
- test_nested3Level
- network.outgoing.bytes.rate_cmaui_port_7_test_nested4Level
memory.resident_server_cmaui:
- - server_cmaui
- - memory.resident
+ - abstract_cmaui_1
+ - memory.resident_cmaui
network.incoming.bytes_cmaui_port_5_test_nested3Level:
- test_nested3Level
- network.incoming.bytes_cmaui_port_5
@@ -638,23 +629,23 @@ topology_template:
- test_nested3Level
- disk.write.requests_server_cmaui
disk.latency_server_cmaui:
- - server_cmaui
- - disk.latency
+ - abstract_cmaui_1
+ - disk.latency_cmaui
network.outpoing.packets_cmaui_port_6_test_nested3Level:
- test_nested3Level
- network.outpoing.packets_cmaui_port_6
vcpus_server_cmaui:
- - server_cmaui
- - vcpus
+ - abstract_cmaui_1
+ - vcpus_cmaui
network.outgoing.bytes_cmaui_port_4:
- - cmaui_port_4
- - network.outgoing.bytes
+ - abstract_cmaui_1
+ - network.outgoing.bytes_cmaui_cmaui_port_4
network.outgoing.packets.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
- test_nested3Level
- network.outgoing.packets.rate_cmaui_port_7_test_nested4Level
disk.device.write.bytes_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes
+ - abstract_cmaui_1
+ - disk.device.write.bytes_cmaui
instance_server_cmaui_test_nested3Level:
- test_nested3Level
- instance_server_cmaui
@@ -662,11 +653,11 @@ topology_template:
- test_nested3Level
- binding_cmaui_port_5
network.incoming.bytes.rate_cmaui_port_3:
- - cmaui_port_3
- - network.incoming.bytes.rate
+ - abstract_cmaui_1
+ - network.incoming.bytes.rate_cmaui_cmaui_port_3
network.incoming.bytes.rate_cmaui_port_4:
- - cmaui_port_4
- - network.incoming.bytes.rate
+ - abstract_cmaui_1
+ - network.incoming.bytes.rate_cmaui_cmaui_port_4
network.outgoing.bytes_cmaui_port_5_test_nested3Level:
- test_nested3Level
- network.outgoing.bytes_cmaui_port_5
@@ -674,11 +665,11 @@ topology_template:
- test_nested3Level
- cpu_util_server_cmaui_test_nested4Level
disk.allocation_server_cmaui:
- - server_cmaui
- - disk.allocation
+ - abstract_cmaui_1
+ - disk.allocation_cmaui
disk.write.requests_server_cmaui:
- - server_cmaui
- - disk.write.requests
+ - abstract_cmaui_1
+ - disk.write.requests_cmaui
cpu_server_cmaui_test_nested3Level:
- test_nested3Level
- cpu_server_cmaui
@@ -689,11 +680,11 @@ topology_template:
- test_nested3Level
- disk.write.bytes_server_cmaui
network.outpoing.packets_cmaui_port_3:
- - cmaui_port_3
- - network.outpoing.packets
+ - abstract_cmaui_1
+ - network.outpoing.packets_cmaui_cmaui_port_3
network.outpoing.packets_cmaui_port_4:
- - cmaui_port_4
- - network.outpoing.packets
+ - abstract_cmaui_1
+ - network.outpoing.packets_cmaui_cmaui_port_4
network.incoming.bytes.rate_cmaui_port_7_test_nested4Level_test_nested3Level:
- test_nested3Level
- network.incoming.bytes.rate_cmaui_port_7_test_nested4Level
@@ -704,8 +695,8 @@ topology_template:
- test_nested3Level
- scalable_server_cmaui
endpoint_server_cmaui:
- - server_cmaui
- - endpoint
+ - abstract_cmaui_1
+ - endpoint_cmaui
feature_cmaui_port_5_test_nested3Level:
- test_nested3Level
- feature_cmaui_port_5
@@ -744,8 +735,8 @@ topology_template:
- test_nested3Level
- dependency_cmaui_port_6
dependency_server_cmaui:
- - server_cmaui
- - dependency
+ - abstract_cmaui_1
+ - dependency_cmaui
dependency_cmaui_port_7_test_nested4Level_test_nested3Level:
- test_nested3Level
- dependency_cmaui_port_7_test_nested4Level
@@ -756,14 +747,14 @@ topology_template:
- test_nested3Level
- dependency_test_nested4Level
link_cmaui_port_4:
- - cmaui_port_4
- - link
+ - abstract_cmaui_1
+ - link_cmaui_cmaui_port_4
link_cmaui_port_3:
- - cmaui_port_3
- - link
+ - abstract_cmaui_1
+ - link_cmaui_cmaui_port_3
local_storage_server_cmaui:
- - server_cmaui
- - local_storage
+ - abstract_cmaui_1
+ - local_storage_cmaui
dependency_server_cmaui_test_nested4Level_test_nested3Level:
- test_nested3Level
- dependency_server_cmaui_test_nested4Level
@@ -783,14 +774,14 @@ topology_template:
- test_nested3Level
- dependency_cmaui_port_8_test_nested4Level
dependency_cmaui_port_4:
- - cmaui_port_4
- - dependency
+ - abstract_cmaui_1
+ - dependency_cmaui_cmaui_port_4
dependency_cmaui_port_3:
- - cmaui_port_3
- - dependency
+ - abstract_cmaui_1
+ - dependency_cmaui_cmaui_port_3
dependency_cmaui_port_5_test_nested3Level:
- test_nested3Level
- dependency_cmaui_port_5
local_storage_server_cmaui_test_nested3Level:
- test_nested3Level
- - local_storage_server_cmaui \ No newline at end of file
+ - local_storage_server_cmaui
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 d907a4db05..da2f42610f 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
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.cmaui:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
cmaui_names:
@@ -72,75 +69,89 @@ topology_template:
get_input: p1
service_template_filter:
substitute_service_template: nested4ServiceTemplate.yaml
+ port_cmaui_port_8_mac_requirements:
+ mac_count_required:
+ is_required: false
p2:
get_input: p2
- cmaui_port_5:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- replacement_policy: AUTO
- ip_requirements:
+ port_cmaui_port_7_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_7_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui_port_8_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: p1
- fixed_ips:
+ abstract_cmaui:
+ type: org.openecomp.resource.abstract.nodes.cmaui
+ directives:
+ - substitutable
+ properties:
+ port_cmaui_port_6_fixed_ips:
- ip_address:
get_input:
- cmaui_oam_ips
- 0
- mac_requirements:
- mac_count_required:
- is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
- cmaui_port_6:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- replacement_policy: AUTO
- ip_requirements:
+ vm_flavor_name:
+ get_input: cmaui_flavor
+ compute_cmaui_name:
+ - get_input:
+ - cmaui_names
+ - 0
+ compute_cmaui_availability_zone:
+ - get_input: availability_zone_0
+ vm_image_name:
+ get_input: cmaui_image
+ port_cmaui_port_6_network:
+ - get_input: net
+ port_cmaui_port_5_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: p2
- fixed_ips:
+ port_cmaui_port_5_fixed_ips:
- ip_address:
get_input:
- cmaui_oam_ips
- 0
- mac_requirements:
+ port_cmaui_port_6_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_cmaui_port_5_network:
+ - get_input: net
+ port_cmaui_port_5_replacement_policy:
+ - AUTO
+ port_cmaui_port_6_replacement_policy:
+ - AUTO
+ port_cmaui_port_5_security_groups:
+ - - get_input: p1
+ port_cmaui_port_5_mac_requirements:
mac_count_required:
is_required: false
- network:
- get_input: net
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_cmaui
- relationship: tosca.relationships.network.BindsTo
- server_cmaui:
- type: org.openecomp.resource.vfc.nodes.heat.cmaui
- properties:
- flavor:
- get_input: cmaui_flavor
- availability_zone:
- get_input: availability_zone_0
- image:
- get_input: cmaui_image
- name:
- get_input:
- - cmaui_names
- - 0
+ port_cmaui_port_6_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_cmaui_port_6_security_groups:
+ - - get_input: p2
+ service_template_filter:
+ substitute_service_template: Nested_cmauiServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested3_group:
type: org.openecomp.groups.heat.HeatStack
@@ -149,30 +160,28 @@ topology_template:
description: nested3
members:
- test_nested4Level
- - cmaui_port_5
- - cmaui_port_6
- - server_cmaui
+ - abstract_cmaui
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.heat.nested3
capabilities:
cpu.delta_server_cmaui:
- - server_cmaui
- - cpu.delta
+ - abstract_cmaui
+ - cpu.delta_cmaui
disk.device.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.requests.rate
+ - abstract_cmaui
+ - disk.device.write.requests.rate_cmaui
disk.device.allocation_server_cmaui:
- - server_cmaui
- - disk.device.allocation
+ - abstract_cmaui
+ - disk.device.allocation_cmaui
memory_server_cmaui_test_nested4Level:
- test_nested4Level
- memory_server_cmaui
scalable_server_cmaui:
- - server_cmaui
- - scalable
+ - abstract_cmaui
+ - scalable_cmaui
disk.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.read.bytes.rate
+ - abstract_cmaui
+ - disk.read.bytes.rate_cmaui
instance_server_cmaui_test_nested4Level:
- test_nested4Level
- instance_server_cmaui
@@ -183,11 +192,11 @@ topology_template:
- test_nested4Level
- disk.write.bytes_server_cmaui
host_server_cmaui:
- - server_cmaui
- - host
+ - abstract_cmaui
+ - host_cmaui
cpu_util_server_cmaui:
- - server_cmaui
- - cpu_util
+ - abstract_cmaui
+ - cpu_util_cmaui
cpu_server_cmaui_test_nested4Level:
- test_nested4Level
- cpu_server_cmaui
@@ -198,20 +207,20 @@ topology_template:
- test_nested4Level
- disk.device.usage_server_cmaui
disk.device.write.requests_server_cmaui:
- - server_cmaui
- - disk.device.write.requests
+ - abstract_cmaui
+ - disk.device.write.requests_cmaui
network.incoming.bytes.rate_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.incoming.bytes.rate_cmaui_port_7
instance_server_cmaui:
- - server_cmaui
- - instance
+ - abstract_cmaui
+ - instance_cmaui
disk.latency_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.latency_server_cmaui
disk.device.read.bytes_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes
+ - abstract_cmaui
+ - disk.device.read.bytes_cmaui
disk.device.capacity_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.capacity_server_cmaui
@@ -219,23 +228,23 @@ topology_template:
- test_nested4Level
- network.incoming.bytes.rate_cmaui_port_8
disk.root.size_server_cmaui:
- - server_cmaui
- - disk.root.size
+ - abstract_cmaui
+ - disk.root.size_cmaui
host_server_cmaui_test_nested4Level:
- test_nested4Level
- host_server_cmaui
os_server_cmaui:
- - server_cmaui
- - os
+ - abstract_cmaui
+ - os_cmaui
disk.device.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes.rate
+ - abstract_cmaui
+ - disk.device.write.bytes.rate_cmaui
disk.device.read.requests.rate_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.read.requests.rate_server_cmaui
network.incoming.packets_cmaui_port_5:
- - cmaui_port_5
- - network.incoming.packets
+ - abstract_cmaui
+ - network.incoming.packets_cmaui_cmaui_port_5
network.incoming.packets.rate_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.incoming.packets.rate_cmaui_port_7
@@ -243,8 +252,8 @@ topology_template:
- test_nested4Level
- disk.allocation_server_cmaui
network.incoming.packets_cmaui_port_6:
- - cmaui_port_6
- - network.incoming.packets
+ - abstract_cmaui
+ - network.incoming.packets_cmaui_cmaui_port_6
disk.device.write.bytes.rate_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.write.bytes.rate_server_cmaui
@@ -276,26 +285,26 @@ topology_template:
- test_nested4Level
- disk.usage_server_cmaui
feature_server_cmaui:
- - server_cmaui
- - feature
+ - abstract_cmaui
+ - feature_cmaui
binding_cmaui_port_5:
- - cmaui_port_5
- - binding
+ - abstract_cmaui
+ - binding_cmaui_cmaui_port_5
network.incoming.packets_cmaui_port_8_test_nested4Level:
- test_nested4Level
- network.incoming.packets_cmaui_port_8
binding_cmaui_port_6:
- - cmaui_port_6
- - binding
+ - abstract_cmaui
+ - binding_cmaui_cmaui_port_6
network.outgoing.packets.rate_cmaui_port_8_test_nested4Level:
- test_nested4Level
- network.outgoing.packets.rate_cmaui_port_8
memory.usage_server_cmaui:
- - server_cmaui
- - memory.usage
+ - abstract_cmaui
+ - memory.usage_cmaui
disk.ephemeral.size_server_cmaui:
- - server_cmaui
- - disk.ephemeral.size
+ - abstract_cmaui
+ - disk.ephemeral.size_cmaui
feature_server_cmaui_test_nested4Level:
- test_nested4Level
- feature_server_cmaui
@@ -303,29 +312,29 @@ topology_template:
- test_nested4Level
- disk.read.bytes.rate_server_cmaui
network.outgoing.bytes.rate_cmaui_port_6:
- - cmaui_port_6
- - network.outgoing.bytes.rate
+ - abstract_cmaui
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_6
network.outgoing.bytes.rate_cmaui_port_5:
- - cmaui_port_5
- - network.outgoing.bytes.rate
+ - abstract_cmaui
+ - network.outgoing.bytes.rate_cmaui_cmaui_port_5
network.incoming.bytes_cmaui_port_6:
- - cmaui_port_6
- - network.incoming.bytes
+ - abstract_cmaui
+ - network.incoming.bytes_cmaui_cmaui_port_6
network.incoming.bytes_cmaui_port_5:
- - cmaui_port_5
- - network.incoming.bytes
+ - abstract_cmaui
+ - network.incoming.bytes_cmaui_cmaui_port_5
disk.iops_server_cmaui:
- - server_cmaui
- - disk.iops
+ - abstract_cmaui
+ - disk.iops_cmaui
disk.device.iops_server_cmaui:
- - server_cmaui
- - disk.device.iops
+ - abstract_cmaui
+ - disk.device.iops_cmaui
disk.capacity_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.capacity_server_cmaui
disk.read.bytes_server_cmaui:
- - server_cmaui
- - disk.read.bytes
+ - abstract_cmaui
+ - disk.read.bytes_cmaui
scalable_server_cmaui_test_nested4Level:
- test_nested4Level
- scalable_server_cmaui
@@ -339,20 +348,20 @@ topology_template:
- test_nested4Level
- disk.device.read.bytes.rate_server_cmaui
feature_cmaui_port_5:
- - cmaui_port_5
- - feature
+ - abstract_cmaui
+ - feature_cmaui_cmaui_port_5
disk.device.allocation_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.allocation_server_cmaui
feature_cmaui_port_6:
- - cmaui_port_6
- - feature
+ - abstract_cmaui
+ - feature_cmaui_cmaui_port_6
disk.device.write.requests_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.write.requests_server_cmaui
cpu_server_cmaui:
- - server_cmaui
- - cpu
+ - abstract_cmaui
+ - cpu_cmaui
disk.write.bytes.rate_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.write.bytes.rate_server_cmaui
@@ -366,56 +375,56 @@ topology_template:
- test_nested4Level
- binding_cmaui_port_8
network.incoming.packets.rate_cmaui_port_5:
- - cmaui_port_5
- - network.incoming.packets.rate
+ - abstract_cmaui
+ - network.incoming.packets.rate_cmaui_cmaui_port_5
disk.write.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.write.bytes.rate
+ - abstract_cmaui
+ - disk.write.bytes.rate_cmaui
disk.device.read.bytes.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.bytes.rate
+ - abstract_cmaui
+ - disk.device.read.bytes.rate_cmaui
attachment_cmaui_port_6:
- - cmaui_port_6
- - attachment
+ - abstract_cmaui
+ - attachment_cmaui_cmaui_port_6
network.outgoing.packets.rate_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.outgoing.packets.rate_cmaui_port_7
network.outgoing.packets.rate_cmaui_port_5:
- - cmaui_port_5
- - network.outgoing.packets.rate
+ - abstract_cmaui
+ - network.outgoing.packets.rate_cmaui_cmaui_port_5
network.outgoing.packets.rate_cmaui_port_6:
- - cmaui_port_6
- - network.outgoing.packets.rate
+ - abstract_cmaui
+ - network.outgoing.packets.rate_cmaui_cmaui_port_6
attachment_cmaui_port_5:
- - cmaui_port_5
- - attachment
+ - abstract_cmaui
+ - attachment_cmaui_cmaui_port_5
feature_cmaui_port_8_test_nested4Level:
- test_nested4Level
- feature_cmaui_port_8
disk.device.latency_server_cmaui:
- - server_cmaui
- - disk.device.latency
+ - abstract_cmaui
+ - disk.device.latency_cmaui
disk.read.requests_server_cmaui:
- - server_cmaui
- - disk.read.requests
+ - abstract_cmaui
+ - disk.read.requests_cmaui
disk.device.capacity_server_cmaui:
- - server_cmaui
- - disk.device.capacity
+ - abstract_cmaui
+ - disk.device.capacity_cmaui
disk.usage_server_cmaui:
- - server_cmaui
- - disk.usage
+ - abstract_cmaui
+ - disk.usage_cmaui
disk.device.usage_server_cmaui:
- - server_cmaui
- - disk.device.usage
+ - abstract_cmaui
+ - disk.device.usage_cmaui
network.outpoing.packets_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.outpoing.packets_cmaui_port_7
disk.capacity_server_cmaui:
- - server_cmaui
- - disk.capacity
+ - abstract_cmaui
+ - disk.capacity_cmaui
disk.write.requests.rate_server_cmaui:
- - server_cmaui
- - disk.write.requests.rate
+ - abstract_cmaui
+ - disk.write.requests.rate_cmaui
attachment_cmaui_port_8_test_nested4Level:
- test_nested4Level
- attachment_cmaui_port_8
@@ -426,8 +435,8 @@ topology_template:
- test_nested4Level
- disk.iops_server_cmaui
disk.device.read.requests_server_cmaui:
- - server_cmaui
- - disk.device.read.requests
+ - abstract_cmaui
+ - disk.device.read.requests_cmaui
feature_cmaui_port_7_test_nested4Level:
- test_nested4Level
- feature_cmaui_port_7
@@ -435,11 +444,11 @@ topology_template:
- test_nested4Level
- endpoint_server_cmaui
network.incoming.packets.rate_cmaui_port_6:
- - cmaui_port_6
- - network.incoming.packets.rate
+ - abstract_cmaui
+ - network.incoming.packets.rate_cmaui_cmaui_port_6
memory_server_cmaui:
- - server_cmaui
- - memory
+ - abstract_cmaui
+ - memory_cmaui
cpu.delta_server_cmaui_test_nested4Level:
- test_nested4Level
- cpu.delta_server_cmaui
@@ -450,14 +459,14 @@ topology_template:
- test_nested4Level
- binding_cmaui_port_7
binding_server_cmaui:
- - server_cmaui
- - binding
+ - abstract_cmaui
+ - binding_cmaui
disk.device.read.requests.rate_server_cmaui:
- - server_cmaui
- - disk.device.read.requests.rate
+ - abstract_cmaui
+ - disk.device.read.requests.rate_cmaui
disk.write.bytes_server_cmaui:
- - server_cmaui
- - disk.write.bytes
+ - abstract_cmaui
+ - disk.write.bytes_cmaui
network.outgoing.bytes_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.outgoing.bytes_cmaui_port_7
@@ -483,11 +492,11 @@ topology_template:
- test_nested4Level
- os_server_cmaui
network.incoming.bytes.rate_cmaui_port_6:
- - cmaui_port_6
- - network.incoming.bytes.rate
+ - abstract_cmaui
+ - network.incoming.bytes.rate_cmaui_cmaui_port_6
memory.resident_server_cmaui:
- - server_cmaui
- - memory.resident
+ - abstract_cmaui
+ - memory.resident_cmaui
network.incoming.packets.rate_cmaui_port_8_test_nested4Level:
- test_nested4Level
- network.incoming.packets.rate_cmaui_port_8
@@ -495,26 +504,26 @@ topology_template:
- test_nested4Level
- memory.usage_server_cmaui
network.outpoing.packets_cmaui_port_5:
- - cmaui_port_5
- - network.outpoing.packets
+ - abstract_cmaui
+ - network.outpoing.packets_cmaui_cmaui_port_5
disk.latency_server_cmaui:
- - server_cmaui
- - disk.latency
+ - abstract_cmaui
+ - disk.latency_cmaui
network.outgoing.bytes_cmaui_port_6:
- - cmaui_port_6
- - network.outgoing.bytes
+ - abstract_cmaui
+ - network.outgoing.bytes_cmaui_cmaui_port_6
network.outpoing.packets_cmaui_port_6:
- - cmaui_port_6
- - network.outpoing.packets
+ - abstract_cmaui
+ - network.outpoing.packets_cmaui_cmaui_port_6
network.outgoing.bytes_cmaui_port_5:
- - cmaui_port_5
- - network.outgoing.bytes
+ - abstract_cmaui
+ - network.outgoing.bytes_cmaui_cmaui_port_5
vcpus_server_cmaui:
- - server_cmaui
- - vcpus
+ - abstract_cmaui
+ - vcpus_cmaui
disk.device.write.bytes_server_cmaui:
- - server_cmaui
- - disk.device.write.bytes
+ - abstract_cmaui
+ - disk.device.write.bytes_cmaui
disk.device.read.bytes_server_cmaui_test_nested4Level:
- test_nested4Level
- disk.device.read.bytes_server_cmaui
@@ -522,30 +531,30 @@ topology_template:
- test_nested4Level
- cpu_util_server_cmaui
network.incoming.bytes.rate_cmaui_port_5:
- - cmaui_port_5
- - network.incoming.bytes.rate
+ - abstract_cmaui
+ - network.incoming.bytes.rate_cmaui_cmaui_port_5
disk.allocation_server_cmaui:
- - server_cmaui
- - disk.allocation
+ - abstract_cmaui
+ - disk.allocation_cmaui
disk.write.requests_server_cmaui:
- - server_cmaui
- - disk.write.requests
+ - abstract_cmaui
+ - disk.write.requests_cmaui
network.incoming.bytes_cmaui_port_7_test_nested4Level:
- test_nested4Level
- network.incoming.bytes_cmaui_port_7
endpoint_server_cmaui:
- - server_cmaui
- - endpoint
+ - abstract_cmaui
+ - endpoint_cmaui
requirements:
dependency_cmaui_port_7_test_nested4Level:
- test_nested4Level
- dependency_cmaui_port_7
dependency_cmaui_port_6:
- - cmaui_port_6
- - dependency
+ - abstract_cmaui
+ - dependency_cmaui_cmaui_port_6
dependency_server_cmaui:
- - server_cmaui
- - dependency
+ - abstract_cmaui
+ - dependency_cmaui
dependency_cmaui_port_8_test_nested4Level:
- test_nested4Level
- dependency_cmaui_port_8
@@ -553,11 +562,11 @@ topology_template:
- test_nested4Level
- local_storage_server_cmaui
link_cmaui_port_6:
- - cmaui_port_6
- - link
+ - abstract_cmaui
+ - link_cmaui_cmaui_port_6
link_cmaui_port_5:
- - cmaui_port_5
- - link
+ - abstract_cmaui
+ - link_cmaui_cmaui_port_5
dependency_test_nested4Level:
- test_nested4Level
- dependency
@@ -565,8 +574,8 @@ topology_template:
- test_nested4Level
- link_cmaui_port_8
local_storage_server_cmaui:
- - server_cmaui
- - local_storage
+ - abstract_cmaui
+ - local_storage_cmaui
dependency_server_cmaui_test_nested4Level:
- test_nested4Level
- dependency_server_cmaui
@@ -574,5 +583,5 @@ topology_template:
- test_nested4Level
- link_cmaui_port_7
dependency_cmaui_port_5:
- - cmaui_port_5
- - dependency \ No newline at end of file
+ - abstract_cmaui
+ - dependency_cmaui_cmaui_port_5
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested4ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested4ServiceTemplate.yaml
index 720662bde6..fafbdbe307 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested4ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested4ServiceTemplate.yaml
@@ -23,20 +23,37 @@ topology_template:
immutable: false
type: string
description: UID of OAM network
+ port_cmaui_port_8_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
p2:
hidden: false
immutable: false
type: string
- cmaui_image:
+ port_cmaui_port_8_order:
+ type: integer
+ required: true
+ port_cmaui_port_7_network_role_tag:
+ type: string
+ required: true
+ availability_zone_0:
+ label: availabilityzone name
hidden: false
immutable: false
type: string
- description: Image for CMAUI server
- cmaui_flavor:
+ description: availabilityzone name
+ net:
hidden: false
immutable: false
type: string
- description: Flavor for CMAUI server
+ port_cmaui_port_8_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
security_group_name:
hidden: false
immutable: false
@@ -44,43 +61,89 @@ topology_template:
description: CMAUI1, CMAUI2 server names
entry_schema:
type: string
- availability_zone_0:
- label: availabilityzone name
+ port_cmaui_port_8_network_role_tag:
+ type: string
+ required: true
+ port_cmaui_port_8_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_cmaui_port_7_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_cmaui_port_7_order:
+ type: integer
+ required: true
+ cmaui_image:
hidden: false
immutable: false
type: string
- description: availabilityzone name
- cmaui_oam_ips:
+ description: Image for CMAUI server
+ cmaui_flavor:
hidden: false
immutable: false
type: string
- net:
+ description: Flavor for CMAUI server
+ port_cmaui_port_7_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_cmaui_port_7_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_cmaui_port_7_subnetpoolid:
+ type: string
+ required: true
+ port_cmaui_port_7_network_role:
+ type: string
+ required: true
+ port_cmaui_port_8_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ cmaui_oam_ips:
hidden: false
immutable: false
type: string
+ port_cmaui_port_8_network_role:
+ type: string
+ required: true
+ port_cmaui_port_8_subnetpoolid:
+ type: string
+ required: true
node_templates:
cmaui_port_7:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
replacement_policy: AUTO
ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
+ get_input: port_cmaui_port_7_ip_requirements
security_groups:
- get_input: p1
+ network_role:
+ get_input: port_cmaui_port_7_network_role
fixed_ips:
- ip_address:
get_input:
- cmaui_oam_ips
- 0
+ subnetpoolid:
+ get_input: port_cmaui_port_7_subnetpoolid
mac_requirements:
- mac_count_required:
- is_required: false
+ get_input: port_cmaui_port_7_mac_requirements
+ exCP_naming:
+ get_input: port_cmaui_port_7_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_7_vlan_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_7_network_role_tag
network:
get_input: net
+ order:
+ get_input: port_cmaui_port_7_order
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -91,24 +154,31 @@ topology_template:
properties:
replacement_policy: AUTO
ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: true
- floating_ip_count_required:
- is_required: false
+ get_input: port_cmaui_port_8_ip_requirements
security_groups:
- get_input: p2
- get_input: p2
+ network_role:
+ get_input: port_cmaui_port_8_network_role
fixed_ips:
- ip_address:
get_input:
- cmaui_oam_ips
- 0
+ subnetpoolid:
+ get_input: port_cmaui_port_8_subnetpoolid
mac_requirements:
- mac_count_required:
- is_required: false
+ get_input: port_cmaui_port_8_mac_requirements
+ exCP_naming:
+ get_input: port_cmaui_port_8_exCP_naming
+ vlan_requirements:
+ get_input: port_cmaui_port_8_vlan_requirements
+ network_role_tag:
+ get_input: port_cmaui_port_8_network_role_tag
network:
get_input: net
+ order:
+ get_input: port_cmaui_port_8_order
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -138,7 +208,7 @@ topology_template:
- cmaui_port_8
- server_cmaui
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.heat.nested4
+ node_type: org.openecomp.resource.abstract.nodes.heat.cmaui
capabilities:
cpu.delta_server_cmaui:
- server_cmaui
@@ -347,4 +417,4 @@ topology_template:
- dependency
local_storage_server_cmaui:
- server_cmaui
- - local_storage \ No newline at end of file
+ - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e7c81c3c8a..90dfb74a67 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,575 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.abstract.nodes.heat.oam_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ p2:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ oam_server_name:
+ type: string
+ description: oam server name
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_oam_port_1_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_oam_port_1_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ 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
+ oam_net_name:
+ type: string
+ description: OAM network name
+ required: true
+ status: SUPPORTED
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ 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_oam_port_0_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_oam_port_1_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_oam_port_0_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_oam_port_0_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ required: true
+ status: SUPPORTED
+ attributes:
+ server_oam_id:
+ type: string
+ description: the oam nova service id
+ status: SUPPORTED
+ requirements:
+ - dependency_oam_port_0:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_port_0:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - 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_oam_port_1:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_oam_port_1:
+ 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
+ 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
+ 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
+ network.incoming.bytes.rate_oam_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_oam_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_oam_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_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_oam_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_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_oam_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_oam_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.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
+ network.outgoing.bytes.rate_oam_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.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
+ network.outgoing.bytes.rate_oam_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_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_oam_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_oam_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_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
+ attachment_oam_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_oam_port_0:
+ type: tosca.capabilities.Attachment
+ 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
+ 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
+ feature_oam_port_0:
+ type: tosca.capabilities.Node
+ 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
+ feature_oam_port_1:
+ type: tosca.capabilities.Node
+ 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
+ network.incoming.packets.rate_oam_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.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
+ network.incoming.packets.rate_oam_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.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
+ network.outpoing.packets_oam_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_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
+ binding_oam_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_oam_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_oam_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_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
+ binding_oam_port_1:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ network.outpoing.packets_oam_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.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
+ binding_server_oam:
+ type: tosca.capabilities.network.Bindable
+ 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
+ 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
+ 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
org.openecomp.resource.abstract.nodes.heat.pcm_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1143,6 +1712,575 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ properties:
+ port_pcm_port_0_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_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.compute:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/MainServiceTemplate.yaml
index b19b647852..78fe423e5d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/MainServiceTemplate.yaml
@@ -154,69 +154,8 @@ topology_template:
description: OAM network name
default: oam_protected_net_0
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_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
- pcm_image_name:
- get_input: pcm_image_name
- security_group_name:
- get_input: security_group_name
- cps_net_ip:
- get_input:
- - cps_net_ips
- - 0
- port_pcm_port_1_mac_requirements:
- mac_count_required:
- is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- pcm_vol:
- get_input:
- - pcm_volumes
- - 0
- port_pcm_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:
- mac_count_required:
- is_required: false
- pcm_server_name:
- get_input:
- - pcm_server_names
- - 0
- cps_net_name:
- get_input: cps_net_name
- cps_net_mask:
- get_input: cps_net_mask
- oam_net_ip:
- get_input:
- - oam_net_ips
- - 0
- oam_net_mask:
- get_input: oam_net_mask
- oam_net_name:
- get_input: oam_net_name
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -252,22 +191,8 @@ topology_template:
get_input:
- pcm_server_names
- 0
- packet_mirror_network:
- type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
- properties:
- network_name:
- get_input: net_name
- requirements:
- - dependency:
- capability: tosca.capabilities.Node
- node: abstract_pcm_server_1
- relationship: tosca.relationships.DependsOn
- - dependency:
- capability: feature_compute
- node: abstract_compute
- relationship: tosca.relationships.DependsOn
- abstract_oam_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.oam_server
+ server_oam_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-oam_v0.1
directives:
- substitutable
properties:
@@ -325,51 +250,95 @@ topology_template:
is_required: false
oam_net_name:
get_input: oam_net_name
- compute_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
properties:
- ip_requirements:
+ 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: false
+ is_required: true
floating_ip_count_required:
is_required: false
- mac_requirements:
+ oam_net_gw:
+ get_input: oam_net_gw
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ port_pcm_port_1_mac_requirements:
mac_count_required:
is_required: false
- network:
- get_input: net_name
- abstract_oam_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.oam_server
- directives:
- - substitutable
- properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
- p2:
- get_input: shared_security_group_id2
- port_oam_port_1_ip_requirements:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ port_pcm_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:
+ port_pcm_port_0_network_role_tag: cps
+ port_pcm_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:
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
+ get_input:
+ - oam_net_ips
+ - 0
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ packet_mirror_network:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_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:
+ ip_requirements:
- ip_version: 4
ip_count_required:
- is_required: true
+ is_required: false
floating_ip_count_required:
is_required: false
- shared_security_group_id1:
- get_input: shared_security_group_id1
+ mac_requirements:
+ mac_count_required:
+ is_required: false
+ network:
+ get_input: net_name
jsa_security_group1:
type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
properties:
@@ -383,19 +352,19 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: server_pcm_002
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_pcm_port_1
- node: abstract_pcm_server_0
+ node: server_pcm_002
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_oam_port_1
- node: abstract_oam_server_1
+ node: test_shared_node_connected_in_nested
relationship: org.openecomp.relationships.AttachesTo
- port:
capability: attachment_oam_port_0
- node: abstract_oam_server_1
+ 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
@@ -412,8 +381,39 @@ topology_template:
requirements:
- port:
capability: attachment_pcm_port_0
- node: abstract_pcm_server_0
+ node: server_pcm_002
relationship: org.openecomp.relationships.AttachesTo
+ test_shared_node_connected_in_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-oam_v0.1
+ 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
abstract_compute:
type: org.openecomp.resource.abstract.nodes.compute
directives:
@@ -421,13 +421,13 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- oam_net_gw
vm_image_name:
get_input: compute_image_name
compute_compute_metadata:
- get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- server_pcm_id
compute_compute_name:
- compute_name: null
@@ -466,14 +466,14 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_oam_001
+ - server_pcm_001
- packet_mirror_network
- compute_port_0
- jsa_security_group1
- jsa_security_group2
- abstract_compute
- - abstract_pcm_server_0
- - abstract_oam_server_0
- - abstract_pcm_server_1
addOn_group:
type: org.openecomp.groups.heat.HeatStack
properties:
@@ -481,4 +481,4 @@ topology_template:
description: |
Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
members:
- - abstract_oam_server_1
+ - test_shared_node_connected_in_nested
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 e09581bd29..c73d702699 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.abstract.nodes.heat.pcm_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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.compute:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1183,10 +1757,8 @@ node_types:
type: boolean
attributes:
compute_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_compute:
capability: tosca.capabilities.Node
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 b645ce5805..e2ad613b15 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
@@ -144,53 +144,27 @@ topology_template:
description: OAM network name
default: oam_protected_net_0
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
- metadata:
- get_attribute:
- - compute_port_0
- - device_id
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
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
pcm_image_name:
get_input: pcm_image_name
- security_group_name:
- get_input: security_group_name
- cps_net_ip:
- get_input:
- - cps_net_ips
- - 0
port_pcm_port_1_mac_requirements:
mac_count_required:
is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- key_name:
- get_attribute:
- - abstract_oam_server_0
- - accessIPv4
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- user_data_format:
- get_attribute:
- - abstract_pcm_server_0
- - oam_net_gw
- pcm_vol:
- get_input:
- - pcm_volumes
- - 0
port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
@@ -205,39 +179,43 @@ topology_template:
get_input:
- pcm_server_names
- 0
- cps_net_name:
- get_input: cps_net_name
- cps_net_mask:
- get_input: cps_net_mask
- oam_net_ip:
- get_input:
- - oam_net_ips
- - 0
- oam_net_mask:
- get_input: oam_net_mask
- oam_net_name:
- get_input: oam_net_name
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_oam_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-oam_v0.1
directives:
- substitutable
properties:
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
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
- pcm_image_name:
- get_input: pcm_image_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ 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
+ 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:
- ip_version: 4
ip_count_required:
@@ -248,26 +226,29 @@ topology_template:
port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
+ oam_image_name:
+ get_input: oam_image_name
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
get_input:
- - pcm_server_names
+ - oam_net_ips
- 0
- 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:
- - abstract_pcm_server_1
- - instance_name
- abstract_oam_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.oam_server
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
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
@@ -279,23 +260,29 @@ topology_template:
is_required: false
oam_net_gw:
get_input: oam_net_gw
- oam_flavor_name:
- get_input: oam_flavor_name
+ pcm_image_name:
+ get_input: pcm_image_name
security_group_name:
get_input: security_group_name
cps_net_ip:
get_input:
- cps_net_ips
- 0
- oam_server_name:
- get_input:
- - oam_server_names
- - 0
port_pcm_port_1_mac_requirements:
mac_count_required:
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-oam_v0.1ServiceTemplate.yaml
+ 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
@@ -310,8 +297,10 @@ topology_template:
port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- oam_image_name:
- get_input: oam_image_name
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
cps_net_name:
get_input: cps_net_name
cps_net_mask:
@@ -324,6 +313,17 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ 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
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -345,7 +345,7 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- oam_net_gw
vm_image_name:
get_input: compute_image_name
@@ -390,9 +390,9 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_oam_001
+ - server_pcm_001
- packet_mirror_network
- compute_port_0
- abstract_compute
- - abstract_pcm_server_0
- - abstract_oam_server_0
- - abstract_pcm_server_1
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/Nested_computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/Nested_computeServiceTemplate.yaml
index 945ecc8013..cfee3cc354 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/Nested_computeServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/Nested_computeServiceTemplate.yaml
@@ -70,13 +70,11 @@ topology_template:
- index_value
outputs:
compute_instance_name:
- type: list
+ type: string
value:
get_attribute:
- compute
- instance_name
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.compute
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 6131194a95..2eeae9ad81 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -1133,6 +1133,575 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ 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.compute:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
@@ -1166,10 +1735,8 @@ node_types:
type: boolean
attributes:
compute_instance_name:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_compute:
capability: tosca.capabilities.Node
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 d434ddde4e..4c0c96f988 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
@@ -144,11 +144,15 @@ topology_template:
description: OAM network name
default: oam_protected_net_0
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -158,27 +162,11 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
- oam_net_gw:
- get_input: oam_net_gw
pcm_image_name:
get_input: pcm_image_name
- security_group_name:
- get_input: security_group_name
- cps_net_ip:
- get_input:
- - cps_net_ips
- - 0
port_pcm_port_1_mac_requirements:
mac_count_required:
is_required: false
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
- pcm_vol:
- get_input:
- - pcm_volumes
- - 0
port_pcm_port_1_ip_requirements:
- ip_version: 4
ip_count_required:
@@ -193,27 +181,11 @@ topology_template:
get_input:
- pcm_server_names
- 0
- cps_net_name:
- get_input: cps_net_name
- cps_net_mask:
- get_input: cps_net_mask
- oam_net_ip:
- get_input:
- - oam_net_ips
- - 0
- oam_net_mask:
- get_input: oam_net_mask
- oam_net_name:
- get_input: oam_net_name
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_oam_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-oam_v0.1
directives:
- substitutable
properties:
- pcm_flavor_name:
- get_input: pcm_flavor_name
- service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -223,11 +195,29 @@ topology_template:
is_required: true
floating_ip_count_required:
is_required: false
- pcm_image_name:
- get_input: pcm_image_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ 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
+ 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:
- ip_version: 4
ip_count_required:
@@ -238,23 +228,22 @@ topology_template:
port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- pcm_server_name:
+ oam_image_name:
+ get_input: oam_image_name
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
get_input:
- - pcm_server_names
+ - oam_net_ips
- 0
- 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:
- - abstract_pcm_server_1
- - instance_name
- abstract_oam_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.oam_server
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -269,23 +258,21 @@ topology_template:
is_required: false
oam_net_gw:
get_input: oam_net_gw
- oam_flavor_name:
- get_input: oam_flavor_name
+ pcm_image_name:
+ get_input: pcm_image_name
security_group_name:
get_input: security_group_name
cps_net_ip:
get_input:
- cps_net_ips
- 0
- oam_server_name:
- get_input:
- - oam_server_names
- - 0
port_pcm_port_1_mac_requirements:
mac_count_required:
is_required: false
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
pcm_vol:
get_input:
- pcm_volumes
@@ -300,8 +287,10 @@ topology_template:
port_pcm_port_0_mac_requirements:
mac_count_required:
is_required: false
- oam_image_name:
- get_input: oam_image_name
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
cps_net_name:
get_input: cps_net_name
cps_net_mask:
@@ -314,6 +303,17 @@ topology_template:
get_input: oam_net_mask
oam_net_name:
get_input: oam_net_name
+ 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
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
@@ -372,17 +372,17 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_oam_001
+ - server_pcm_001
- packet_mirror_network
- compute_port_0
- abstract_compute
- - abstract_pcm_server_0
- - abstract_oam_server_0
- - abstract_pcm_server_1
outputs:
output_attr_nested_resource_same_type:
value:
get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- server_pcm_id
output_attr_non_nested_compute:
value:
@@ -392,12 +392,12 @@ topology_template:
output_attr_nested_resource_different_type:
value:
get_attribute:
- - abstract_oam_server_0
+ - server_oam_001
- server_oam_id
output_attr_nested_resource1:
value:
get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- server_pcm_id
output_attr_non_consolidation_entity:
value:
@@ -407,5 +407,5 @@ topology_template:
output_attr_nested_resource2:
value:
get_attribute:
- - abstract_pcm_server_0
+ - server_pcm_002
- server_pcm_id
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/Nested_computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/Nested_computeServiceTemplate.yaml
index a9f76ff596..8df49366ea 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/Nested_computeServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/Nested_computeServiceTemplate.yaml
@@ -52,13 +52,11 @@ topology_template:
- index_value
outputs:
compute_instance_name:
- type: list
+ type: string
value:
get_attribute:
- compute
- instance_name
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.compute
capabilities:
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 f0cf923cbc..2d5a794b7a 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
@@ -120,8 +120,8 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -189,7 +189,7 @@ topology_template:
requirements:
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: server_pcm_001
relationship: tosca.relationships.DependsOn
abstract_compute:
type: org.openecomp.resource.abstract.nodes.compute
@@ -198,7 +198,7 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_0
+ - server_pcm_001
- oam_net_gw
compute_compute_name:
- compute_name: null
@@ -211,7 +211,7 @@ topology_template:
port_compute_port_network_role_tag: port
compute_compute_metadata:
- get_attribute:
- - abstract_pcm_server_0
+ - server_pcm_001
- server_pcm_id
port_compute_port_mac_requirements:
mac_count_required:
@@ -237,6 +237,6 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_001
- packet_mirror_network
- abstract_compute
- - abstract_pcm_server_0
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 0aea357dee..2378f602c8 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
@@ -120,8 +120,8 @@ topology_template:
description: OAM network name
default: oam_protected_net_0
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -189,7 +189,7 @@ topology_template:
requirements:
- dependency:
capability: tosca.capabilities.Node
- node: abstract_pcm_server_0
+ node: server_pcm_001
relationship: tosca.relationships.DependsOn
compute_port_0:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
@@ -212,13 +212,13 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_0
+ - server_pcm_001
- oam_net_gw
vm_image_name:
get_input: compute_image_name
compute_compute_metadata:
- get_attribute:
- - abstract_pcm_server_0
+ - server_pcm_001
- server_pcm_id
compute_compute_name:
- compute_name: null
@@ -257,7 +257,7 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_001
- packet_mirror_network
- compute_port_0
- abstract_compute
- - abstract_pcm_server_0
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e04e1d754b..181027f032 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,439 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.abstract.nodes.pcm_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_pcm_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pcm_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_pcm_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_pcm_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_pcm_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pcm_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_server_pcm_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_server_pcm_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.requests_pcm_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_pcm_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_server_pcm_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_server_pcm_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_pcm_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.rate_pcm_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_pcm_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_pcm_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.packets.rate_pcm_server_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_server_pcm_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_server_pcm_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_pcm_server_pcm_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_pcm_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_pcm_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_server_pcm_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_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_pcm_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.iops_pcm_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_pcm_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_pcm_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_server_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_pcm_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_pcm_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_pcm_server_pcm_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pcm_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_pcm_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_pcm_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_pcm_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_pcm_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.ephemeral.size_pcm_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_pcm_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_server_pcm_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_pcm_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pcm_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_pcm_server_pcm_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_pcm_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.heat.nested-pcm_v0.1:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
@@ -1046,4 +1479,4 @@ node_types:
type: tosca.capabilities.network.Bindable
occurrences:
- 1
- - UNBOUNDED \ No newline at end of file
+ - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml
index 280d7da19f..d76973cb78 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml
@@ -269,4 +269,4 @@ topology_template:
- server_pcm_002
- server_pcm_001
- compute_port_0
- - abstract_compute \ No newline at end of file
+ - abstract_compute
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_computeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_computeServiceTemplate.yaml
index ba0e3fc87b..caa50c11df 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_computeServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_computeServiceTemplate.yaml
@@ -191,4 +191,4 @@ topology_template:
- local_storage
dependency_compute:
- compute
- - dependency \ No newline at end of file
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_pcm_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_pcm_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..9a861b97ed
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/Nested_pcm_serverServiceTemplate.yaml
@@ -0,0 +1,319 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcm_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcm_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_order:
+ type: integer
+ required: true
+ compute_pcm_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_pcm_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_pcm_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ pcm_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcm_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcm_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcm_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcm_server_user_data_format
+ - index_value
+ pcm_server_pcm_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_mac_requirements
+ order:
+ get_input: port_pcm_port_order
+ network_role:
+ get_input: port_pcm_port_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcm_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcm_server
+ capabilities:
+ disk.device.read.requests_pcm_server:
+ - pcm_server
+ - disk.device.read.requests
+ disk.device.write.requests.rate_pcm_server:
+ - pcm_server
+ - disk.device.write.requests.rate
+ network.outgoing.bytes.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.bytes.rate
+ attachment_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - attachment
+ disk.root.size_pcm_server:
+ - pcm_server
+ - disk.root.size
+ disk.device.write.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.device.write.bytes.rate
+ vcpus_pcm_server:
+ - pcm_server
+ - vcpus
+ memory.usage_pcm_server:
+ - pcm_server
+ - memory.usage
+ network.outgoing.packets.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.packets.rate
+ disk.device.read.requests.rate_pcm_server:
+ - pcm_server
+ - disk.device.read.requests.rate
+ disk.device.latency_pcm_server:
+ - pcm_server
+ - disk.device.latency
+ disk.device.write.requests_pcm_server:
+ - pcm_server
+ - disk.device.write.requests
+ disk.read.requests_pcm_server:
+ - pcm_server
+ - disk.read.requests
+ memory.resident_pcm_server:
+ - pcm_server
+ - memory.resident
+ network.outgoing.bytes_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.bytes
+ network.outpoing.packets_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outpoing.packets
+ feature_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - feature
+ disk.iops_pcm_server:
+ - pcm_server
+ - disk.iops
+ disk.capacity_pcm_server:
+ - pcm_server
+ - disk.capacity
+ network.incoming.bytes.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.bytes.rate
+ disk.read.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.read.bytes.rate
+ disk.device.capacity_pcm_server:
+ - pcm_server
+ - disk.device.capacity
+ binding_pcm_server:
+ - pcm_server
+ - binding
+ cpu_pcm_server:
+ - pcm_server
+ - cpu
+ disk.device.iops_pcm_server:
+ - pcm_server
+ - disk.device.iops
+ cpu_util_pcm_server:
+ - pcm_server
+ - cpu_util
+ disk.allocation_pcm_server:
+ - pcm_server
+ - disk.allocation
+ network.incoming.packets_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.packets
+ disk.device.usage_pcm_server:
+ - pcm_server
+ - disk.device.usage
+ disk.device.allocation_pcm_server:
+ - pcm_server
+ - disk.device.allocation
+ instance_pcm_server:
+ - pcm_server
+ - instance
+ disk.write.requests_pcm_server:
+ - pcm_server
+ - disk.write.requests
+ memory_pcm_server:
+ - pcm_server
+ - memory
+ host_pcm_server:
+ - pcm_server
+ - host
+ cpu.delta_pcm_server:
+ - pcm_server
+ - cpu.delta
+ disk.usage_pcm_server:
+ - pcm_server
+ - disk.usage
+ binding_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - binding
+ disk.device.read.bytes_pcm_server:
+ - pcm_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pcm_server:
+ - pcm_server
+ - disk.device.write.bytes
+ feature_pcm_server:
+ - pcm_server
+ - feature
+ disk.write.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.write.bytes.rate
+ os_pcm_server:
+ - pcm_server
+ - os
+ disk.latency_pcm_server:
+ - pcm_server
+ - disk.latency
+ disk.read.bytes_pcm_server:
+ - pcm_server
+ - disk.read.bytes
+ disk.write.bytes_pcm_server:
+ - pcm_server
+ - disk.write.bytes
+ disk.ephemeral.size_pcm_server:
+ - pcm_server
+ - disk.ephemeral.size
+ endpoint_pcm_server:
+ - pcm_server
+ - endpoint
+ network.incoming.bytes_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.bytes
+ scalable_pcm_server:
+ - pcm_server
+ - scalable
+ disk.write.requests.rate_pcm_server:
+ - pcm_server
+ - disk.write.requests.rate
+ network.incoming.packets.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.packets.rate
+ disk.device.read.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.device.read.bytes.rate
+ requirements:
+ link_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - link
+ dependency_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - dependency
+ local_storage_pcm_server:
+ - pcm_server
+ - local_storage
+ dependency_pcm_server:
+ - pcm_server
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/nested-pcm_v0.1ServiceTemplate.yaml
index 802d2c2310..2a3be24233 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/nested-pcm_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/nested-pcm_v0.1ServiceTemplate.yaml
@@ -6,9 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pcm_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
availabilityzone_name:
@@ -90,82 +87,90 @@ topology_template:
type: string
description: OAM network name
node_templates:
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcm_server_1:
+ type: org.openecomp.resource.abstract.nodes.pcm_server
+ directives:
+ - substitutable
properties:
- ip_requirements:
+ compute_pcm_server_availability_zone:
+ - get_input: availabilityzone_name
+ port_pcm_port_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ port_pcm_port_network_role_tag: cps
+ vm_flavor_name:
+ get_input: pcm_flavor_name
+ port_pcm_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_pcm_server_name:
+ - get_input: pcm_server_name
+ port_pcm_port_network:
+ - get_input: cps_net_name
+ port_pcm_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ compute_pcm_server_user_data_format:
+ - RAW
+ vm_image_name:
+ get_input: pcm_image_name
+ compute_pcm_server_config_drive:
+ - true
+ port_pcm_port_security_groups:
+ - - get_input: security_group_name
+ service_template_filter:
+ substitute_service_template: Nested_pcm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pcm_server_0:
+ type: org.openecomp.resource.abstract.nodes.pcm_server
+ directives:
+ - substitutable
+ properties:
+ compute_pcm_server_availability_zone:
+ - get_input: availabilityzone_name
+ port_pcm_port_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ port_pcm_port_network_role_tag: oam
+ vm_flavor_name:
+ get_input: pcm_flavor_name
+ port_pcm_port_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcm_2
- relationship: tosca.relationships.network.BindsTo
- server_pcm_2:
- type: org.openecomp.resource.vfc.nodes.heat.pcm_server
- properties:
- flavor:
- get_input: pcm_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcm_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcm_server_name
- server_pcm_1:
- type: org.openecomp.resource.vfc.nodes.heat.pcm_server
- properties:
- flavor:
- get_input: pcm_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcm_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcm_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ compute_pcm_server_name:
+ - get_input: pcm_server_name
+ port_pcm_port_network:
+ - get_input: oam_net_name
+ port_pcm_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcm_1
- relationship: tosca.relationships.network.BindsTo
+ compute_pcm_server_user_data_format:
+ - RAW
+ vm_image_name:
+ get_input: pcm_image_name
+ compute_pcm_server_config_drive:
+ - true
+ port_pcm_port_security_groups:
+ - - get_input: security_group_name
+ service_template_filter:
+ substitute_service_template: Nested_pcm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-pcm_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -173,10 +178,8 @@ topology_template:
heat_file: ../Artifacts/nested-pcm_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_1
- - server_pcm_2
- - server_pcm_1
- - pcm_port_0
+ - abstract_pcm_server_0
+ - abstract_pcm_server_1
outputs:
server_pcm_id_2:
description: the pcm nova service id
@@ -188,339 +191,339 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcm_server_1
+ - network.incoming.packets.rate_pcm_server_pcm_port
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pcm_server_0
+ - network.incoming.packets.rate_pcm_server_pcm_port
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pcm_server_0
+ - network.outpoing.packets_pcm_server_pcm_port
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcm_server_1
+ - network.outpoing.packets_pcm_server_pcm_port
disk.usage_server_pcm_2:
- - server_pcm_2
- - disk.usage
+ - abstract_pcm_server_0
+ - disk.usage_pcm_server
disk.capacity_server_pcm_1:
- - server_pcm_1
- - disk.capacity
+ - abstract_pcm_server_1
+ - disk.capacity_pcm_server
disk.capacity_server_pcm_2:
- - server_pcm_2
- - disk.capacity
+ - abstract_pcm_server_0
+ - disk.capacity_pcm_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcm_server_1
+ - network.incoming.bytes_pcm_server_pcm_port
disk.usage_server_pcm_1:
- - server_pcm_1
- - disk.usage
+ - abstract_pcm_server_1
+ - disk.usage_pcm_server
vcpus_server_pcm_1:
- - server_pcm_1
- - vcpus
+ - abstract_pcm_server_1
+ - vcpus_pcm_server
memory.resident_server_pcm_1:
- - server_pcm_1
- - memory.resident
+ - abstract_pcm_server_1
+ - memory.resident_pcm_server
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pcm_server_0
+ - network.incoming.bytes_pcm_server_pcm_port
vcpus_server_pcm_2:
- - server_pcm_2
- - vcpus
+ - abstract_pcm_server_0
+ - vcpus_pcm_server
memory.resident_server_pcm_2:
- - server_pcm_2
- - memory.resident
+ - abstract_pcm_server_0
+ - memory.resident_pcm_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcm_server_1
+ - binding_pcm_server_pcm_port
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pcm_server_0
+ - binding_pcm_server_pcm_port
cpu_server_pcm_2:
- - server_pcm_2
- - cpu
+ - abstract_pcm_server_0
+ - cpu_pcm_server
feature_server_pcm_1:
- - server_pcm_1
- - feature
+ - abstract_pcm_server_1
+ - feature_pcm_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcm_server_1
+ - network.outgoing.packets.rate_pcm_server_pcm_port
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pcm_server_0
+ - network.outgoing.packets.rate_pcm_server_pcm_port
feature_server_pcm_2:
- - server_pcm_2
- - feature
+ - abstract_pcm_server_0
+ - feature_pcm_server
disk.device.iops_server_pcm_2:
- - server_pcm_2
- - disk.device.iops
+ - abstract_pcm_server_0
+ - disk.device.iops_pcm_server
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pcm_server_0
+ - feature_pcm_server_pcm_port
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcm_server_1
+ - network.outgoing.bytes_pcm_server_pcm_port
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcm_server_1
+ - feature_pcm_server_pcm_port
cpu_server_pcm_1:
- - server_pcm_1
- - cpu
+ - abstract_pcm_server_1
+ - cpu_pcm_server
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pcm_server_0
+ - network.outgoing.bytes_pcm_server_pcm_port
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcm_server_1
+ - attachment_pcm_server_pcm_port
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pcm_server_0
+ - attachment_pcm_server_pcm_port
host_server_pcm_2:
- - server_pcm_2
- - host
+ - abstract_pcm_server_0
+ - host_pcm_server
endpoint_server_pcm_2:
- - server_pcm_2
- - endpoint
+ - abstract_pcm_server_0
+ - endpoint_pcm_server
endpoint_server_pcm_1:
- - server_pcm_1
- - endpoint
+ - abstract_pcm_server_1
+ - endpoint_pcm_server
disk.device.capacity_server_pcm_2:
- - server_pcm_2
- - disk.device.capacity
+ - abstract_pcm_server_0
+ - disk.device.capacity_pcm_server
host_server_pcm_1:
- - server_pcm_1
- - host
+ - abstract_pcm_server_1
+ - host_pcm_server
disk.device.capacity_server_pcm_1:
- - server_pcm_1
- - disk.device.capacity
+ - abstract_pcm_server_1
+ - disk.device.capacity_pcm_server
disk.latency_server_pcm_1:
- - server_pcm_1
- - disk.latency
+ - abstract_pcm_server_1
+ - disk.latency_pcm_server
disk.latency_server_pcm_2:
- - server_pcm_2
- - disk.latency
+ - abstract_pcm_server_0
+ - disk.latency_pcm_server
disk.write.requests.rate_server_pcm_2:
- - server_pcm_2
- - disk.write.requests.rate
+ - abstract_pcm_server_0
+ - disk.write.requests.rate_pcm_server
disk.write.requests.rate_server_pcm_1:
- - server_pcm_1
- - disk.write.requests.rate
+ - abstract_pcm_server_1
+ - disk.write.requests.rate_pcm_server
memory_server_pcm_2:
- - server_pcm_2
- - memory
+ - abstract_pcm_server_0
+ - memory_pcm_server
disk.device.read.bytes.rate_server_pcm_2:
- - server_pcm_2
- - disk.device.read.bytes.rate
+ - abstract_pcm_server_0
+ - disk.device.read.bytes.rate_pcm_server
memory_server_pcm_1:
- - server_pcm_1
- - memory
+ - abstract_pcm_server_1
+ - memory_pcm_server
disk.device.read.bytes.rate_server_pcm_1:
- - server_pcm_1
- - disk.device.read.bytes.rate
+ - abstract_pcm_server_1
+ - disk.device.read.bytes.rate_pcm_server
disk.write.bytes_server_pcm_2:
- - server_pcm_2
- - disk.write.bytes
+ - abstract_pcm_server_0
+ - disk.write.bytes_pcm_server
disk.write.bytes_server_pcm_1:
- - server_pcm_1
- - disk.write.bytes
+ - abstract_pcm_server_1
+ - disk.write.bytes_pcm_server
instance_server_pcm_2:
- - server_pcm_2
- - instance
+ - abstract_pcm_server_0
+ - instance_pcm_server
instance_server_pcm_1:
- - server_pcm_1
- - instance
+ - abstract_pcm_server_1
+ - instance_pcm_server
disk.device.read.requests.rate_server_pcm_1:
- - server_pcm_1
- - disk.device.read.requests.rate
+ - abstract_pcm_server_1
+ - disk.device.read.requests.rate_pcm_server
disk.device.read.requests.rate_server_pcm_2:
- - server_pcm_2
- - disk.device.read.requests.rate
+ - abstract_pcm_server_0
+ - disk.device.read.requests.rate_pcm_server
disk.write.bytes.rate_server_pcm_2:
- - server_pcm_2
- - disk.write.bytes.rate
+ - abstract_pcm_server_0
+ - disk.write.bytes.rate_pcm_server
binding_server_pcm_1:
- - server_pcm_1
- - binding
+ - abstract_pcm_server_1
+ - binding_pcm_server
binding_server_pcm_2:
- - server_pcm_2
- - binding
+ - abstract_pcm_server_0
+ - binding_pcm_server
disk.write.bytes.rate_server_pcm_1:
- - server_pcm_1
- - disk.write.bytes.rate
+ - abstract_pcm_server_1
+ - disk.write.bytes.rate_pcm_server
disk.device.allocation_server_pcm_1:
- - server_pcm_1
- - disk.device.allocation
+ - abstract_pcm_server_1
+ - disk.device.allocation_pcm_server
disk.device.allocation_server_pcm_2:
- - server_pcm_2
- - disk.device.allocation
+ - abstract_pcm_server_0
+ - disk.device.allocation_pcm_server
disk.root.size_server_pcm_1:
- - server_pcm_1
- - disk.root.size
+ - abstract_pcm_server_1
+ - disk.root.size_pcm_server
disk.root.size_server_pcm_2:
- - server_pcm_2
- - disk.root.size
+ - abstract_pcm_server_0
+ - disk.root.size_pcm_server
disk.iops_server_pcm_2:
- - server_pcm_2
- - disk.iops
+ - abstract_pcm_server_0
+ - disk.iops_pcm_server
disk.iops_server_pcm_1:
- - server_pcm_1
- - disk.iops
+ - abstract_pcm_server_1
+ - disk.iops_pcm_server
disk.device.write.bytes.rate_server_pcm_1:
- - server_pcm_1
- - disk.device.write.bytes.rate
+ - abstract_pcm_server_1
+ - disk.device.write.bytes.rate_pcm_server
disk.device.write.bytes.rate_server_pcm_2:
- - server_pcm_2
- - disk.device.write.bytes.rate
+ - abstract_pcm_server_0
+ - disk.device.write.bytes.rate_pcm_server
disk.write.requests_server_pcm_2:
- - server_pcm_2
- - disk.write.requests
+ - abstract_pcm_server_0
+ - disk.write.requests_pcm_server
disk.write.requests_server_pcm_1:
- - server_pcm_1
- - disk.write.requests
+ - abstract_pcm_server_1
+ - disk.write.requests_pcm_server
disk.read.bytes_server_pcm_1:
- - server_pcm_1
- - disk.read.bytes
+ - abstract_pcm_server_1
+ - disk.read.bytes_pcm_server
disk.read.bytes_server_pcm_2:
- - server_pcm_2
- - disk.read.bytes
+ - abstract_pcm_server_0
+ - disk.read.bytes_pcm_server
cpu_util_server_pcm_1:
- - server_pcm_1
- - cpu_util
+ - abstract_pcm_server_1
+ - cpu_util_pcm_server
cpu_util_server_pcm_2:
- - server_pcm_2
- - cpu_util
+ - abstract_pcm_server_0
+ - cpu_util_pcm_server
disk.device.write.bytes_server_pcm_2:
- - server_pcm_2
- - disk.device.write.bytes
+ - abstract_pcm_server_0
+ - disk.device.write.bytes_pcm_server
disk.allocation_server_pcm_1:
- - server_pcm_1
- - disk.allocation
+ - abstract_pcm_server_1
+ - disk.allocation_pcm_server
disk.allocation_server_pcm_2:
- - server_pcm_2
- - disk.allocation
+ - abstract_pcm_server_0
+ - disk.allocation_pcm_server
disk.device.write.bytes_server_pcm_1:
- - server_pcm_1
- - disk.device.write.bytes
+ - abstract_pcm_server_1
+ - disk.device.write.bytes_pcm_server
memory.usage_server_pcm_1:
- - server_pcm_1
- - memory.usage
+ - abstract_pcm_server_1
+ - memory.usage_pcm_server
memory.usage_server_pcm_2:
- - server_pcm_2
- - memory.usage
+ - abstract_pcm_server_0
+ - memory.usage_pcm_server
disk.device.read.bytes_server_pcm_2:
- - server_pcm_2
- - disk.device.read.bytes
+ - abstract_pcm_server_0
+ - disk.device.read.bytes_pcm_server
disk.device.read.bytes_server_pcm_1:
- - server_pcm_1
- - disk.device.read.bytes
+ - abstract_pcm_server_1
+ - disk.device.read.bytes_pcm_server
disk.read.bytes.rate_server_pcm_2:
- - server_pcm_2
- - disk.read.bytes.rate
+ - abstract_pcm_server_0
+ - disk.read.bytes.rate_pcm_server
disk.read.bytes.rate_server_pcm_1:
- - server_pcm_1
- - disk.read.bytes.rate
+ - abstract_pcm_server_1
+ - disk.read.bytes.rate_pcm_server
disk.device.iops_server_pcm_1:
- - server_pcm_1
- - disk.device.iops
+ - abstract_pcm_server_1
+ - disk.device.iops_pcm_server
cpu.delta_server_pcm_1:
- - server_pcm_1
- - cpu.delta
+ - abstract_pcm_server_1
+ - cpu.delta_pcm_server
cpu.delta_server_pcm_2:
- - server_pcm_2
- - cpu.delta
+ - abstract_pcm_server_0
+ - cpu.delta_pcm_server
disk.device.write.requests.rate_server_pcm_2:
- - server_pcm_2
- - disk.device.write.requests.rate
+ - abstract_pcm_server_0
+ - disk.device.write.requests.rate_pcm_server
disk.read.requests_server_pcm_2:
- - server_pcm_2
- - disk.read.requests
+ - abstract_pcm_server_0
+ - disk.read.requests_pcm_server
disk.read.requests_server_pcm_1:
- - server_pcm_1
- - disk.read.requests
+ - abstract_pcm_server_1
+ - disk.read.requests_pcm_server
disk.device.write.requests.rate_server_pcm_1:
- - server_pcm_1
- - disk.device.write.requests.rate
+ - abstract_pcm_server_1
+ - disk.device.write.requests.rate_pcm_server
disk.ephemeral.size_server_pcm_1:
- - server_pcm_1
- - disk.ephemeral.size
+ - abstract_pcm_server_1
+ - disk.ephemeral.size_pcm_server
disk.ephemeral.size_server_pcm_2:
- - server_pcm_2
- - disk.ephemeral.size
+ - abstract_pcm_server_0
+ - disk.ephemeral.size_pcm_server
scalable_server_pcm_2:
- - server_pcm_2
- - scalable
+ - abstract_pcm_server_0
+ - scalable_pcm_server
scalable_server_pcm_1:
- - server_pcm_1
- - scalable
+ - abstract_pcm_server_1
+ - scalable_pcm_server
disk.device.latency_server_pcm_2:
- - server_pcm_2
- - disk.device.latency
+ - abstract_pcm_server_0
+ - disk.device.latency_pcm_server
disk.device.latency_server_pcm_1:
- - server_pcm_1
- - disk.device.latency
+ - abstract_pcm_server_1
+ - disk.device.latency_pcm_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pcm_server_0
+ - network.outgoing.bytes.rate_pcm_server_pcm_port
disk.device.usage_server_pcm_2:
- - server_pcm_2
- - disk.device.usage
+ - abstract_pcm_server_0
+ - disk.device.usage_pcm_server
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcm_server_1
+ - network.incoming.packets_pcm_server_pcm_port
disk.device.usage_server_pcm_1:
- - server_pcm_1
- - disk.device.usage
+ - abstract_pcm_server_1
+ - disk.device.usage_pcm_server
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcm_server_1
+ - network.outgoing.bytes.rate_pcm_server_pcm_port
disk.device.write.requests_server_pcm_2:
- - server_pcm_2
- - disk.device.write.requests
+ - abstract_pcm_server_0
+ - disk.device.write.requests_pcm_server
disk.device.write.requests_server_pcm_1:
- - server_pcm_1
- - disk.device.write.requests
+ - abstract_pcm_server_1
+ - disk.device.write.requests_pcm_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pcm_server_0
+ - network.incoming.packets_pcm_server_pcm_port
os_server_pcm_2:
- - server_pcm_2
- - os
+ - abstract_pcm_server_0
+ - os_pcm_server
disk.device.read.requests_server_pcm_1:
- - server_pcm_1
- - disk.device.read.requests
+ - abstract_pcm_server_1
+ - disk.device.read.requests_pcm_server
disk.device.read.requests_server_pcm_2:
- - server_pcm_2
- - disk.device.read.requests
+ - abstract_pcm_server_0
+ - disk.device.read.requests_pcm_server
os_server_pcm_1:
- - server_pcm_1
- - os
+ - abstract_pcm_server_1
+ - os_pcm_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcm_server_1
+ - network.incoming.bytes.rate_pcm_server_pcm_port
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pcm_server_0
+ - network.incoming.bytes.rate_pcm_server_pcm_port
requirements:
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcm_server_1
+ - link_pcm_server_pcm_port
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pcm_server_0
+ - link_pcm_server_pcm_port
dependency_server_pcm_2:
- - server_pcm_2
- - dependency
+ - abstract_pcm_server_0
+ - dependency_pcm_server
dependency_server_pcm_1:
- - server_pcm_1
- - dependency
+ - abstract_pcm_server_1
+ - dependency_pcm_server
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcm_server_1
+ - dependency_pcm_server_pcm_port
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pcm_server_0
+ - dependency_pcm_server_pcm_port
local_storage_server_pcm_2:
- - server_pcm_2
- - local_storage
+ - abstract_pcm_server_0
+ - local_storage_pcm_server
local_storage_server_pcm_1:
- - server_pcm_1
- - local_storage \ No newline at end of file
+ - abstract_pcm_server_1
+ - local_storage_pcm_server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
index e084f23280..fb024af4d2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,6 +5,872 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
+ org.openecomp.resource.abstract.nodes.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_pcm_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ port_pcm_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_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_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ 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_pcm_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_pcm_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pcm_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_server_pcm_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_pd_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_pd_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.usage_pd_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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pcm_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_pd_server_pcm_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ cpu_pd_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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_pd_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_pd_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_pd_server_pcm_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.capacity_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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.packets.rate_pd_server_pcm_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_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_pd_server_pcm_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_pd_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_pd_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_pd_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.outpoing.packets_pd_server_pcm_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_pd_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_pd_server_pcm_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_pd_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_pd_server_pcm_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_pd_server_pcm_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ instance_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.packets.rate_pd_server_pcm_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_pd_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.ephemeral.size_pd_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_pd_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_pd_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_pd_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_pd_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.iops_pd_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.pcm_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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_pcm_server_availability_zone:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_fixed_ips:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ status: SUPPORTED
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ status: SUPPORTED
+ port_pcm_port_order:
+ type: integer
+ required: true
+ status: SUPPORTED
+ compute_pcm_server_name:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_network:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_ip_requirements:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_pcm_server_user_data_format:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ status: SUPPORTED
+ compute_pcm_server_config_drive:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: boolean
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ status: SUPPORTED
+ port_pcm_port_security_groups:
+ type: list
+ required: true
+ status: SUPPORTED
+ entry_schema:
+ type: json
+ requirements:
+ - dependency_pcm_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pcm_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pcm_server_pcm_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_server_pcm_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ disk.device.read.requests_pcm_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_pcm_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_server_pcm_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_server_pcm_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.root.size_pcm_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.rate_pcm_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_pcm_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_pcm_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.packets.rate_pcm_server_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_server_pcm_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_server_pcm_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_pcm_server_pcm_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.iops_pcm_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_pcm_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_server_pcm_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_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu_pcm_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.iops_pcm_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_pcm_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_pcm_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_server_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ cpu.delta_pcm_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_pcm_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_pcm_server_pcm_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.device.read.bytes_pcm_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_pcm_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_pcm_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pcm_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_pcm_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.latency_pcm_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_pcm_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_pcm_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.ephemeral.size_pcm_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_pcm_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.incoming.bytes_pcm_server_pcm_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_pcm_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.requests.rate_pcm_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_pcm_server_pcm_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_pcm_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.heat.nested-pcm_v0.1:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pcm_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pcm_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..9a861b97ed
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pcm_serverServiceTemplate.yaml
@@ -0,0 +1,319 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pcm_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pcm_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_order:
+ type: integer
+ required: true
+ compute_pcm_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ compute_pcm_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_pcm_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ port_pcm_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ pcm_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pcm_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pcm_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pcm_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pcm_server_user_data_format
+ - index_value
+ pcm_server_pcm_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_mac_requirements
+ order:
+ get_input: port_pcm_port_order
+ network_role:
+ get_input: port_pcm_port_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcm_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pcm_server
+ capabilities:
+ disk.device.read.requests_pcm_server:
+ - pcm_server
+ - disk.device.read.requests
+ disk.device.write.requests.rate_pcm_server:
+ - pcm_server
+ - disk.device.write.requests.rate
+ network.outgoing.bytes.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.bytes.rate
+ attachment_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - attachment
+ disk.root.size_pcm_server:
+ - pcm_server
+ - disk.root.size
+ disk.device.write.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.device.write.bytes.rate
+ vcpus_pcm_server:
+ - pcm_server
+ - vcpus
+ memory.usage_pcm_server:
+ - pcm_server
+ - memory.usage
+ network.outgoing.packets.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.packets.rate
+ disk.device.read.requests.rate_pcm_server:
+ - pcm_server
+ - disk.device.read.requests.rate
+ disk.device.latency_pcm_server:
+ - pcm_server
+ - disk.device.latency
+ disk.device.write.requests_pcm_server:
+ - pcm_server
+ - disk.device.write.requests
+ disk.read.requests_pcm_server:
+ - pcm_server
+ - disk.read.requests
+ memory.resident_pcm_server:
+ - pcm_server
+ - memory.resident
+ network.outgoing.bytes_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outgoing.bytes
+ network.outpoing.packets_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.outpoing.packets
+ feature_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - feature
+ disk.iops_pcm_server:
+ - pcm_server
+ - disk.iops
+ disk.capacity_pcm_server:
+ - pcm_server
+ - disk.capacity
+ network.incoming.bytes.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.bytes.rate
+ disk.read.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.read.bytes.rate
+ disk.device.capacity_pcm_server:
+ - pcm_server
+ - disk.device.capacity
+ binding_pcm_server:
+ - pcm_server
+ - binding
+ cpu_pcm_server:
+ - pcm_server
+ - cpu
+ disk.device.iops_pcm_server:
+ - pcm_server
+ - disk.device.iops
+ cpu_util_pcm_server:
+ - pcm_server
+ - cpu_util
+ disk.allocation_pcm_server:
+ - pcm_server
+ - disk.allocation
+ network.incoming.packets_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.packets
+ disk.device.usage_pcm_server:
+ - pcm_server
+ - disk.device.usage
+ disk.device.allocation_pcm_server:
+ - pcm_server
+ - disk.device.allocation
+ instance_pcm_server:
+ - pcm_server
+ - instance
+ disk.write.requests_pcm_server:
+ - pcm_server
+ - disk.write.requests
+ memory_pcm_server:
+ - pcm_server
+ - memory
+ host_pcm_server:
+ - pcm_server
+ - host
+ cpu.delta_pcm_server:
+ - pcm_server
+ - cpu.delta
+ disk.usage_pcm_server:
+ - pcm_server
+ - disk.usage
+ binding_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - binding
+ disk.device.read.bytes_pcm_server:
+ - pcm_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pcm_server:
+ - pcm_server
+ - disk.device.write.bytes
+ feature_pcm_server:
+ - pcm_server
+ - feature
+ disk.write.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.write.bytes.rate
+ os_pcm_server:
+ - pcm_server
+ - os
+ disk.latency_pcm_server:
+ - pcm_server
+ - disk.latency
+ disk.read.bytes_pcm_server:
+ - pcm_server
+ - disk.read.bytes
+ disk.write.bytes_pcm_server:
+ - pcm_server
+ - disk.write.bytes
+ disk.ephemeral.size_pcm_server:
+ - pcm_server
+ - disk.ephemeral.size
+ endpoint_pcm_server:
+ - pcm_server
+ - endpoint
+ network.incoming.bytes_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.bytes
+ scalable_pcm_server:
+ - pcm_server
+ - scalable
+ disk.write.requests.rate_pcm_server:
+ - pcm_server
+ - disk.write.requests.rate
+ network.incoming.packets.rate_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - network.incoming.packets.rate
+ disk.device.read.bytes.rate_pcm_server:
+ - pcm_server
+ - disk.device.read.bytes.rate
+ requirements:
+ link_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - link
+ dependency_pcm_server_pcm_port:
+ - pcm_server_pcm_port
+ - dependency
+ local_storage_pcm_server:
+ - pcm_server
+ - local_storage
+ dependency_pcm_server:
+ - pcm_server
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..407b0da859
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,319 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pcm_port_network_role_tag:
+ type: string
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pcm_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pcm_port_order:
+ type: integer
+ required: true
+ port_pcm_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ port_pcm_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ vm_image_name:
+ type: string
+ required: true
+ port_pcm_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_pcm_port_network_role:
+ type: string
+ required: true
+ port_pcm_port_subnetpoolid:
+ type: string
+ required: true
+ compute_pd_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pcm_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ config_drive:
+ get_input:
+ - compute_pd_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pcm_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ get_input:
+ - port_pcm_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pcm_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pcm_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pcm_port_ip_requirements
+ network_role_tag:
+ get_input: port_pcm_port_network_role_tag
+ mac_requirements:
+ get_input: port_pcm_port_mac_requirements
+ order:
+ get_input: port_pcm_port_order
+ network_role:
+ get_input: port_pcm_port_network_role
+ subnetpoolid:
+ get_input: port_pcm_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pcm_port_fixed_ips
+ network:
+ get_input:
+ - port_pcm_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ network.incoming.bytes_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.incoming.bytes
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ feature_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - feature
+ binding_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - binding
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.outgoing.bytes_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.outgoing.bytes
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ network.outgoing.packets.rate_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.outgoing.packets.rate
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.incoming.bytes.rate_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.incoming.bytes.rate
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ network.outpoing.packets_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.outpoing.packets
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ network.outgoing.bytes.rate_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.outgoing.bytes.rate
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ network.incoming.packets_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.incoming.packets
+ attachment_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - attachment
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.incoming.packets.rate_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - network.incoming.packets.rate
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - link
+ dependency_pd_server_pcm_port:
+ - pd_server_pcm_port
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/nested-pcm_v0.1ServiceTemplate.yaml
index d03bd42f52..a2031c2812 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/nested-pcm_v0.1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/nested-pcm_v0.1ServiceTemplate.yaml
@@ -6,11 +6,6 @@ imports:
file: openecomp-heat/_index.yml
- GlobalSubstitutionTypes:
file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pd_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
- org.openecomp.resource.vfc.nodes.heat.pcm_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
pd_flavor_name:
@@ -110,82 +105,90 @@ topology_template:
type: string
description: OAM network name
node_templates:
- pcm_port_1:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ abstract_pcm_server:
+ type: org.openecomp.resource.abstract.nodes.pcm_server
+ directives:
+ - substitutable
properties:
- ip_requirements:
+ compute_pcm_server_availability_zone:
+ - get_input: availabilityzone_name
+ port_pcm_port_fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ port_pcm_port_network_role_tag: cps
+ vm_flavor_name:
+ get_input: pcm_flavor_name
+ port_pcm_port_mac_requirements:
+ mac_count_required:
+ is_required: false
+ compute_pcm_server_name:
+ - get_input: pcm_server_name
+ port_pcm_port_network:
+ - get_input: cps_net_name
+ port_pcm_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
+ compute_pcm_server_user_data_format:
+ - RAW
+ vm_image_name:
+ get_input: pcm_image_name
+ compute_pcm_server_config_drive:
+ - true
+ port_pcm_port_security_groups:
+ - - get_input: security_group_name
+ service_template_filter:
+ substitute_service_template: Nested_pcm_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input: pd_server_name
+ port_pcm_port_fixed_ips:
- ip_address:
get_input: oam_net_ip
- mac_requirements:
+ port_pcm_port_network_role_tag: oam
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pcm_port_mac_requirements:
mac_count_required:
is_required: false
- network_role_tag: oam
- network:
- get_input: oam_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pd_0
- relationship: tosca.relationships.network.BindsTo
- server_pcm_0:
- type: org.openecomp.resource.vfc.nodes.heat.pcm_server
- properties:
- flavor:
- get_input: pcm_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pcm_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pcm_server_name
- server_pd_0:
- type: org.openecomp.resource.vfc.nodes.heat.pd_server
- properties:
- flavor:
- get_input: pd_flavor_name
- availability_zone:
- get_input: availabilityzone_name
- image:
- get_input: pd_image_name
- config_drive: true
- user_data_format: RAW
- name:
- get_input: pd_server_name
- pcm_port_0:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- ip_requirements:
+ port_pcm_port_network:
+ - get_input: oam_net_name
+ port_pcm_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: true
floating_ip_count_required:
is_required: false
- security_groups:
- - get_input: security_group_name
- fixed_ips:
- - ip_address:
- get_input: cps_net_ip
- mac_requirements:
- mac_count_required:
- is_required: false
- network_role_tag: cps
- network:
- get_input: cps_net_name
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: server_pcm_0
- relationship: tosca.relationships.network.BindsTo
+ vm_image_name:
+ get_input: pd_image_name
+ compute_pd_server_config_drive:
+ - true
+ compute_pd_server_user_data_format:
+ - RAW
+ port_pcm_port_security_groups:
+ - - get_input: security_group_name
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
groups:
nested-pcm_v0.1_group:
type: org.openecomp.groups.heat.HeatStack
@@ -193,10 +196,8 @@ topology_template:
heat_file: ../Artifacts/nested-pcm_v0.1.yaml
description: heat template that creates PCRF Cluman stack
members:
- - pcm_port_1
- - server_pcm_0
- - server_pd_0
- - pcm_port_0
+ - abstract_pd_server
+ - abstract_pcm_server
outputs:
server_pcm_id_2:
description: the pcm nova service id
@@ -208,339 +209,339 @@ topology_template:
node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
capabilities:
network.incoming.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets.rate
+ - abstract_pcm_server
+ - network.incoming.packets.rate_pcm_server_pcm_port
disk.iops_server_pd_0:
- - server_pd_0
- - disk.iops
+ - abstract_pd_server
+ - disk.iops_pd_server
network.incoming.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets.rate
+ - abstract_pd_server
+ - network.incoming.packets.rate_pd_server_pcm_port
network.outpoing.packets_pcm_port_1:
- - pcm_port_1
- - network.outpoing.packets
+ - abstract_pd_server
+ - network.outpoing.packets_pd_server_pcm_port
network.outpoing.packets_pcm_port_0:
- - pcm_port_0
- - network.outpoing.packets
+ - abstract_pcm_server
+ - network.outpoing.packets_pcm_server_pcm_port
disk.write.bytes.rate_server_pd_0:
- - server_pd_0
- - disk.write.bytes.rate
+ - abstract_pd_server
+ - disk.write.bytes.rate_pd_server
cpu.delta_server_pd_0:
- - server_pd_0
- - cpu.delta
+ - abstract_pd_server
+ - cpu.delta_pd_server
feature_server_pd_0:
- - server_pd_0
- - feature
+ - abstract_pd_server
+ - feature_pd_server
disk.capacity_server_pcm_0:
- - server_pcm_0
- - disk.capacity
+ - abstract_pcm_server
+ - disk.capacity_pcm_server
host_server_pd_0:
- - server_pd_0
- - host
+ - abstract_pd_server
+ - host_pd_server
memory_server_pd_0:
- - server_pd_0
- - memory
+ - abstract_pd_server
+ - memory_pd_server
network.incoming.bytes_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes
+ - abstract_pcm_server
+ - network.incoming.bytes_pcm_server_pcm_port
network.incoming.bytes_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes
+ - abstract_pd_server
+ - network.incoming.bytes_pd_server_pcm_port
disk.usage_server_pcm_0:
- - server_pcm_0
- - disk.usage
+ - abstract_pcm_server
+ - disk.usage_pcm_server
binding_pcm_port_0:
- - pcm_port_0
- - binding
+ - abstract_pcm_server
+ - binding_pcm_server_pcm_port
binding_pcm_port_1:
- - pcm_port_1
- - binding
+ - abstract_pd_server
+ - binding_pd_server_pcm_port
vcpus_server_pcm_0:
- - server_pcm_0
- - vcpus
+ - abstract_pcm_server
+ - vcpus_pcm_server
memory.resident_server_pcm_0:
- - server_pcm_0
- - memory.resident
+ - abstract_pcm_server
+ - memory.resident_pcm_server
disk.write.requests_server_pd_0:
- - server_pd_0
- - disk.write.requests
+ - abstract_pd_server
+ - disk.write.requests_pd_server
feature_server_pcm_0:
- - server_pcm_0
- - feature
+ - abstract_pcm_server
+ - feature_pcm_server
network.outgoing.packets.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.packets.rate
+ - abstract_pcm_server
+ - network.outgoing.packets.rate_pcm_server_pcm_port
network.outgoing.packets.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.packets.rate
+ - abstract_pd_server
+ - network.outgoing.packets.rate_pd_server_pcm_port
feature_pcm_port_1:
- - pcm_port_1
- - feature
+ - abstract_pd_server
+ - feature_pd_server_pcm_port
disk.ephemeral.size_server_pd_0:
- - server_pd_0
- - disk.ephemeral.size
+ - abstract_pd_server
+ - disk.ephemeral.size_pd_server
network.outgoing.bytes_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes
+ - abstract_pcm_server
+ - network.outgoing.bytes_pcm_server_pcm_port
feature_pcm_port_0:
- - pcm_port_0
- - feature
+ - abstract_pcm_server
+ - feature_pcm_server_pcm_port
network.outgoing.bytes_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes
+ - abstract_pd_server
+ - network.outgoing.bytes_pd_server_pcm_port
cpu_server_pcm_0:
- - server_pcm_0
- - cpu
+ - abstract_pcm_server
+ - cpu_pcm_server
attachment_pcm_port_0:
- - pcm_port_0
- - attachment
+ - abstract_pcm_server
+ - attachment_pcm_server_pcm_port
attachment_pcm_port_1:
- - pcm_port_1
- - attachment
+ - abstract_pd_server
+ - attachment_pd_server_pcm_port
disk.write.bytes_server_pd_0:
- - server_pd_0
- - disk.write.bytes
+ - abstract_pd_server
+ - disk.write.bytes_pd_server
disk.read.requests_server_pd_0:
- - server_pd_0
- - disk.read.requests
+ - abstract_pd_server
+ - disk.read.requests_pd_server
disk.device.usage_server_pd_0:
- - server_pd_0
- - disk.device.usage
+ - abstract_pd_server
+ - disk.device.usage_pd_server
disk.device.read.bytes_server_pd_0:
- - server_pd_0
- - disk.device.read.bytes
+ - abstract_pd_server
+ - disk.device.read.bytes_pd_server
endpoint_server_pcm_0:
- - server_pcm_0
- - endpoint
+ - abstract_pcm_server
+ - endpoint_pcm_server
host_server_pcm_0:
- - server_pcm_0
- - host
+ - abstract_pcm_server
+ - host_pcm_server
disk.write.requests.rate_server_pd_0:
- - server_pd_0
- - disk.write.requests.rate
+ - abstract_pd_server
+ - disk.write.requests.rate_pd_server
disk.device.capacity_server_pcm_0:
- - server_pcm_0
- - disk.device.capacity
+ - abstract_pcm_server
+ - disk.device.capacity_pcm_server
disk.root.size_server_pd_0:
- - server_pd_0
- - disk.root.size
+ - abstract_pd_server
+ - disk.root.size_pd_server
disk.latency_server_pcm_0:
- - server_pcm_0
- - disk.latency
+ - abstract_pcm_server
+ - disk.latency_pcm_server
disk.device.iops_server_pd_0:
- - server_pd_0
- - disk.device.iops
+ - abstract_pd_server
+ - disk.device.iops_pd_server
disk.write.requests.rate_server_pcm_0:
- - server_pcm_0
- - disk.write.requests.rate
+ - abstract_pcm_server
+ - disk.write.requests.rate_pcm_server
memory_server_pcm_0:
- - server_pcm_0
- - memory
+ - abstract_pcm_server
+ - memory_pcm_server
disk.device.read.bytes.rate_server_pcm_0:
- - server_pcm_0
- - disk.device.read.bytes.rate
+ - abstract_pcm_server
+ - disk.device.read.bytes.rate_pcm_server
instance_server_pcm_0:
- - server_pcm_0
- - instance
+ - abstract_pcm_server
+ - instance_pcm_server
disk.device.allocation_server_pcm_0:
- - server_pcm_0
- - disk.device.allocation
+ - abstract_pcm_server
+ - disk.device.allocation_pcm_server
disk.usage_server_pd_0:
- - server_pd_0
- - disk.usage
+ - abstract_pd_server
+ - disk.usage_pd_server
disk.write.bytes_server_pcm_0:
- - server_pcm_0
- - disk.write.bytes
+ - abstract_pcm_server
+ - disk.write.bytes_pcm_server
disk.device.read.requests.rate_server_pcm_0:
- - server_pcm_0
- - disk.device.read.requests.rate
+ - abstract_pcm_server
+ - disk.device.read.requests.rate_pcm_server
binding_server_pcm_0:
- - server_pcm_0
- - binding
+ - abstract_pcm_server
+ - binding_pcm_server
disk.read.bytes.rate_server_pd_0:
- - server_pd_0
- - disk.read.bytes.rate
+ - abstract_pd_server
+ - disk.read.bytes.rate_pd_server
disk.write.bytes.rate_server_pcm_0:
- - server_pcm_0
- - disk.write.bytes.rate
+ - abstract_pcm_server
+ - disk.write.bytes.rate_pcm_server
cpu_server_pd_0:
- - server_pd_0
- - cpu
+ - abstract_pd_server
+ - cpu_pd_server
disk.root.size_server_pcm_0:
- - server_pcm_0
- - disk.root.size
+ - abstract_pcm_server
+ - disk.root.size_pcm_server
vcpus_server_pd_0:
- - server_pd_0
- - vcpus
+ - abstract_pd_server
+ - vcpus_pd_server
disk.iops_server_pcm_0:
- - server_pcm_0
- - disk.iops
+ - abstract_pcm_server
+ - disk.iops_pcm_server
endpoint_server_pd_0:
- - server_pd_0
- - endpoint
+ - abstract_pd_server
+ - endpoint_pd_server
disk.device.write.bytes.rate_server_pd_0:
- - server_pd_0
- - disk.device.write.bytes.rate
+ - abstract_pd_server
+ - disk.device.write.bytes.rate_pd_server
disk.device.capacity_server_pd_0:
- - server_pd_0
- - disk.device.capacity
+ - abstract_pd_server
+ - disk.device.capacity_pd_server
disk.device.write.bytes.rate_server_pcm_0:
- - server_pcm_0
- - disk.device.write.bytes.rate
+ - abstract_pcm_server
+ - disk.device.write.bytes.rate_pcm_server
disk.write.requests_server_pcm_0:
- - server_pcm_0
- - disk.write.requests
+ - abstract_pcm_server
+ - disk.write.requests_pcm_server
disk.read.bytes_server_pcm_0:
- - server_pcm_0
- - disk.read.bytes
+ - abstract_pcm_server
+ - disk.read.bytes_pcm_server
disk.device.latency_server_pd_0:
- - server_pd_0
- - disk.device.latency
+ - abstract_pd_server
+ - disk.device.latency_pd_server
cpu_util_server_pcm_0:
- - server_pcm_0
- - cpu_util
+ - abstract_pcm_server
+ - cpu_util_pcm_server
disk.device.read.requests.rate_server_pd_0:
- - server_pd_0
- - disk.device.read.requests.rate
+ - abstract_pd_server
+ - disk.device.read.requests.rate_pd_server
disk.device.write.bytes_server_pcm_0:
- - server_pcm_0
- - disk.device.write.bytes
+ - abstract_pcm_server
+ - disk.device.write.bytes_pcm_server
disk.allocation_server_pcm_0:
- - server_pcm_0
- - disk.allocation
+ - abstract_pcm_server
+ - disk.allocation_pcm_server
memory.usage_server_pcm_0:
- - server_pcm_0
- - memory.usage
+ - abstract_pcm_server
+ - memory.usage_pcm_server
instance_server_pd_0:
- - server_pd_0
- - instance
+ - abstract_pd_server
+ - instance_pd_server
disk.allocation_server_pd_0:
- - server_pd_0
- - disk.allocation
+ - abstract_pd_server
+ - disk.allocation_pd_server
disk.device.read.bytes_server_pcm_0:
- - server_pcm_0
- - disk.device.read.bytes
+ - abstract_pcm_server
+ - disk.device.read.bytes_pcm_server
cpu_util_server_pd_0:
- - server_pd_0
- - cpu_util
+ - abstract_pd_server
+ - cpu_util_pd_server
disk.read.bytes.rate_server_pcm_0:
- - server_pcm_0
- - disk.read.bytes.rate
+ - abstract_pcm_server
+ - disk.read.bytes.rate_pcm_server
disk.device.iops_server_pcm_0:
- - server_pcm_0
- - disk.device.iops
+ - abstract_pcm_server
+ - disk.device.iops_pcm_server
disk.device.write.bytes_server_pd_0:
- - server_pd_0
- - disk.device.write.bytes
+ - abstract_pd_server
+ - disk.device.write.bytes_pd_server
disk.capacity_server_pd_0:
- - server_pd_0
- - disk.capacity
+ - abstract_pd_server
+ - disk.capacity_pd_server
disk.device.read.bytes.rate_server_pd_0:
- - server_pd_0
- - disk.device.read.bytes.rate
+ - abstract_pd_server
+ - disk.device.read.bytes.rate_pd_server
cpu.delta_server_pcm_0:
- - server_pcm_0
- - cpu.delta
+ - abstract_pcm_server
+ - cpu.delta_pcm_server
memory.resident_server_pd_0:
- - server_pd_0
- - memory.resident
+ - abstract_pd_server
+ - memory.resident_pd_server
disk.ephemeral.size_server_pcm_0:
- - server_pcm_0
- - disk.ephemeral.size
+ - abstract_pcm_server
+ - disk.ephemeral.size_pcm_server
disk.read.requests_server_pcm_0:
- - server_pcm_0
- - disk.read.requests
+ - abstract_pcm_server
+ - disk.read.requests_pcm_server
disk.device.write.requests.rate_server_pcm_0:
- - server_pcm_0
- - disk.device.write.requests.rate
+ - abstract_pcm_server
+ - disk.device.write.requests.rate_pcm_server
disk.device.write.requests_server_pd_0:
- - server_pd_0
- - disk.device.write.requests
+ - abstract_pd_server
+ - disk.device.write.requests_pd_server
binding_server_pd_0:
- - server_pd_0
- - binding
+ - abstract_pd_server
+ - binding_pd_server
scalable_server_pcm_0:
- - server_pcm_0
- - scalable
+ - abstract_pcm_server
+ - scalable_pcm_server
disk.device.allocation_server_pd_0:
- - server_pd_0
- - disk.device.allocation
+ - abstract_pd_server
+ - disk.device.allocation_pd_server
disk.read.bytes_server_pd_0:
- - server_pd_0
- - disk.read.bytes
+ - abstract_pd_server
+ - disk.read.bytes_pd_server
disk.device.read.requests_server_pd_0:
- - server_pd_0
- - disk.device.read.requests
+ - abstract_pd_server
+ - disk.device.read.requests_pd_server
network.outgoing.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.outgoing.bytes.rate
+ - abstract_pd_server
+ - network.outgoing.bytes.rate_pd_server_pcm_port
network.incoming.packets_pcm_port_0:
- - pcm_port_0
- - network.incoming.packets
+ - abstract_pcm_server
+ - network.incoming.packets_pcm_server_pcm_port
disk.device.latency_server_pcm_0:
- - server_pcm_0
- - disk.device.latency
+ - abstract_pcm_server
+ - disk.device.latency_pcm_server
disk.device.usage_server_pcm_0:
- - server_pcm_0
- - disk.device.usage
+ - abstract_pcm_server
+ - disk.device.usage_pcm_server
disk.latency_server_pd_0:
- - server_pd_0
- - disk.latency
+ - abstract_pd_server
+ - disk.latency_pd_server
network.outgoing.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.outgoing.bytes.rate
+ - abstract_pcm_server
+ - network.outgoing.bytes.rate_pcm_server_pcm_port
memory.usage_server_pd_0:
- - server_pd_0
- - memory.usage
+ - abstract_pd_server
+ - memory.usage_pd_server
network.incoming.packets_pcm_port_1:
- - pcm_port_1
- - network.incoming.packets
+ - abstract_pd_server
+ - network.incoming.packets_pd_server_pcm_port
disk.device.write.requests_server_pcm_0:
- - server_pcm_0
- - disk.device.write.requests
+ - abstract_pcm_server
+ - disk.device.write.requests_pcm_server
disk.device.write.requests.rate_server_pd_0:
- - server_pd_0
- - disk.device.write.requests.rate
+ - abstract_pd_server
+ - disk.device.write.requests.rate_pd_server
disk.device.read.requests_server_pcm_0:
- - server_pcm_0
- - disk.device.read.requests
+ - abstract_pcm_server
+ - disk.device.read.requests_pcm_server
scalable_server_pd_0:
- - server_pd_0
- - scalable
+ - abstract_pd_server
+ - scalable_pd_server
os_server_pcm_0:
- - server_pcm_0
- - os
+ - abstract_pcm_server
+ - os_pcm_server
network.incoming.bytes.rate_pcm_port_0:
- - pcm_port_0
- - network.incoming.bytes.rate
+ - abstract_pcm_server
+ - network.incoming.bytes.rate_pcm_server_pcm_port
network.incoming.bytes.rate_pcm_port_1:
- - pcm_port_1
- - network.incoming.bytes.rate
+ - abstract_pd_server
+ - network.incoming.bytes.rate_pd_server_pcm_port
os_server_pd_0:
- - server_pd_0
- - os
+ - abstract_pd_server
+ - os_pd_server
requirements:
dependency_server_pcm_0:
- - server_pcm_0
- - dependency
+ - abstract_pcm_server
+ - dependency_pcm_server
local_storage_server_pcm_0:
- - server_pcm_0
- - local_storage
+ - abstract_pcm_server
+ - local_storage_pcm_server
link_pcm_port_0:
- - pcm_port_0
- - link
+ - abstract_pcm_server
+ - link_pcm_server_pcm_port
link_pcm_port_1:
- - pcm_port_1
- - link
+ - abstract_pd_server
+ - link_pd_server_pcm_port
dependency_pcm_port_0:
- - pcm_port_0
- - dependency
+ - abstract_pcm_server
+ - dependency_pcm_server_pcm_port
local_storage_server_pd_0:
- - server_pd_0
- - local_storage
+ - abstract_pd_server
+ - local_storage_pd_server
dependency_server_pd_0:
- - server_pd_0
- - dependency
+ - abstract_pd_server
+ - dependency_pd_server
dependency_pcm_port_1:
- - pcm_port_1
- - dependency
+ - abstract_pd_server
+ - dependency_pd_server_pcm_port
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 3513346ba9..5db374e25b 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
@@ -54,15 +54,15 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_1_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.2
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -91,15 +91,15 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -128,8 +128,8 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_2_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.3
directives:
- substitutable
properties:
@@ -186,7 +186,7 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_pcm_001
+ - server_pcm_003
- compute_port_0
- - abstract_pcm_server_0
- - abstract_pcm_server_1_0
- - abstract_pcm_server_2_0
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 86e18691a6..c1c907fb3d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -564,6 +564,565 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.pcm_server_2:
+ 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
+ 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:
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 8d68beb0a5..b7e3090eb5 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
@@ -54,8 +54,8 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -91,15 +91,15 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_1_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -128,15 +128,15 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.2
directives:
- substitutable
properties:
pcm_flavor_name:
get_input: pcm_flavor_name
service_template_filter:
- substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ substitute_service_template: nested-pcm_v0.2ServiceTemplate.yaml
port_pcm_port_1_network_role_tag: oam
availabilityzone_name:
get_input: availabilityzone_name
@@ -186,7 +186,7 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_pcm_001
+ - server_pcm_003
- compute_port_0
- - abstract_pcm_server_0
- - abstract_pcm_server_1
- - abstract_pcm_server_1_0
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/nested-pcm_v0.2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/nested-pcm_v0.2ServiceTemplate.yaml
index 7abe24c770..1d5eb5734e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/nested-pcm_v0.2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/nested-pcm_v0.2ServiceTemplate.yaml
@@ -236,7 +236,7 @@ topology_template:
description: the pcm nova service id
value: server_pcm
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
+ node_type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
capabilities:
network.incoming.packets.rate_pcm_port_0:
- pcm_port_0
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 35bb849e6f..92ea0fa5e7 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.abstract.nodes.heat.pcm_server_1:
+ 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
+ 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.compute:
derived_from: org.openecomp.resource.abstract.nodes.VFC
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/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 7c18440ad7..3f53330a7a 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
@@ -54,8 +54,8 @@ topology_template:
immutable: false
type: string
node_templates:
- abstract_pcm_server_1:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -91,8 +91,8 @@ topology_template:
get_input:
- pcm_server_names
- 0
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -149,7 +149,7 @@ topology_template:
properties:
compute_compute_user_data_format:
- get_attribute:
- - abstract_pcm_server_1
+ - server_pcm_001
- oam_net_gw
vm_image_name:
get_input: compute_image_name
@@ -190,7 +190,7 @@ topology_template:
heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
description: heat template that creates PCRF Cluman stack
members:
+ - server_pcm_002
+ - server_pcm_001
- compute_port_0
- abstract_compute
- - abstract_pcm_server_0
- - abstract_pcm_server_1
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 d2f6cfb03d..d5852c9cff 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
@@ -92,20 +92,14 @@ node_types:
type: string
attributes:
pd_server_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
index 69f28f1262..b25f844652 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -131,29 +131,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv6
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port
- device_owner
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
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 837e03c8ed..de1531b142 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
@@ -92,20 +92,14 @@ node_types:
type: string
attributes:
pd_server_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_device_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
index 7a768a2d65..c2aaa1eba1 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -131,29 +131,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv6
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_device_id:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port
- device_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
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 0764496a7f..8e61b49e92 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
@@ -92,10 +92,8 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
@@ -519,10 +517,8 @@ node_types:
status: SUPPORTED
attributes:
ps_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_ps_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_pd_serverServiceTemplate.yaml
index 84d41a7ba3..6b8f36ec21 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_pd_serverServiceTemplate.yaml
@@ -131,13 +131,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_ps_serverServiceTemplate.yaml
index f336c3e1de..3c3e3962a6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_ps_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/Nested_ps_serverServiceTemplate.yaml
@@ -131,13 +131,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
ps_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- ps_server
- accessIPv4
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.ps_server
capabilities:
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 48d9735fb9..86c41415ae 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
@@ -419,8 +419,8 @@ topology_template:
description: csb internal network name
default: int_mog_csb_net
node_templates:
- abstract_pcm_server_0:
- type: org.openecomp.resource.abstract.nodes.heat.pcm_server
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
directives:
- substitutable
properties:
@@ -506,5 +506,5 @@ topology_template:
heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
description: heat template that creates MOG stack
members:
+ - server_pcm_003
- abstract_pd_server
- - abstract_pcm_server_0
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 f78767abf9..e68bf0fb94 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
@@ -128,20 +128,14 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd02_port_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_device_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
index cab0a4485f..d70887911a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -183,29 +183,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd02_port_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd02_port
- device_owner
- entry_schema:
- type: string
pd_server_pd01_port_device_id:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port
- device_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 0b1b45b112..a3e595f5da 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -9,125 +9,29 @@ node_types:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_FSB_OAM_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_FSB2_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB2_Internal1_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- vm_flavor_name:
- type: string
- required: true
- status: SUPPORTED
- port_FSB_OAM_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- compute_FSB2_availability_zone:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB2_Internal2_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_FSB_OAM_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB2_Internal1_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB2_Internal1_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB2_Internal2_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- compute_FSB2_name:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB2_Internal1_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_FSB2_Internal1_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_FSB_OAM_network_role:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB_OAM_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB2_Internal1_network:
+ port_FSB2_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_FSB2_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_FSB_OAM_subnetpoolid:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB_OAM_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_FSB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_FSB_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
+ type: org.openecomp.datatypes.network.MacRequirements
port_FSB2_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -136,37 +40,41 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_FSB_OAM_order:
+ port_FSB2_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_FSB2_Internal2_network:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_FSB2_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB2_Internal2_vlan_requirements:
+ port_FSB_OAM_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_FSB2_Internal1_order:
+ port_FSB2_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_FSB2_Internal2_subnetpoolid:
+ type: json
+ compute_FSB2_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB2_Internal1_network_role_tag:
+ port_FSB2_Internal1_mac_address:
type: list
required: true
status: SUPPORTED
@@ -177,29 +85,31 @@ node_types:
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ type: json
port_FSB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: list
required: true
status: SUPPORTED
- port_FSB2_Internal2_order:
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB_OAM_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_FSB2_Internal1_subnetpoolid:
+ type: string
+ port_FSB2_Internal1_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB_OAM_exCP_naming:
+ port_FSB2_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
requirements:
- dependency_FSB2_FSB_OAM:
capability: tosca.capabilities.Node
@@ -695,32 +605,36 @@ node_types:
org.openecomp.resource.abstract.nodes.VLC2:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_VLC_GTP_exCP_naming:
+ port_VLC_SCTP_A_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
port_VLC_OAM_network_role_tag:
- type: string
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: string
port_VLC_GTP_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC2_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_SCTP_A_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
vm_flavor_name:
type: string
required: true
@@ -730,219 +644,83 @@ node_types:
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_SCTP_A_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC2_Internal1_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_VLC_GTP_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- vm_image_name:
- type: string
- required: true
- status: SUPPORTED
- port_VLC2_Internal1_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_VLC2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC_SCTP_B_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_GTP_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal1_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_GTP_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_OAM_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
type: json
- port_VLC_SCTP_A_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_GTP_vlan_requirements:
+ port_VLC_OAM_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_VLC_GTP_fixed_ips:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_OAM_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal2_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_A_network:
+ port_VLC2_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_A_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_SCTP_A_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_SCTP_B_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_SCTP_A_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_OAM_vlan_requirements:
+ port_VLC_OAM_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_VLC_OAM_ip_requirements:
- type: list
+ vm_image_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_OAM_fixed_ips:
+ port_VLC2_Internal1_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC2_Internal1_order:
+ type: string
+ port_VLC2_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_VLC_OAM_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC2_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC_SCTP_A_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC2_Internal2_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
type: json
- port_VLC_SCTP_A_subnetpoolid:
+ port_VLC_SCTP_B_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_OAM_subnetpoolid:
+ port_VLC_GTP_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_B_network_role_tag:
+ port_VLC2_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: json
compute_VLC2_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_OAM_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC2_Internal1_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal2_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -951,46 +729,18 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_VLC_SCTP_B_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
port_VLC_SCTP_B_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_GTP_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_A_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal2_order:
+ type: json
+ port_VLC_GTP_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_VLC_GTP_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC2_Internal1_network:
type: list
required: true
@@ -1003,63 +753,31 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- port_VLC2_Internal1_exCP_naming:
+ port_VLC_GTP_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
port_VLC_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC2_Internal1_vlan_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_VLC2_Internal2_subnetpoolid:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_OAM_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
port_VLC_SCTP_B_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC2_Internal2_exCP_naming:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_VLC_SCTP_B_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_GTP_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC2_Internal1_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_B_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_SCTP_B_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC2_Internal2_network:
type: list
required: true
status: SUPPORTED
@@ -1794,24 +1512,32 @@ node_types:
org.openecomp.resource.abstract.nodes.NCB1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_NCB1_Internal1_network_role:
+ port_NCB1_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB1_Internal2_network_role:
+ 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_NCB1_Internal1_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB1_Internal1_network_role_tag:
+ port_NCB1_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: json
vm_flavor_name:
type: string
required: true
@@ -1822,112 +1548,40 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- port_NCB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- vm_image_name:
- type: string
- required: true
- status: SUPPORTED
- port_NCB1_Internal2_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_NCB1_Internal2_ip_requirements:
+ port_NCB1_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB1_Internal1_exCP_naming:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB1_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_NCB1_Internal1_subnetpoolid:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB1_Internal1_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB1_Internal2_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_NCB1_Internal2_subnetpoolid:
+ compute_NCB1_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB1_Internal2_mac_address:
- 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
- port_NCB1_Internal1_mac_address:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_NCB1_Internal1_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_NCB1_Internal2_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_NCB1_Internal1_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB1_Internal1_vlan_requirements:
+ port_NCB1_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_NCB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_NCB1_Internal1_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- compute_NCB1_availability_zone:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_NCB1_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
port_NCB1_Internal2_network:
type: list
required: true
@@ -2351,58 +2005,6 @@ node_types:
org.openecomp.resource.abstract.nodes.NCB2:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- compute_NCB2_availability_zone:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- vm_flavor_name:
- type: string
- required: true
- status: SUPPORTED
- port_NCB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_NCB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- vm_image_name:
- type: string
- required: true
- status: SUPPORTED
- port_NCB2_Internal1_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_NCB2_Internal2_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_NCB2_Internal1_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_NCB2_Internal1_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_NCB2_Internal2_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -2417,69 +2019,57 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- port_NCB2_Internal2_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB2_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_NCB2_Internal2_network:
+ compute_NCB2_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB2_Internal2_vlan_requirements:
+ port_NCB2_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_NCB2_Internal1_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_NCB2_Internal2_mac_address:
+ vm_flavor_name:
type: string
required: true
status: SUPPORTED
- port_NCB2_Internal1_subnetpoolid:
+ port_NCB2_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_NCB2_Internal1_network_role_tag:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB2_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB2_Internal2_order:
+ port_NCB2_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- compute_NCB2_name:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB2_Internal1_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_NCB2_Internal1_vlan_requirements:
+ port_NCB2_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_NCB2_Internal2_subnetpoolid:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_NCB2_name:
type: list
required: true
status: SUPPORTED
@@ -2490,7 +2080,7 @@ node_types:
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
requirements:
- dependency_NCB2:
capability: tosca.capabilities.Node
@@ -2908,89 +2498,25 @@ node_types:
org.openecomp.resource.abstract.nodes.GPB2:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_GPB2_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_GPB2_Internal2_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_GPB2_Internal1_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_GPB2_Internal1_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- vm_flavor_name:
- type: string
- required: true
- status: SUPPORTED
- port_GPB2_Internal2_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_GPB2_Internal2_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_GPB2_Internal1_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- compute_GPB2_name:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_GPB2_Internal1_subnetpoolid:
+ port_GPB2_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_GPB2_Internal2_subnetpoolid:
+ port_GPB2_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_GPB2_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_GPB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
+ type: org.openecomp.datatypes.network.MacRequirements
port_GPB2_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB2_Internal2_network_role:
+ type: json
+ port_GPB2_Internal1_network:
type: list
required: true
status: SUPPORTED
@@ -3010,38 +2536,38 @@ node_types:
status: SUPPORTED
entry_schema:
type: string
- port_GPB2_Internal2_exCP_naming:
- type: list
+ vm_flavor_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_GPB2_Internal1_order:
+ port_GPB2_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_GPB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_GPB2_Internal1_exCP_naming:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_GPB2_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_GPB2_Internal1_network_role_tag:
+ vm_image_name:
+ type: string
+ required: true
+ status: SUPPORTED
+ compute_GPB2_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
port_GPB2_Internal1_mac_address:
- type: string
+ type: list
required: true
status: SUPPORTED
+ entry_schema:
+ type: string
port_GPB2_Internal2_network:
type: list
required: true
@@ -3466,214 +2992,64 @@ node_types:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_VLC1_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_VLC_GTP_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_OAM_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_VLC1_Internal1_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_VLC_GTP_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC1_Internal2_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC1_Internal2_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_A_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- vm_flavor_name:
- type: string
- required: true
- status: SUPPORTED
- port_VLC1_Internal2_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_B_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_SCTP_A_fixed_ips:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC1_Internal2_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_GTP_network_role_tag:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- vm_image_name:
- type: string
- required: true
- status: SUPPORTED
- port_VLC1_Internal1_subnetpoolid:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_B_network:
+ port_VLC1_Internal1_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC1_Internal1_network_role_tag:
+ port_VLC_SCTP_A_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_GTP_network:
+ port_VLC_OAM_network_role_tag:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_GTP_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_OAM_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC1_Internal1_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC1_Internal1_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_SCTP_A_network_role_tag:
+ port_VLC1_Internal1_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_GTP_vlan_requirements:
+ port_VLC_GTP_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_VLC_GTP_fixed_ips:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_OAM_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- compute_VLC1_name:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC1_Internal2_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC1_Internal1_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC_SCTP_A_network:
+ port_VLC_SCTP_A_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_VLC_SCTP_A_vlan_requirements:
- type: list
+ type: org.openecomp.datatypes.network.MacRequirements
+ vm_flavor_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: json
- port_VLC1_Internal1_network_role:
+ port_VLC1_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_A_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC_SCTP_B_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_VLC_SCTP_A_exCP_naming:
+ port_VLC_SCTP_B_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_VLC_OAM_vlan_requirements:
+ port_VLC_SCTP_A_fixed_ips:
type: list
required: true
status: SUPPORTED
@@ -3684,79 +3060,47 @@ node_types:
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC1_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_OAM_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC1_Internal2_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
type: json
- port_VLC_OAM_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_VLC1_Internal2_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_VLC1_Internal2_subnetpoolid:
- type: list
+ vm_image_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
port_VLC_SCTP_A_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_SCTP_A_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- compute_VLC1_availability_zone:
+ type: json
+ port_VLC_SCTP_B_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_OAM_subnetpoolid:
+ port_VLC_GTP_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_B_network_role_tag:
+ compute_VLC1_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_OAM_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -3765,76 +3109,66 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_VLC1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal1_mac_requirements:
+ type: list
required: true
status: SUPPORTED
- port_VLC_SCTP_B_subnetpoolid:
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC_SCTP_B_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_GTP_network_role:
+ type: json
+ port_VLC_GTP_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_VLC_SCTP_A_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_GTP_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_VLC_GTP_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
+ type: json
port_VLC_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC1_Internal1_exCP_naming:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_VLC_SCTP_B_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_VLC_SCTP_B_order:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_OAM_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_VLC_GTP_subnetpoolid:
+ type: string
+ compute_VLC1_name:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_VLC_SCTP_B_vlan_requirements:
+ port_VLC_SCTP_B_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- port_VLC_SCTP_B_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
+ type: json
requirements:
- dependency_VLC1_VLC_SCTP_B:
capability: tosca.capabilities.Node
@@ -4565,119 +3899,35 @@ node_types:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_FSB1_Internal1_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_FSB_OAM_network_role_tag:
- type: string
- required: true
- status: SUPPORTED
- port_FSB1_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB1_Internal1_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- vm_flavor_name:
- type: string
- required: true
- status: SUPPORTED
- port_FSB_OAM_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_FSB1_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_FSB_OAM_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal1_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB1_Internal2_subnetpoolid:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_FSB_OAM_network_role:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB1_Internal1_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal1_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- port_FSB_OAM_network:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_FSB1_Internal2_network_role:
+ port_FSB_OAM_network_role_tag:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB1_Internal1_network_role_tag:
+ port_FSB1_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB_OAM_subnetpoolid:
+ port_FSB_OAM_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_FSB_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
+ type: org.openecomp.datatypes.network.MacRequirements
compute_FSB1_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB1_Internal1_vlan_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
@@ -4686,76 +3936,70 @@ node_types:
status: SUPPORTED
constraints:
- greater_or_equal: 0
- port_FSB_OAM_order:
+ port_FSB1_Internal1_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_FSB1_Internal1_network_role:
- type: list
+ type: string
+ vm_flavor_name:
+ type: string
required: true
status: SUPPORTED
- entry_schema:
- type: string
- port_FSB1_Internal2_network_role_tag:
+ port_FSB1_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_FSB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_FSB1_Internal2_ip_requirements:
+ port_FSB_OAM_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal2_order:
+ type: json
+ port_FSB1_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
- port_FSB_OAM_fixed_ips:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB1_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_FSB1_Internal1_exCP_naming:
+ type: json
+ port_FSB_OAM_fixed_ips:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_FSB_OAM_exCP_naming:
+ compute_FSB1_name:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
- compute_FSB1_name:
+ type: string
+ port_FSB1_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_FSB1_Internal2_exCP_naming:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB1_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
type: json
- port_FSB1_Internal2_vlan_requirements:
+ port_FSB_OAM_network:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: json
+ type: string
requirements:
- dependency_FSB1_FSB1_Internal2:
capability: tosca.capabilities.Node
@@ -5251,13 +4495,21 @@ node_types:
org.openecomp.resource.abstract.nodes.GPB1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
- port_GPB1_Internal1_network_role:
+ port_GPB1_Internal2_network:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_GPB1_Internal2_network_role:
+ 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_GPB1_Internal1_network:
type: list
required: true
status: SUPPORTED
@@ -5273,124 +4525,52 @@ node_types:
type: string
required: true
status: SUPPORTED
- port_GPB1_Internal2_mac_address:
- type: string
- required: true
- status: SUPPORTED
- port_GPB1_Internal1_order:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: integer
- vm_image_name:
- type: string
- required: true
- status: SUPPORTED
- port_GPB1_Internal1_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_GPB1_Internal2_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_GPB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- compute_GPB1_availability_zone:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: string
- port_GPB1_Internal1_exCP_naming:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_GPB1_Internal2_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB1_Internal2_vlan_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: json
- port_GPB1_Internal1_network_role_tag:
+ port_GPB1_Internal2_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_GPB1_Internal2_network:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_GPB1_Internal1_mac_address:
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_GPB1_Internal1_network:
+ port_GPB1_Internal2_mac_address:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_GPB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- status: SUPPORTED
- port_GPB1_Internal1_mac_address:
+ vm_image_name:
type: string
required: true
status: SUPPORTED
- port_GPB1_Internal1_subnetpoolid:
+ port_GPB1_Internal1_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_GPB1_Internal2_subnetpoolid:
+ type: json
+ port_GPB1_Internal1_mac_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: string
- port_GPB1_Internal2_network_role_tag:
+ type: org.openecomp.datatypes.network.MacRequirements
+ compute_GPB1_availability_zone:
type: list
required: true
status: SUPPORTED
entry_schema:
type: string
- port_GPB1_Internal1_ip_requirements:
- type: list
- required: true
- status: SUPPORTED
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB1_Internal2_order:
+ port_GPB1_Internal2_ip_requirements:
type: list
required: true
status: SUPPORTED
entry_schema:
- type: integer
+ type: json
requirements:
- dependency_GPB1:
capability: tosca.capabilities.Node
@@ -5804,4 +4984,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/generalVf/out/Nested_FSB1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB1ServiceTemplate.yaml
index a9acfcc5c3..d9a7752ac7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB1ServiceTemplate.yaml
@@ -12,98 +12,30 @@ node_types:
topology_template:
inputs:
port_FSB1_Internal1_mac_address:
- type: string
- required: true
- port_FSB_OAM_network_role_tag:
- type: string
- required: true
- port_FSB1_Internal2_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB1_Internal1_network:
- type: list
- required: true
- entry_schema:
- type: string
- vm_flavor_name:
- type: string
- required: true
- port_FSB_OAM_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_FSB1_Internal2_mac_address:
- type: string
- required: true
- port_FSB_OAM_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal1_subnetpoolid:
type: list
required: true
entry_schema:
type: string
- port_FSB1_Internal2_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_FSB_OAM_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB1_Internal1_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal1_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_FSB_OAM_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB1_Internal2_network_role:
+ port_FSB_OAM_network_role_tag:
type: list
required: true
entry_schema:
type: string
- port_FSB1_Internal1_network_role_tag:
+ port_FSB1_Internal2_network:
type: list
required: true
entry_schema:
type: string
- port_FSB_OAM_subnetpoolid:
+ port_FSB_OAM_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_FSB_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
+ type: org.openecomp.datatypes.network.MacRequirements
compute_FSB1_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_FSB1_Internal1_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -111,102 +43,79 @@ topology_template:
default: 0
constraints:
- greater_or_equal: 0
- port_FSB_OAM_order:
+ port_FSB1_Internal1_network:
type: list
required: true
entry_schema:
- type: integer
- port_FSB1_Internal1_network_role:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_FSB1_Internal2_mac_address:
type: list
required: true
entry_schema:
type: string
- port_FSB1_Internal2_network_role_tag:
+ port_FSB_OAM_ip_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: json
port_FSB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_FSB1_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB1_Internal2_order:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB1_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: integer
+ type: json
port_FSB_OAM_fixed_ips:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_FSB1_Internal1_exCP_naming:
- type: list
- required: true
- entry_schema:
type: json
- port_FSB_OAM_exCP_naming:
+ compute_FSB1_name:
type: list
required: true
entry_schema:
- type: json
- compute_FSB1_name:
+ type: string
+ port_FSB1_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_FSB1_Internal2_exCP_naming:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB1_Internal1_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_FSB1_Internal2_vlan_requirements:
+ port_FSB_OAM_network:
type: list
required: true
entry_schema:
- type: json
+ type: string
node_templates:
FSB1_FSB1_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB1_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_FSB1_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_FSB1_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_FSB1_Internal2_network_role_tag
+ - port_FSB1_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_FSB1_Internal2_mac_requirements
- order:
- get_input:
- - port_FSB1_Internal2_order
- - index_value
- network_role:
- get_input:
- - port_FSB1_Internal2_network_role
- - index_value
- subnetpoolid:
get_input:
- - port_FSB1_Internal2_subnetpoolid
+ - port_FSB1_Internal2_mac_requirements
- index_value
network:
get_input:
- port_FSB1_Internal2_network
- index_value
mac_address:
- get_input: port_FSB1_Internal2_mac_address
+ get_input:
+ - port_FSB1_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -215,40 +124,22 @@ topology_template:
FSB1_FSB1_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB1_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_FSB1_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_FSB1_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_FSB1_Internal1_network_role_tag
+ - port_FSB1_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_FSB1_Internal1_mac_requirements
- order:
get_input:
- - port_FSB1_Internal1_order
- - index_value
- network_role:
- get_input:
- - port_FSB1_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_FSB1_Internal1_subnetpoolid
+ - port_FSB1_Internal1_mac_requirements
- index_value
network:
get_input:
- port_FSB1_Internal1_network
- index_value
mac_address:
- get_input: port_FSB1_Internal1_mac_address
+ get_input:
+ - port_FSB1_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -257,34 +148,22 @@ topology_template:
FSB1_FSB_OAM:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB_OAM_exCP_naming
- - index_value
- vlan_requirements:
+ ip_requirements:
get_input:
- - port_FSB_OAM_vlan_requirements
+ - port_FSB_OAM_ip_requirements
- index_value
- ip_requirements:
- get_input: port_FSB_OAM_ip_requirements
network_role_tag:
- get_input: port_FSB_OAM_network_role_tag
- mac_requirements:
- get_input: port_FSB_OAM_mac_requirements
- order:
get_input:
- - port_FSB_OAM_order
+ - port_FSB_OAM_network_role_tag
- index_value
- network_role:
+ mac_requirements:
get_input:
- - port_FSB_OAM_network_role
+ - port_FSB_OAM_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_FSB_OAM_subnetpoolid
+ - port_FSB_OAM_fixed_ips
- index_value
- fixed_ips:
- get_input: port_FSB_OAM_fixed_ips
network:
get_input:
- port_FSB_OAM_network
@@ -556,4 +435,4 @@ topology_template:
- dependency
link_FSB1_FSB_OAM:
- FSB1_FSB_OAM
- - link
+ - link \ 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/generalVf/out/Nested_FSB2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB2ServiceTemplate.yaml
index 24b75d7835..9bb94360f6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_FSB2ServiceTemplate.yaml
@@ -12,103 +12,25 @@ node_types:
topology_template:
inputs:
port_FSB_OAM_network_role_tag:
- type: string
- required: true
- port_FSB2_Internal2_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB2_Internal1_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- vm_flavor_name:
- type: string
- required: true
- port_FSB_OAM_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- compute_FSB2_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB2_Internal2_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_FSB_OAM_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB2_Internal1_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_FSB2_Internal1_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB2_Internal2_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- compute_FSB2_name:
type: list
required: true
entry_schema:
type: string
- port_FSB2_Internal1_mac_address:
- type: string
- required: true
- port_FSB2_Internal1_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_FSB_OAM_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB_OAM_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_FSB2_Internal1_network:
+ port_FSB2_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_FSB2_Internal2_mac_address:
- type: string
- required: true
- port_FSB_OAM_subnetpoolid:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB_OAM_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_FSB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_FSB_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
+ type: org.openecomp.datatypes.network.MacRequirements
port_FSB2_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -116,32 +38,35 @@ topology_template:
default: 0
constraints:
- greater_or_equal: 0
- port_FSB_OAM_order:
+ port_FSB2_Internal2_network:
type: list
required: true
entry_schema:
- type: integer
- port_FSB2_Internal2_network:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_FSB2_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_FSB2_Internal2_vlan_requirements:
+ port_FSB_OAM_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_FSB2_Internal1_order:
+ port_FSB2_Internal1_ip_requirements:
type: list
required: true
entry_schema:
- type: integer
- port_FSB2_Internal2_subnetpoolid:
+ type: json
+ compute_FSB2_name:
type: list
required: true
entry_schema:
type: string
- port_FSB2_Internal1_network_role_tag:
+ port_FSB2_Internal1_mac_address:
type: list
required: true
entry_schema:
@@ -150,57 +75,47 @@ topology_template:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ type: json
port_FSB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: list
required: true
- port_FSB2_Internal2_order:
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_FSB_OAM_network:
type: list
required: true
entry_schema:
- type: integer
- port_FSB2_Internal1_subnetpoolid:
+ type: string
+ port_FSB2_Internal1_network:
type: list
required: true
entry_schema:
type: string
- port_FSB_OAM_exCP_naming:
+ port_FSB2_Internal2_mac_address:
type: list
required: true
entry_schema:
- type: json
+ type: string
node_templates:
FSB2_FSB_OAM:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB_OAM_exCP_naming
- - index_value
- vlan_requirements:
+ ip_requirements:
get_input:
- - port_FSB_OAM_vlan_requirements
+ - port_FSB_OAM_ip_requirements
- index_value
- ip_requirements:
- get_input: port_FSB_OAM_ip_requirements
network_role_tag:
- get_input: port_FSB_OAM_network_role_tag
- mac_requirements:
- get_input: port_FSB_OAM_mac_requirements
- order:
get_input:
- - port_FSB_OAM_order
+ - port_FSB_OAM_network_role_tag
- index_value
- network_role:
+ mac_requirements:
get_input:
- - port_FSB_OAM_network_role
+ - port_FSB_OAM_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_FSB_OAM_subnetpoolid
+ - port_FSB_OAM_fixed_ips
- index_value
- fixed_ips:
- get_input: port_FSB_OAM_fixed_ips
network:
get_input:
- port_FSB_OAM_network
@@ -226,40 +141,22 @@ topology_template:
FSB2_FSB2_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB2_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_FSB2_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_FSB2_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_FSB2_Internal2_network_role_tag
+ - port_FSB2_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_FSB2_Internal2_mac_requirements
- order:
- get_input:
- - port_FSB2_Internal2_order
- - index_value
- network_role:
get_input:
- - port_FSB2_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_FSB2_Internal2_subnetpoolid
+ - port_FSB2_Internal2_mac_requirements
- index_value
network:
get_input:
- port_FSB2_Internal2_network
- index_value
mac_address:
- get_input: port_FSB2_Internal2_mac_address
+ get_input:
+ - port_FSB2_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -268,40 +165,22 @@ topology_template:
FSB2_FSB2_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_FSB2_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_FSB2_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_FSB2_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_FSB2_Internal1_network_role_tag
+ - port_FSB2_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_FSB2_Internal1_mac_requirements
- order:
get_input:
- - port_FSB2_Internal1_order
- - index_value
- network_role:
- get_input:
- - port_FSB2_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_FSB2_Internal1_subnetpoolid
+ - port_FSB2_Internal1_mac_requirements
- index_value
network:
get_input:
- port_FSB2_Internal1_network
- index_value
mac_address:
- get_input: port_FSB2_Internal1_mac_address
+ get_input:
+ - port_FSB2_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -556,4 +435,4 @@ topology_template:
- local_storage
link_FSB2_FSB2_Internal2:
- FSB2_FSB2_Internal2
- - link
+ - link \ 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/generalVf/out/Nested_GPB1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB1ServiceTemplate.yaml
index 6b23277221..eb3a63e8b9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB1ServiceTemplate.yaml
@@ -11,12 +11,19 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- port_GPB1_Internal1_network_role:
+ port_GPB1_Internal2_network:
type: list
required: true
entry_schema:
type: string
- port_GPB1_Internal2_network_role:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_GPB1_Internal1_network:
type: list
required: true
entry_schema:
@@ -29,103 +36,44 @@ topology_template:
vm_flavor_name:
type: string
required: true
- port_GPB1_Internal2_mac_address:
- type: string
- required: true
- port_GPB1_Internal1_order:
- type: list
- required: true
- entry_schema:
- type: integer
- vm_image_name:
- type: string
- required: true
- port_GPB1_Internal1_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_GPB1_Internal2_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_GPB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- compute_GPB1_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- port_GPB1_Internal1_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_GPB1_Internal2_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB1_Internal2_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_GPB1_Internal1_network_role_tag:
+ port_GPB1_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_GPB1_Internal2_network:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_GPB1_Internal1_mac_address:
type: list
required: true
entry_schema:
type: string
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- port_GPB1_Internal1_network:
+ port_GPB1_Internal2_mac_address:
type: list
required: true
entry_schema:
type: string
- port_GPB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_GPB1_Internal1_mac_address:
+ vm_image_name:
type: string
required: true
- port_GPB1_Internal1_subnetpoolid:
+ port_GPB1_Internal1_ip_requirements:
type: list
required: true
entry_schema:
- type: string
- port_GPB1_Internal2_subnetpoolid:
+ type: json
+ port_GPB1_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_GPB1_Internal2_network_role_tag:
+ type: org.openecomp.datatypes.network.MacRequirements
+ compute_GPB1_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_GPB1_Internal1_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB1_Internal2_order:
+ port_GPB1_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: integer
+ type: json
node_templates:
GPB1:
type: org.openecomp.resource.vfc.nodes.heat.GPB1
@@ -145,40 +93,22 @@ topology_template:
GPB1_GPB1_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_GPB1_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_GPB1_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_GPB1_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_GPB1_Internal1_network_role_tag
+ - port_GPB1_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_GPB1_Internal1_mac_requirements
- order:
get_input:
- - port_GPB1_Internal1_order
- - index_value
- network_role:
- get_input:
- - port_GPB1_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_GPB1_Internal1_subnetpoolid
+ - port_GPB1_Internal1_mac_requirements
- index_value
network:
get_input:
- port_GPB1_Internal1_network
- index_value
mac_address:
- get_input: port_GPB1_Internal1_mac_address
+ get_input:
+ - port_GPB1_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -187,40 +117,22 @@ topology_template:
GPB1_GPB1_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_GPB1_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_GPB1_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_GPB1_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_GPB1_Internal2_network_role_tag
+ - port_GPB1_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_GPB1_Internal2_mac_requirements
- order:
- get_input:
- - port_GPB1_Internal2_order
- - index_value
- network_role:
get_input:
- - port_GPB1_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_GPB1_Internal2_subnetpoolid
+ - port_GPB1_Internal2_mac_requirements
- index_value
network:
get_input:
- port_GPB1_Internal2_network
- index_value
mac_address:
- get_input: port_GPB1_Internal2_mac_address
+ get_input:
+ - port_GPB1_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -436,4 +348,4 @@ topology_template:
- local_storage
link_GPB1_GPB1_Internal1:
- GPB1_GPB1_Internal1
- - link
+ - link \ 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/generalVf/out/Nested_GPB2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB2ServiceTemplate.yaml
index 133d43efe2..d18d8f578f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_GPB2ServiceTemplate.yaml
@@ -11,74 +11,22 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- port_GPB2_Internal2_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_GPB2_Internal2_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_GPB2_Internal1_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_GPB2_Internal1_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- vm_flavor_name:
- type: string
- required: true
- port_GPB2_Internal2_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- vm_image_name:
- type: string
- required: true
- port_GPB2_Internal2_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_GPB2_Internal1_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- compute_GPB2_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_GPB2_Internal1_subnetpoolid:
+ port_GPB2_Internal2_mac_address:
type: list
required: true
entry_schema:
type: string
- port_GPB2_Internal2_subnetpoolid:
+ port_GPB2_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_GPB2_Internal2_mac_address:
- type: string
- required: true
- port_GPB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
+ type: org.openecomp.datatypes.network.MacRequirements
port_GPB2_Internal1_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_GPB2_Internal2_network_role:
+ type: json
+ port_GPB2_Internal1_network:
type: list
required: true
entry_schema:
@@ -95,32 +43,32 @@ topology_template:
required: true
entry_schema:
type: string
- port_GPB2_Internal2_exCP_naming:
- type: list
+ vm_flavor_name:
+ type: string
required: true
- entry_schema:
- type: json
- port_GPB2_Internal1_order:
+ port_GPB2_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: integer
- port_GPB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_GPB2_Internal1_exCP_naming:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_GPB2_Internal2_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_GPB2_Internal1_network_role_tag:
+ vm_image_name:
+ type: string
+ required: true
+ compute_GPB2_name:
type: list
required: true
entry_schema:
type: string
port_GPB2_Internal1_mac_address:
- type: string
+ type: list
required: true
+ entry_schema:
+ type: string
port_GPB2_Internal2_network:
type: list
required: true
@@ -130,40 +78,22 @@ topology_template:
GPB2_GPB2_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_GPB2_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_GPB2_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_GPB2_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_GPB2_Internal2_network_role_tag
+ - port_GPB2_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_GPB2_Internal2_mac_requirements
- order:
- get_input:
- - port_GPB2_Internal2_order
- - index_value
- network_role:
get_input:
- - port_GPB2_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_GPB2_Internal2_subnetpoolid
+ - port_GPB2_Internal2_mac_requirements
- index_value
network:
get_input:
- port_GPB2_Internal2_network
- index_value
mac_address:
- get_input: port_GPB2_Internal2_mac_address
+ get_input:
+ - port_GPB2_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -172,40 +102,22 @@ topology_template:
GPB2_GPB2_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_GPB2_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_GPB2_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_GPB2_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_GPB2_Internal1_network_role_tag
+ - port_GPB2_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_GPB2_Internal1_mac_requirements
- order:
- get_input:
- - port_GPB2_Internal1_order
- - index_value
- network_role:
get_input:
- - port_GPB2_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_GPB2_Internal1_subnetpoolid
+ - port_GPB2_Internal1_mac_requirements
- index_value
network:
get_input:
- port_GPB2_Internal1_network
- index_value
mac_address:
- get_input: port_GPB2_Internal1_mac_address
+ get_input:
+ - port_GPB2_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -436,4 +348,4 @@ topology_template:
- dependency
dependency_GPB2_GPB2_Internal1:
- GPB2_GPB2_Internal1
- - dependency
+ - dependency \ 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/generalVf/out/Nested_NCB1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB1ServiceTemplate.yaml
index 2da2afc1ba..4e33b89be8 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB1ServiceTemplate.yaml
@@ -11,68 +11,11 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- port_NCB1_Internal1_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB1_Internal2_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB1_Internal1_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- vm_flavor_name:
- type: string
- required: true
- compute_NCB1_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- vm_image_name:
- type: string
- required: true
- port_NCB1_Internal2_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_NCB1_Internal2_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB1_Internal1_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_NCB1_Internal1_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB1_Internal2_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_NCB1_Internal2_subnetpoolid:
+ port_NCB1_Internal2_mac_address:
type: list
required: true
entry_schema:
type: string
- port_NCB1_Internal2_mac_address:
- type: string
- required: true
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -81,31 +24,33 @@ topology_template:
constraints:
- greater_or_equal: 0
port_NCB1_Internal1_mac_address:
- type: string
- required: true
- port_NCB1_Internal1_order:
type: list
required: true
entry_schema:
- type: integer
- port_NCB1_Internal2_exCP_naming:
+ type: string
+ port_NCB1_Internal1_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_NCB1_Internal1_ip_requirements:
+ vm_flavor_name:
+ type: string
+ required: true
+ compute_NCB1_name:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB1_Internal1_vlan_requirements:
+ type: string
+ port_NCB1_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: json
- port_NCB1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB1_Internal2_mac_requirements:
+ type: list
required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
port_NCB1_Internal1_network:
type: list
required: true
@@ -116,11 +61,14 @@ topology_template:
required: true
entry_schema:
type: string
- port_NCB1_Internal2_network_role_tag:
+ vm_image_name:
+ type: string
+ required: true
+ port_NCB1_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: json
port_NCB1_Internal2_network:
type: list
required: true
@@ -145,40 +93,22 @@ topology_template:
NCB1_NCB1_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_NCB1_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_NCB1_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_NCB1_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_NCB1_Internal1_network_role_tag
+ - port_NCB1_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_NCB1_Internal1_mac_requirements
- order:
get_input:
- - port_NCB1_Internal1_order
- - index_value
- network_role:
- get_input:
- - port_NCB1_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_NCB1_Internal1_subnetpoolid
+ - port_NCB1_Internal1_mac_requirements
- index_value
network:
get_input:
- port_NCB1_Internal1_network
- index_value
mac_address:
- get_input: port_NCB1_Internal1_mac_address
+ get_input:
+ - port_NCB1_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -187,40 +117,22 @@ topology_template:
NCB1_NCB1_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_NCB1_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_NCB1_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_NCB1_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_NCB1_Internal2_network_role_tag
+ - port_NCB1_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_NCB1_Internal2_mac_requirements
- order:
- get_input:
- - port_NCB1_Internal2_order
- - index_value
- network_role:
get_input:
- - port_NCB1_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_NCB1_Internal2_subnetpoolid
+ - port_NCB1_Internal2_mac_requirements
- index_value
network:
get_input:
- port_NCB1_Internal2_network
- index_value
mac_address:
- get_input: port_NCB1_Internal2_mac_address
+ get_input:
+ - port_NCB1_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -436,4 +348,4 @@ topology_template:
- dependency
dependency_NCB1_NCB1_Internal2:
- NCB1_NCB1_Internal2
- - dependency
+ - dependency \ 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/generalVf/out/Nested_NCB2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB2ServiceTemplate.yaml
index bdc13693f5..f7525eb8f6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_NCB2ServiceTemplate.yaml
@@ -11,48 +11,6 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- compute_NCB2_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- vm_flavor_name:
- type: string
- required: true
- port_NCB2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_NCB2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- vm_image_name:
- type: string
- required: true
- port_NCB2_Internal1_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_NCB2_Internal2_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_NCB2_Internal1_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_NCB2_Internal1_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB2_Internal2_network_role:
- type: list
- required: true
- entry_schema:
- type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -65,58 +23,48 @@ topology_template:
required: true
entry_schema:
type: string
- port_NCB2_Internal2_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_NCB2_Internal2_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_NCB2_Internal2_network:
+ compute_NCB2_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_NCB2_Internal2_vlan_requirements:
+ port_NCB2_Internal2_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_NCB2_Internal1_mac_address:
- type: string
- required: true
- port_NCB2_Internal2_mac_address:
+ vm_flavor_name:
type: string
required: true
- port_NCB2_Internal1_subnetpoolid:
+ port_NCB2_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_NCB2_Internal1_network_role_tag:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB2_Internal2_network:
type: list
required: true
entry_schema:
type: string
- port_NCB2_Internal2_order:
+ port_NCB2_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: integer
- compute_NCB2_name:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_NCB2_Internal1_mac_address:
type: list
required: true
entry_schema:
type: string
- port_NCB2_Internal1_vlan_requirements:
+ port_NCB2_Internal2_mac_address:
type: list
required: true
entry_schema:
- type: json
- port_NCB2_Internal2_subnetpoolid:
+ type: string
+ vm_image_name:
+ type: string
+ required: true
+ compute_NCB2_name:
type: list
required: true
entry_schema:
@@ -125,7 +73,7 @@ topology_template:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
node_templates:
NCB2:
type: org.openecomp.resource.vfc.nodes.heat.NCB2
@@ -145,40 +93,22 @@ topology_template:
NCB2_NCB2_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_NCB2_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_NCB2_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_NCB2_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_NCB2_Internal1_network_role_tag
+ - port_NCB2_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_NCB2_Internal1_mac_requirements
- order:
- get_input:
- - port_NCB2_Internal1_order
- - index_value
- network_role:
get_input:
- - port_NCB2_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_NCB2_Internal1_subnetpoolid
+ - port_NCB2_Internal1_mac_requirements
- index_value
network:
get_input:
- port_NCB2_Internal1_network
- index_value
mac_address:
- get_input: port_NCB2_Internal1_mac_address
+ get_input:
+ - port_NCB2_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -187,40 +117,22 @@ topology_template:
NCB2_NCB2_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_NCB2_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_NCB2_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_NCB2_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_NCB2_Internal2_network_role_tag
+ - port_NCB2_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_NCB2_Internal2_mac_requirements
- order:
- get_input:
- - port_NCB2_Internal2_order
- - index_value
- network_role:
get_input:
- - port_NCB2_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_NCB2_Internal2_subnetpoolid
+ - port_NCB2_Internal2_mac_requirements
- index_value
network:
get_input:
- port_NCB2_Internal2_network
- index_value
mac_address:
- get_input: port_NCB2_Internal2_mac_address
+ get_input:
+ - port_NCB2_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -436,4 +348,4 @@ topology_template:
- link
dependency_NCB2:
- NCB2
- - dependency
+ - dependency \ 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/generalVf/out/Nested_VLC1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC1ServiceTemplate.yaml
index 9f5a49cea9..90056b2c9a 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC1ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC1ServiceTemplate.yaml
@@ -12,177 +12,54 @@ node_types:
topology_template:
inputs:
port_VLC1_Internal2_mac_address:
- type: string
- required: true
- port_VLC_GTP_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_OAM_network_role_tag:
- type: string
- required: true
- port_VLC1_Internal1_mac_address:
- type: string
- required: true
- port_VLC_GTP_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC1_Internal2_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC1_Internal2_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_A_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_VLC1_Internal2_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_B_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_SCTP_A_fixed_ips:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC1_Internal2_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_GTP_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- vm_image_name:
- type: string
- required: true
- port_VLC1_Internal1_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_B_network:
+ port_VLC1_Internal1_network:
type: list
required: true
entry_schema:
type: string
- port_VLC1_Internal1_network_role_tag:
+ port_VLC_SCTP_A_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_GTP_network:
+ port_VLC_OAM_network_role_tag:
type: list
required: true
entry_schema:
type: string
- port_VLC_GTP_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_OAM_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC1_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC1_Internal1_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC1_Internal1_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_SCTP_A_network_role_tag:
+ port_VLC1_Internal1_mac_address:
type: list
required: true
entry_schema:
type: string
- port_VLC_GTP_vlan_requirements:
+ port_VLC_GTP_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_VLC_GTP_fixed_ips:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_OAM_network:
- type: list
- required: true
- entry_schema:
- type: string
- compute_VLC1_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC1_Internal2_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC1_Internal1_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_A_network:
+ port_VLC_SCTP_A_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_VLC_SCTP_A_vlan_requirements:
- type: list
+ type: org.openecomp.datatypes.network.MacRequirements
+ vm_flavor_name:
+ type: string
required: true
- entry_schema:
- type: json
- port_VLC1_Internal1_network_role:
+ port_VLC1_Internal2_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_A_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_SCTP_B_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_SCTP_A_exCP_naming:
+ port_VLC_SCTP_B_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_VLC_OAM_vlan_requirements:
+ port_VLC_SCTP_A_fixed_ips:
type: list
required: true
entry_schema:
@@ -191,67 +68,40 @@ topology_template:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC1_Internal1_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_OAM_fixed_ips:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC1_Internal2_vlan_requirements:
- type: list
- required: true
- entry_schema:
type: json
- port_VLC_OAM_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC1_Internal2_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC1_Internal2_subnetpoolid:
- type: list
+ vm_image_name:
+ type: string
required: true
- entry_schema:
- type: string
port_VLC_SCTP_A_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_SCTP_A_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- compute_VLC1_availability_zone:
+ type: json
+ port_VLC_SCTP_B_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_OAM_subnetpoolid:
+ port_VLC_GTP_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_B_network_role_tag:
+ compute_VLC1_availability_zone:
type: list
required: true
entry_schema:
type: string
- port_VLC_OAM_order:
- type: list
- required: true
- entry_schema:
- type: integer
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -259,97 +109,72 @@ topology_template:
default: 0
constraints:
- greater_or_equal: 0
- port_VLC1_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal1_mac_requirements:
+ type: list
required: true
- port_VLC_SCTP_B_subnetpoolid:
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC_SCTP_B_fixed_ips:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_GTP_network_role:
+ type: json
+ port_VLC_GTP_mac_requirements:
type: list
required: true
entry_schema:
- type: string
- port_VLC_SCTP_A_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_GTP_fixed_ips:
type: list
required: true
entry_schema:
- type: string
- port_VLC_GTP_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
+ type: json
port_VLC_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC1_Internal1_exCP_naming:
type: list
required: true
entry_schema:
- type: json
- port_VLC_SCTP_B_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC_SCTP_B_order:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_OAM_network:
type: list
required: true
entry_schema:
- type: integer
- port_VLC_GTP_subnetpoolid:
+ type: string
+ compute_VLC1_name:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_B_vlan_requirements:
+ port_VLC_SCTP_B_mac_requirements:
type: list
required: true
entry_schema:
- type: json
- port_VLC_SCTP_B_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC1_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: json
node_templates:
VLC1_VLC_SCTP_B:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_SCTP_B_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_SCTP_B_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_SCTP_B_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_SCTP_B_network_role_tag
+ - port_VLC_SCTP_B_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_SCTP_B_mac_requirements
- order:
get_input:
- - port_VLC_SCTP_B_order
+ - port_VLC_SCTP_B_mac_requirements
- index_value
- network_role:
- get_input:
- - port_VLC_SCTP_B_network_role
- - index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_SCTP_B_subnetpoolid
+ - port_VLC_SCTP_B_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_SCTP_B_fixed_ips
network:
get_input:
- port_VLC_SCTP_B_network
@@ -362,40 +187,22 @@ topology_template:
VLC1_VLC1_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC1_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC1_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC1_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_VLC1_Internal2_network_role_tag
+ - port_VLC1_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC1_Internal2_mac_requirements
- order:
- get_input:
- - port_VLC1_Internal2_order
- - index_value
- network_role:
get_input:
- - port_VLC1_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_VLC1_Internal2_subnetpoolid
+ - port_VLC1_Internal2_mac_requirements
- index_value
network:
get_input:
- port_VLC1_Internal2_network
- index_value
mac_address:
- get_input: port_VLC1_Internal2_mac_address
+ get_input:
+ - port_VLC1_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -404,40 +211,22 @@ topology_template:
VLC1_VLC1_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC1_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC1_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC1_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_VLC1_Internal1_network_role_tag
+ - port_VLC1_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC1_Internal1_mac_requirements
- order:
- get_input:
- - port_VLC1_Internal1_order
- - index_value
- network_role:
get_input:
- - port_VLC1_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_VLC1_Internal1_subnetpoolid
+ - port_VLC1_Internal1_mac_requirements
- index_value
network:
get_input:
- port_VLC1_Internal1_network
- index_value
mac_address:
- get_input: port_VLC1_Internal1_mac_address
+ get_input:
+ - port_VLC1_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -446,34 +235,22 @@ topology_template:
VLC1_VLC_OAM:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_OAM_exCP_naming
- - index_value
- vlan_requirements:
+ ip_requirements:
get_input:
- - port_VLC_OAM_vlan_requirements
+ - port_VLC_OAM_ip_requirements
- index_value
- ip_requirements:
- get_input: port_VLC_OAM_ip_requirements
network_role_tag:
- get_input: port_VLC_OAM_network_role_tag
- mac_requirements:
- get_input: port_VLC_OAM_mac_requirements
- order:
get_input:
- - port_VLC_OAM_order
+ - port_VLC_OAM_network_role_tag
- index_value
- network_role:
+ mac_requirements:
get_input:
- - port_VLC_OAM_network_role
+ - port_VLC_OAM_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_OAM_subnetpoolid
+ - port_VLC_OAM_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_OAM_fixed_ips
network:
get_input:
- port_VLC_OAM_network
@@ -486,36 +263,18 @@ topology_template:
VLC1_VLC_SCTP_A:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_SCTP_A_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_SCTP_A_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_SCTP_A_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_SCTP_A_network_role_tag
+ - port_VLC_SCTP_A_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_SCTP_A_mac_requirements
- order:
get_input:
- - port_VLC_SCTP_A_order
+ - port_VLC_SCTP_A_mac_requirements
- index_value
- network_role:
- get_input:
- - port_VLC_SCTP_A_network_role
- - index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_SCTP_A_subnetpoolid
+ - port_VLC_SCTP_A_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_SCTP_A_fixed_ips
network:
get_input:
- port_VLC_SCTP_A_network
@@ -543,36 +302,18 @@ topology_template:
VLC1_VLC_GTP:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_GTP_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_GTP_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_GTP_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_GTP_network_role_tag
+ - port_VLC_GTP_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_GTP_mac_requirements
- order:
- get_input:
- - port_VLC_GTP_order
- - index_value
- network_role:
get_input:
- - port_VLC_GTP_network_role
+ - port_VLC_GTP_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_GTP_subnetpoolid
+ - port_VLC_GTP_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_GTP_fixed_ips
network:
get_input:
- port_VLC_GTP_network
@@ -948,4 +689,4 @@ topology_template:
- dependency
dependency_VLC1_VLC_SCTP_A:
- VLC1_VLC_SCTP_A
- - dependency
+ - dependency \ 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/generalVf/out/Nested_VLC2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC2ServiceTemplate.yaml
index 0254ce3d48..48c2c1d7b3 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC2ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out/Nested_VLC2ServiceTemplate.yaml
@@ -11,27 +11,31 @@ node_types:
derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
topology_template:
inputs:
- port_VLC_GTP_exCP_naming:
+ port_VLC_SCTP_A_network:
type: list
required: true
entry_schema:
- type: json
+ type: string
port_VLC_OAM_network_role_tag:
- type: string
+ type: list
required: true
+ entry_schema:
+ type: string
port_VLC_GTP_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC2_Internal2_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_SCTP_A_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
+ type: list
required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.MacRequirements
vm_flavor_name:
type: string
required: true
@@ -39,182 +43,70 @@ topology_template:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
+ type: json
port_VLC_SCTP_A_fixed_ips:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC2_Internal1_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal2_mac_address:
- type: string
- required: true
- port_VLC_GTP_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- vm_image_name:
- type: string
- required: true
- port_VLC2_Internal1_mac_address:
- type: string
- required: true
- port_VLC2_Internal2_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC2_Internal1_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC_SCTP_B_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_GTP_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal1_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_GTP_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_OAM_exCP_naming:
- type: list
- required: true
- entry_schema:
type: json
- port_VLC_SCTP_A_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_GTP_vlan_requirements:
+ port_VLC_OAM_ip_requirements:
type: list
required: true
entry_schema:
type: json
- port_VLC_GTP_fixed_ips:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_OAM_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal2_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_A_network:
+ port_VLC2_Internal2_mac_address:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_A_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_SCTP_A_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_SCTP_B_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_SCTP_A_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_OAM_vlan_requirements:
+ port_VLC_OAM_fixed_ips:
type: list
required: true
entry_schema:
type: json
- port_VLC_OAM_ip_requirements:
- type: list
+ vm_image_name:
+ type: string
required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC_OAM_fixed_ips:
+ port_VLC2_Internal1_mac_address:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC2_Internal1_order:
+ type: string
+ port_VLC2_Internal2_mac_requirements:
type: list
required: true
entry_schema:
- type: integer
- port_VLC_OAM_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC2_Internal1_mac_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC_SCTP_A_ip_requirements:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_VLC2_Internal2_vlan_requirements:
- type: list
- required: true
- entry_schema:
type: json
- port_VLC_SCTP_A_subnetpoolid:
+ port_VLC_SCTP_B_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_OAM_subnetpoolid:
+ port_VLC_GTP_network:
type: list
required: true
entry_schema:
type: string
- port_VLC_SCTP_B_network_role_tag:
+ port_VLC2_Internal1_ip_requirements:
type: list
required: true
entry_schema:
- type: string
+ type: json
compute_VLC2_name:
type: list
required: true
entry_schema:
type: string
- port_VLC_OAM_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC2_Internal1_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal2_network_role:
- type: list
- required: true
- entry_schema:
- type: string
index_value:
type: integer
description: Index value of this substitution service template runtime instance
@@ -222,39 +114,16 @@ topology_template:
default: 0
constraints:
- greater_or_equal: 0
- port_VLC_SCTP_B_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal2_network_role_tag:
- type: list
- required: true
- entry_schema:
- type: string
port_VLC_SCTP_B_fixed_ips:
type: list
required: true
entry_schema:
- type: org.openecomp.datatypes.heat.neutron.port.FixedIps
- port_VLC_GTP_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_A_network_role:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC2_Internal2_order:
+ type: json
+ port_VLC_GTP_mac_requirements:
type: list
required: true
entry_schema:
- type: integer
- port_VLC_GTP_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
+ type: org.openecomp.datatypes.network.MacRequirements
port_VLC2_Internal1_network:
type: list
required: true
@@ -265,53 +134,27 @@ topology_template:
required: true
entry_schema:
type: string
- port_VLC2_Internal1_exCP_naming:
+ port_VLC_GTP_fixed_ips:
type: list
required: true
entry_schema:
type: json
port_VLC_OAM_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC2_Internal1_vlan_requirements:
type: list
required: true
entry_schema:
- type: json
- port_VLC2_Internal2_subnetpoolid:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC_OAM_network:
type: list
required: true
entry_schema:
type: string
port_VLC_SCTP_B_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- port_VLC2_Internal2_exCP_naming:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_SCTP_B_order:
- type: list
- required: true
- entry_schema:
- type: integer
- port_VLC_GTP_subnetpoolid:
type: list
required: true
entry_schema:
- type: string
- port_VLC2_Internal1_subnetpoolid:
- type: list
- required: true
- entry_schema:
- type: string
- port_VLC_SCTP_B_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: json
- port_VLC_SCTP_B_network_role:
+ type: org.openecomp.datatypes.network.MacRequirements
+ port_VLC2_Internal2_network:
type: list
required: true
entry_schema:
@@ -320,40 +163,22 @@ topology_template:
VLC2_VLC2_Internal2:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC2_Internal2_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC2_Internal2_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC2_Internal2_ip_requirements
- network_role_tag:
get_input:
- - port_VLC2_Internal2_network_role_tag
+ - port_VLC2_Internal2_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC2_Internal2_mac_requirements
- order:
- get_input:
- - port_VLC2_Internal2_order
- - index_value
- network_role:
get_input:
- - port_VLC2_Internal2_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_VLC2_Internal2_subnetpoolid
+ - port_VLC2_Internal2_mac_requirements
- index_value
network:
get_input:
- port_VLC2_Internal2_network
- index_value
mac_address:
- get_input: port_VLC2_Internal2_mac_address
+ get_input:
+ - port_VLC2_Internal2_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -362,34 +187,22 @@ topology_template:
VLC2_VLC_OAM:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_OAM_exCP_naming
- - index_value
- vlan_requirements:
+ ip_requirements:
get_input:
- - port_VLC_OAM_vlan_requirements
+ - port_VLC_OAM_ip_requirements
- index_value
- ip_requirements:
- get_input: port_VLC_OAM_ip_requirements
network_role_tag:
- get_input: port_VLC_OAM_network_role_tag
- mac_requirements:
- get_input: port_VLC_OAM_mac_requirements
- order:
get_input:
- - port_VLC_OAM_order
+ - port_VLC_OAM_network_role_tag
- index_value
- network_role:
+ mac_requirements:
get_input:
- - port_VLC_OAM_network_role
+ - port_VLC_OAM_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_OAM_subnetpoolid
+ - port_VLC_OAM_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_OAM_fixed_ips
network:
get_input:
- port_VLC_OAM_network
@@ -402,40 +215,22 @@ topology_template:
VLC2_VLC2_Internal1:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC2_Internal1_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC2_Internal1_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC2_Internal1_ip_requirements
- network_role_tag:
get_input:
- - port_VLC2_Internal1_network_role_tag
+ - port_VLC2_Internal1_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC2_Internal1_mac_requirements
- order:
get_input:
- - port_VLC2_Internal1_order
- - index_value
- network_role:
- get_input:
- - port_VLC2_Internal1_network_role
- - index_value
- subnetpoolid:
- get_input:
- - port_VLC2_Internal1_subnetpoolid
+ - port_VLC2_Internal1_mac_requirements
- index_value
network:
get_input:
- port_VLC2_Internal1_network
- index_value
mac_address:
- get_input: port_VLC2_Internal1_mac_address
+ get_input:
+ - port_VLC2_Internal1_mac_address
+ - index_value
requirements:
- binding:
capability: tosca.capabilities.network.Bindable
@@ -444,36 +239,18 @@ topology_template:
VLC2_VLC_SCTP_A:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_SCTP_A_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_SCTP_A_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_SCTP_A_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_SCTP_A_network_role_tag
+ - port_VLC_SCTP_A_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_SCTP_A_mac_requirements
- order:
get_input:
- - port_VLC_SCTP_A_order
+ - port_VLC_SCTP_A_mac_requirements
- index_value
- network_role:
- get_input:
- - port_VLC_SCTP_A_network_role
- - index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_SCTP_A_subnetpoolid
+ - port_VLC_SCTP_A_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_SCTP_A_fixed_ips
network:
get_input:
- port_VLC_SCTP_A_network
@@ -486,36 +263,18 @@ topology_template:
VLC2_VLC_SCTP_B:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_SCTP_B_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_SCTP_B_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_SCTP_B_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_SCTP_B_network_role_tag
+ - port_VLC_SCTP_B_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_SCTP_B_mac_requirements
- order:
get_input:
- - port_VLC_SCTP_B_order
+ - port_VLC_SCTP_B_mac_requirements
- index_value
- network_role:
- get_input:
- - port_VLC_SCTP_B_network_role
- - index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_SCTP_B_subnetpoolid
+ - port_VLC_SCTP_B_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_SCTP_B_fixed_ips
network:
get_input:
- port_VLC_SCTP_B_network
@@ -528,36 +287,18 @@ topology_template:
VLC2_VLC_GTP:
type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
properties:
- exCP_naming:
- get_input:
- - port_VLC_GTP_exCP_naming
- - index_value
- vlan_requirements:
- get_input:
- - port_VLC_GTP_vlan_requirements
- - index_value
ip_requirements:
- get_input: port_VLC_GTP_ip_requirements
- network_role_tag:
get_input:
- - port_VLC_GTP_network_role_tag
+ - port_VLC_GTP_ip_requirements
- index_value
mac_requirements:
- get_input: port_VLC_GTP_mac_requirements
- order:
- get_input:
- - port_VLC_GTP_order
- - index_value
- network_role:
get_input:
- - port_VLC_GTP_network_role
+ - port_VLC_GTP_mac_requirements
- index_value
- subnetpoolid:
+ fixed_ips:
get_input:
- - port_VLC_GTP_subnetpoolid
+ - port_VLC_GTP_fixed_ips
- index_value
- fixed_ips:
- get_input: port_VLC_GTP_fixed_ips
network:
get_input:
- port_VLC_GTP_network
@@ -948,4 +689,4 @@ topology_template:
- dependency
dependency_VLC2_VLC_GTP:
- VLC2_VLC_GTP
- - dependency
+ - dependency \ 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/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/MANIFEST.json
new file mode 100644
index 0000000000..40c2b4c296
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "hot-mog",
+ "description": "HOT template to create hot mog server",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-mog-0108-bs1271.yml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-mog-0108-bs1271.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.env
new file mode 100644
index 0000000000..40b3e20438
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.env
@@ -0,0 +1,6 @@
+parameters:
+ pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+ pd_image_name: MOG_BASE_8.0
+ pd_flavor_name: m3.xlarge
+ availabilityzone_name: nova
+ dummy_net_name_1: mog_dummy_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/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.yml
new file mode 100644
index 0000000000..a60998e147
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/in/hot-mog-0108-bs1271.yml
@@ -0,0 +1,229 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates MOG stack
+
+parameters:
+ pd_server_names:
+ type: comma_delimited_list
+ label: PD server names
+ description: name of the PD instance
+ pd_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ pd_flavor_name:
+ type: string
+ label: PD flavor name
+ description: flavor name of PD instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ pd_security_group_name:
+ type: string
+ label: pd_security_group_name
+ description: pd_security_group_name
+ dummy_net_name_1:
+ type: string
+ label: csb ineternal cidr
+ description: csb internal cidr
+ lb_st_interface_type_oam:
+ description: dummy
+ type: string
+ lb_st_interface_vlan_tag_oam:
+ description: dummy
+ type: string
+ template_PortTuple_LB1:
+ description: dummy
+ type: string
+ oam_sec_group_name:
+ description: dummy
+ type: string
+ jsa_net_name:
+ description: dummy
+ type: string
+ nems_traffic_name:
+ description: dummy
+ type: string
+ pd_port_fixed_ips_address:
+ description: dummy
+ type: string
+ pd_port_fixed_ips_subnet:
+ description: dummy
+ type: string
+ mac_address:
+ description: dummy
+ type: string
+ virtual_ip_address:
+ description: dummy
+ type: string
+ virtual_ipv6_address:
+ description: dummy
+ type: string
+ parent_interface:
+ description: dummy
+ type: string
+
+resources:
+ server_pd_01:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ admin_pass: SERVER_PD_ADMIN_PASS
+ config_drive: true
+ diskConfig: AUTO
+ flavor_update_policy: REPLACE
+ image_update_policy: REBUILD_PRESERVE_EPHEMERAL
+ key_name: SERVER_PD_KEY_NAME
+ metadata: {value: SERVER_PD_METADATA}
+ personality: {value: SERVER_PD_PERSONALITY}
+ reservation_id: SERVER_PD_RESERVATION_ID
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ security_groups: [{ get_param: pd_security_group_name }]
+ software_config_transport: POLL_SERVER_HEAT
+ user_data_update_policy: IGNORE
+ user_data_format: RAW
+ networks:
+ - port: {get_resource: pd01_port_0}
+ - port: {get_resource: template_VMInt_OAM_lb_4}
+
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: PORT_PD_NETWORK
+ network_id: PORT_PD_NETWORK_ID
+ admin_state_up: true
+ allowed_address_pairs: [
+ {ip_address: 10.12.13.134, mac_address: 00-14-22-01-23-45},
+ {ip_address: 127.0.13.134, mac_address: 00-13-24-01-44-35}
+ ]
+ binding:vnic_type: direct-physical
+ device_id: PORT_PD_DEVICE_ID
+ device_owner: PORT_PD_DEVICE_OWNER
+ mac_address: 00-13-24-01-44-35
+ name: PORT_PD_NAME
+ port_security_enabled: false
+ qos_policy: PORT_PD_QOS_POLICY
+ security_groups: [{get_resource: DB_Affinity}]
+ value_specs: {value: PORT_PD_VALUE_SPECS}
+ replacement_policy: AUTO
+ fixed_ips:
+ - ip_address: { get_param: pd_port_fixed_ips_address }
+ - subnet: {get_param: pd_port_fixed_ips_subnet}
+
+ template_VMInt_OAM_lb_4:
+ type: OS::ContrailV2::VirtualMachineInterface
+ properties:
+ virtual_machine_interface_properties:
+ {
+ virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam }
+ #virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_interface_vlan_tag_oam }
+ }
+ virtual_network_refs: [{ get_attr: [ jsa_net4, fq_name ] } ]
+ port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
+ security_group_refs: [{ get_param: oam_sec_group_name}]
+ name: template_VMInt_OAM_lb_NAME
+ virtual_machine_interface_mac_addresses:
+ {
+ virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }]
+ }
+ virtual_machine_interface_allowed_address_pairs:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+ }
+ },
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+ }
+ }
+ ]
+ }
+ virtual_machine_interface_refs: [{ get_param: parent_interface }]
+
+ cmaui_volume_test_compute_properties:
+ type: OS::Cinder::Volume
+ properties:
+ availability_zone: {get_attr: [server_pd_01, console_urls ] }
+ backup_id: {get_attr: [server_pd_01, instance_name ] }
+ description: {get_attr: [server_pd_01, show ] }
+ #image: {get_attr: [server_pd_01, config_drive ] }
+ #metadata: {get_attr: [server_pd_01, instance_name ] }
+ multiattach: {get_attr: [server_pd_01, addresses ] }
+ #name: {get_attr: [server_pd_01, image ] }
+ #read_only: false
+ #scheduler_hints: {get_attr: [server_pd_01, key_name ] }
+ #size: {get_attr: [server_pd_01, diskConfig ] }
+ #snapshot_id: {get_attr: [server_pd_01, name ] }
+ #source_volid: {get_attr: [server_pd_01, personality ] }
+ #volume_id: {get_attr: [server_pd_01, reservation_id ] }
+ #volume_type: {get_attr: [server_pd_01, scheduler_hints ] }
+ #delete_on_termination: {get_attr: [server_pd_01, security_groups ] }
+ #volume_size: {get_attr: [server_pd_01, software_config_transport ] }
+ #device_type: {get_attr: [server_pd_01, user_data_format ] }
+ #disk_bus: {get_attr: [server_pd_01, user_data_update_policy ] }
+ swap_size: {get_attr: [server_pd_01, accessIPv4 ] }
+ image_id: {get_attr: [server_pd_01, accessIPv6 ] }
+
+ cmaui_volume_test_neutron_port_properties:
+ type: OS::Cinder::Volume
+ properties:
+ backup_id: {get_attr: [pd01_port_0, network ] }
+ image: {get_attr: [pd01_port_0, admin_state_up ] }
+ metadata: {get_attr: [pd01_port_0, allowed_address_pairs ] }
+ name: {get_attr: [pd01_port_0, device_id ] }
+ read_only: {get_attr: [pd01_port_0, device_owner ] }
+ scheduler_hints: {get_attr: [pd01_port_0, fixed_ips ] }
+ size: {get_attr: [pd01_port_0, mac_address ] }
+ snapshot_id: {get_attr: [pd01_port_0, name ] }
+ source_volid: {get_attr: [pd01_port_0, port_security_enabled ] }
+ volume_id: {get_attr: [pd01_port_0, qos_policy ] }
+ volume_type: {get_attr: [pd01_port_0, security_groups ] }
+ volume_size: {get_attr: [pd01_port_0, network_id ] }
+ device_type: {get_attr: [pd01_port_0, show ] }
+ delete_on_termination: {get_attr: [pd01_port_0, status ] }
+ disk_bus: {get_attr: [pd01_port_0, subnets ] }
+ swap_size: {get_attr: [pd01_port_0, tenant_id ] }
+
+ cmaui_volume_test_contrailv2_VMI_properties:
+ type: OS::Cinder::Volume
+ properties:
+ availability_zone: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_mac_addresses, virtual_machine_interface_mac_addresses_mac_address ] }
+ description: {get_attr: [template_VMInt_OAM_lb_4, virtual_network_refs ] }
+ image: {get_attr: [template_VMInt_OAM_lb_4, port_tuple_refs ] }
+ metadata: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_mac_addresses ] }
+ multiattach: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_properties ] }
+ name: {get_attr: [template_VMInt_OAM_lb_4, name ] }
+ size: 50
+ snapshot_id: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, 0, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode ] }
+ source_volid: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, 0, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac ] }
+ volume_id: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, 0, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix ] }
+ volume_type: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, 0, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len ] }
+ device_type: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_properties, virtual_machine_interface_properties_service_interface_type] }
+ disk_bus: {get_attr: [template_VMInt_OAM_lb_4, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, 0, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip ] }
+ delete_on_termination: {get_attr: [template_VMInt_OAM_lb_4, fq_name ] }
+ swap_size: {get_attr: [template_VMInt_OAM_lb_4, show ] }
+
+ jsa_net4:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: nems_traffic_name}
+
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"] \ 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
new file mode 100644
index 0000000000..6f8a16604a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,833 @@
+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.pd_server:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ 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
+ requirements:
+ - dependency_pd_server:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_pd_server:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - dependency_pd_server_template_VMInt_OAM_lb:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_template_VMInt_OAM_lb:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - dependency_pd_server_pd01_port:
+ capability: tosca.capabilities.Node
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.DependsOn
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pd_server_pd01_port:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ scalable_pd_server:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.bytes.rate_pd_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_pd_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_pd_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.usage_pd_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.packets.rate_pd_server_pd01_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_pd_server_template_VMInt_OAM_lb:
+ type: org.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_pd_server:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.write.bytes.rate_pd_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_pd_server_pd01_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_pd_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.outpoing.packets_pd_server_template_VMInt_OAM_lb:
+ type: org.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_pd_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_pd_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_pd_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_pd_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_pd_server_pd01_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.iops_pd_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_pd_server_template_VMInt_OAM_lb:
+ type: org.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_pd_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_pd_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_pd_server_pd01_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_pd_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.rate_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pd_server_pd01_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outgoing.bytes_pd_server_template_VMInt_OAM_lb:
+ type: org.openecomp.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_pd_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_pd_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_pd_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_pd_server:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.read.requests_pd_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_pd_server:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.usage_pd_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_pd_server_pd01_port:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.bytes_pd_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_pd_server_pd01_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_pd_server_pd01_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_pd_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_pd_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_pd_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_pd_server_template_VMInt_OAM_lb:
+ type: org.openecomp.capabilities.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_pd_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_pd_server_template_VMInt_OAM_lb:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.read.requests_pd_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_pd_server_template_VMInt_OAM_lb:
+ type: org.openecomp.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_pd_server_template_VMInt_OAM_lb:
+ type: org.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_pd_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_pd_server:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ network.outpoing.packets_pd_server_pd01_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_pd_server_template_VMInt_OAM_lb:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+ disk.write.requests.rate_pd_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.ephemeral.size_pd_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_pd_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_pd_server_template_VMInt_OAM_lb:
+ type: org.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_pd01_port:
+ type: tosca.capabilities.Node
+ occurrences:
+ - 1
+ - UNBOUNDED
+ disk.device.latency_pd_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_pd_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_pd_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_pd_server_pd01_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_pd_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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..5d546b60d4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/MainServiceTemplate.yaml
@@ -0,0 +1,417 @@
+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:
+ pd_flavor_name:
+ label: PD flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PD instance
+ default: m3.xlarge
+ dummy_net_name_1:
+ label: csb ineternal cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: csb internal cidr
+ default: mog_dummy_1
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ template_PortTuple_LB1:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ lb_st_interface_type_oam:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ oam_sec_group_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ virtual_ip_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ nems_traffic_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ pd_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PD image name
+ default: MOG_BASE_8.0
+ pd_server_names:
+ label: PD server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PD instance
+ default:
+ - ZRDM1MOGX01MPD001
+ - ZRDM1MOGX01MPD002
+ entry_schema:
+ type: string
+ pd_security_group_name:
+ label: pd_security_group_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pd_security_group_name
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ pd_port_fixed_ips_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ parent_interface:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ virtual_ipv6_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ mac_address:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ pd_port_fixed_ips_subnet:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ lb_st_interface_vlan_tag_oam:
+ hidden: false
+ immutable: false
+ type: string
+ description: dummy
+ node_templates:
+ cmaui_volume_test_contrailv2_VMI_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses
+ - mac_address
+ image:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_port_tuple_refs
+ metadata:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses
+ volume_type:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - allowed_address_pair
+ - 0
+ - ip
+ - ip_prefix_len
+ volume_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - allowed_address_pair
+ - 0
+ - ip
+ - ip_prefix
+ snapshot_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - allowed_address_pair
+ - 0
+ - address_mode
+ description:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_network_refs
+ device_type:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_properties
+ - virtual_machine_interface_properties_service_interface_type
+ disk_bus:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - allowed_address_pair
+ - 0
+ - ip
+ source_volid:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - allowed_address_pair
+ - 0
+ - mac
+ size: 50*1024
+ name:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_name
+ swap_size:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_show
+ delete_on_termination:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_fq_name
+ multiattach:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_template_VMInt_OAM_lb_virtual_machine_interface_properties
+ cmaui_volume_test_neutron_port_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ image:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_admin_state_up
+ metadata:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_allowed_address_pairs
+ volume_type:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_security_groups
+ volume_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_qos_policy
+ snapshot_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_name
+ device_type:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_show
+ disk_bus:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_subnets
+ backup_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_network
+ source_volid:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_port_security_enabled
+ size: '(get_attribute : [pd01_port_0, network]) * 1024'
+ read_only:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_device_owner
+ name:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_device_id
+ scheduler_hints:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_fixed_ips
+ swap_size:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_tenant_id
+ delete_on_termination:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_pd01_port_status
+ jsa_net4:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ network_name:
+ get_input: nems_traffic_name
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
+ directives:
+ - substitutable
+ properties:
+ compute_pd_server_key_name:
+ - SERVER_PD_KEY_NAME
+ port_pd01_port_replacement_policy:
+ - AUTO
+ compute_pd_server_personality:
+ - value: SERVER_PD_PERSONALITY
+ compute_pd_server_image_update_policy:
+ - REBUILD_PRESERVE_EPHEMERAL
+ vm_flavor_name:
+ get_input: pd_flavor_name
+ port_pd01_port_security_groups:
+ - - DB_Affinity_group
+ port_pd01_port_mac_requirements:
+ mac_count_required:
+ is_required: true
+ vm_image_name:
+ get_input: pd_image_name
+ port_pd01_port_device_id:
+ - PORT_PD_DEVICE_ID
+ port_pd01_port_admin_state_up:
+ - true
+ compute_pd_server_metadata:
+ - value: SERVER_PD_METADATA
+ compute_pd_server_diskConfig:
+ - AUTO
+ port_pd01_port_mac_address: 00-13-24-01-44-35
+ port_pd01_port_allowed_address_pairs:
+ - mac_address: 00-14-22-01-23-45
+ ip_address: 10.12.13.134
+ - mac_address: 00-13-24-01-44-35
+ ip_address: 127.0.13.134
+ compute_pd_server_admin_pass:
+ - SERVER_PD_ADMIN_PASS
+ compute_pd_server_flavor_update_policy:
+ - REPLACE
+ port_pd01_port_value_specs:
+ - value: PORT_PD_VALUE_SPECS
+ compute_pd_server_security_groups:
+ - - get_input: pd_security_group_name
+ port_template_VMInt_OAM_lb_port_tuple_refs:
+ - - get_input: template_PortTuple_LB1
+ compute_pd_server_software_config_transport:
+ - POLL_SERVER_HEAT
+ compute_pd_server_scheduler_hints:
+ - group: DB_Affinity_group
+ port_pd01_port_name:
+ - PORT_PD_NAME
+ compute_pd_server_contrail_service_instance_ind:
+ - true
+ compute_pd_server_availability_zone:
+ - get_input: availabilityzone_name
+ compute_pd_server_name:
+ - get_input:
+ - pd_server_names
+ - 0
+ port_pd01_port_binding:vnic_type:
+ - direct-physical
+ port_pd01_port_device_owner:
+ - PORT_PD_DEVICE_OWNER
+ port_pd01_port_fixed_ips:
+ - ip_address:
+ get_input: pd_port_fixed_ips_address
+ - subnet:
+ get_input: pd_port_fixed_ips_subnet
+ port_pd01_port_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: true
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_qos_policy:
+ - PORT_PD_QOS_POLICY
+ compute_pd_server_config_drive:
+ - true
+ compute_pd_server_user_data_format:
+ - RAW
+ port_template_VMInt_OAM_lb_virtual_network_refs:
+ - - get_attribute:
+ - jsa_net4
+ - fq_name
+ port_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses:
+ - - get_input: mac_address
+ port_template_VMInt_OAM_lb_name:
+ - template_VMInt_OAM_lb_NAME
+ port_pd01_port_port_security_enabled:
+ - false
+ compute_pd_server_user_data_update_policy:
+ - IGNORE
+ port_pd01_port_network:
+ - PORT_PD_NETWORK_ID
+ compute_pd_server_reservation_id:
+ - SERVER_PD_RESERVATION_ID
+ port_template_VMInt_OAM_lb_security_group_refs:
+ - - get_input: oam_sec_group_name
+ service_template_filter:
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ cmaui_volume_test_compute_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_console_urls
+ backup_id:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_instance_name
+ image:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_accessIPv6
+ swap_size:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_accessIPv4
+ description:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_show
+ multiattach:
+ get_attribute:
+ - abstract_pd_server
+ - pd_server_addresses
+ groups:
+ DB_Affinity_group:
+ type: tosca.groups.Root
+ members:
+ - abstract_pd_server
+ hot-mog-0108-bs1271_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
+ description: heat template that creates MOG stack
+ members:
+ - cmaui_volume_test_contrailv2_VMI_properties
+ - cmaui_volume_test_neutron_port_properties
+ - jsa_net4
+ - cmaui_volume_test_compute_properties
+ - abstract_pd_server
+ policies:
+ DB_Affinity_policy:
+ type: org.openecomp.policies.placement.Antilocate
+ properties:
+ container_type: host
+ targets:
+ - DB_Affinity_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..b834aaab1b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/inputOutputParamType/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,867 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ compute_pd_server_key_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_replacement_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_personality:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_image_update_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_template_VMInt_OAM_lb_virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ required: true
+ port_pd01_port_device_id:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_admin_state_up:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_metadata:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_subnetpoolid:
+ type: string
+ required: true
+ compute_pd_server_diskConfig:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_mac_address:
+ type: string
+ required: true
+ port_template_VMInt_OAM_lb_network_role:
+ type: string
+ required: true
+ port_pd01_port_allowed_address_pairs:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ compute_pd_server_admin_pass:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_flavor_update_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_template_VMInt_OAM_lb_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ port_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ required: true
+ port_pd01_port_value_specs:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_security_groups:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_port_tuple_refs:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ compute_pd_server_software_config_transport:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ compute_pd_server_scheduler_hints:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_pd01_port_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_contrail_service_instance_ind:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_network_role_tag:
+ type: string
+ required: true
+ port_pd01_port_binding:vnic_type:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_device_owner:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_fixed_ips:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_qos_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_config_drive:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_template_VMInt_OAM_lb_virtual_network_refs:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ port_template_VMInt_OAM_lb_order:
+ type: integer
+ required: true
+ port_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ port_template_VMInt_OAM_lb_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_port_security_enabled:
+ type: list
+ required: true
+ entry_schema:
+ type: boolean
+ port_template_VMInt_OAM_lb_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_update_policy:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_reservation_id:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ port_template_VMInt_OAM_lb_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ port_template_VMInt_OAM_lb_security_group_refs:
+ type: list
+ required: true
+ entry_schema:
+ type: json
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ admin_pass:
+ get_input:
+ - compute_pd_server_admin_pass
+ - index_value
+ key_name:
+ get_input:
+ - compute_pd_server_key_name
+ - index_value
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ metadata:
+ get_input:
+ - compute_pd_server_metadata
+ - index_value
+ contrail_service_instance_ind:
+ get_input:
+ - compute_pd_server_contrail_service_instance_ind
+ - index_value
+ scheduler_hints:
+ get_input:
+ - compute_pd_server_scheduler_hints
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ user_data_update_policy:
+ get_input:
+ - compute_pd_server_user_data_update_policy
+ - index_value
+ security_groups:
+ get_input:
+ - compute_pd_server_security_groups
+ - index_value
+ personality:
+ get_input:
+ - compute_pd_server_personality
+ - index_value
+ software_config_transport:
+ get_input:
+ - compute_pd_server_software_config_transport
+ - index_value
+ config_drive:
+ get_input:
+ - compute_pd_server_config_drive
+ - index_value
+ image:
+ get_input: vm_image_name
+ diskConfig:
+ get_input:
+ - compute_pd_server_diskConfig
+ - index_value
+ reservation_id:
+ get_input:
+ - compute_pd_server_reservation_id
+ - index_value
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ image_update_policy:
+ get_input:
+ - compute_pd_server_image_update_policy
+ - index_value
+ flavor_update_policy:
+ get_input:
+ - compute_pd_server_flavor_update_policy
+ - index_value
+ pd_server_template_VMInt_OAM_lb:
+ type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+ properties:
+ mac_requirements:
+ get_input: port_template_VMInt_OAM_lb_mac_requirements
+ order:
+ get_input: port_template_VMInt_OAM_lb_order
+ exCP_naming:
+ get_input: port_template_VMInt_OAM_lb_exCP_naming
+ virtual_machine_interface_allowed_address_pairs:
+ get_input:
+ - port_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs
+ - index_value
+ vlan_requirements:
+ get_input: port_template_VMInt_OAM_lb_vlan_requirements
+ virtual_machine_interface_properties:
+ get_input:
+ - port_template_VMInt_OAM_lb_virtual_machine_interface_properties
+ - index_value
+ security_group_refs:
+ get_input:
+ - port_template_VMInt_OAM_lb_security_group_refs
+ - index_value
+ virtual_network_refs:
+ get_input:
+ - port_template_VMInt_OAM_lb_virtual_network_refs
+ - index_value
+ ip_requirements:
+ get_input: port_template_VMInt_OAM_lb_ip_requirements
+ network_role_tag:
+ get_input: port_template_VMInt_OAM_lb_network_role_tag
+ virtual_machine_interface_mac_addresses:
+ get_input:
+ - port_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses
+ - index_value
+ port_tuple_refs:
+ get_input:
+ - port_template_VMInt_OAM_lb_port_tuple_refs
+ - index_value
+ network_role:
+ get_input: port_template_VMInt_OAM_lb_network_role
+ subnetpoolid:
+ get_input: port_template_VMInt_OAM_lb_subnetpoolid
+ name:
+ get_input:
+ - port_template_VMInt_OAM_lb_name
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ pd_server_pd01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy:
+ get_input:
+ - port_pd01_port_replacement_policy
+ - index_value
+ mac_requirements:
+ get_input: port_pd01_port_mac_requirements
+ allowed_address_pairs:
+ get_input: port_pd01_port_allowed_address_pairs
+ order:
+ get_input: port_pd01_port_order
+ binding:vnic_type:
+ get_input:
+ - port_pd01_port_binding:vnic_type
+ - index_value
+ device_owner:
+ get_input:
+ - port_pd01_port_device_owner
+ - index_value
+ mac_address:
+ get_input: port_pd01_port_mac_address
+ value_specs:
+ get_input:
+ - port_pd01_port_value_specs
+ - index_value
+ security_groups:
+ get_input:
+ - port_pd01_port_security_groups
+ - index_value
+ exCP_naming:
+ get_input: port_pd01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd01_port_vlan_requirements
+ qos_policy:
+ get_input:
+ - port_pd01_port_qos_policy
+ - index_value
+ ip_requirements:
+ get_input: port_pd01_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd01_port_network_role_tag
+ port_security_enabled:
+ get_input:
+ - port_pd01_port_port_security_enabled
+ - index_value
+ admin_state_up:
+ get_input:
+ - port_pd01_port_admin_state_up
+ - index_value
+ network_role:
+ get_input: port_pd01_port_network_role
+ subnetpoolid:
+ get_input: port_pd01_port_subnetpoolid
+ fixed_ips:
+ get_input: port_pd01_port_fixed_ips
+ name:
+ get_input:
+ - port_pd01_port_name
+ - index_value
+ device_id:
+ get_input:
+ - port_pd01_port_device_id
+ - index_value
+ network:
+ get_input:
+ - port_pd01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ outputs:
+ pd_server_pd01_port_allowed_address_pairs:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - allowed_address_pairs
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_mac_addresses:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - virtual_machine_interface_mac_addresses
+ entry_schema:
+ type: string
+ pd_server_template_VMInt_OAM_lb_virtual_network_refs:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - virtual_network_refs
+ entry_schema:
+ type: string
+ pd_server_template_VMInt_OAM_lb_fq_name:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - fq_name
+ pd_server_show:
+ type: string
+ value:
+ get_attribute:
+ - pd_server
+ - show
+ pd_server_console_urls:
+ type: string
+ value:
+ get_attribute:
+ - pd_server
+ - console_urls
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_allowed_address_pairs:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - virtual_machine_interface_allowed_address_pairs
+ pd_server_pd01_port_security_groups:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - security_groups
+ entry_schema:
+ type: string
+ pd_server_pd01_port_port_security_enabled:
+ type: boolean
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - port_security_enabled
+ pd_server_pd01_port_status:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - status
+ pd_server_template_VMInt_OAM_lb_port_tuple_refs:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - port_tuple_refs
+ entry_schema:
+ type: string
+ pd_server_pd01_port_fixed_ips:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - fixed_ips
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ pd_server_accessIPv6:
+ type: string
+ value:
+ get_attribute:
+ - pd_server
+ - accessIPv6
+ pd_server_pd01_port_admin_state_up:
+ type: boolean
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - admin_state_up
+ pd_server_instance_name:
+ type: string
+ value:
+ get_attribute:
+ - pd_server
+ - instance_name
+ pd_server_template_VMInt_OAM_lb_name:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - name
+ pd_server_accessIPv4:
+ type: string
+ value:
+ get_attribute:
+ - pd_server
+ - accessIPv4
+ pd_server_pd01_port_device_owner:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - device_owner
+ pd_server_pd01_port_show:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - show
+ pd_server_pd01_port_network:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - network
+ pd_server_pd01_port_qos_policy:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - qos_policy
+ pd_server_pd01_port_mac_address:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - mac_address
+ pd_server_addresses:
+ type: map
+ value:
+ get_attribute:
+ - pd_server
+ - addresses
+ entry_schema:
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+ pd_server_pd01_port_tenant_id:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - tenant_id
+ pd_server_template_VMInt_OAM_lb_virtual_machine_interface_properties:
+ type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - virtual_machine_interface_properties
+ pd_server_pd01_port_device_id:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - device_id
+ pd_server_pd01_port_name:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - name
+ pd_server_template_VMInt_OAM_lb_show:
+ type: string
+ value:
+ get_attribute:
+ - pd_server_template_VMInt_OAM_lb
+ - show
+ pd_server_pd01_port_subnets:
+ type: list
+ value:
+ get_attribute:
+ - pd_server_pd01_port
+ - subnets
+ entry_schema:
+ type: string
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ network.outgoing.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.packets.rate
+ network.outgoing.packets.rate_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.outgoing.packets.rate
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.incoming.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ network.outpoing.packets_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.outpoing.packets
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ network.incoming.packets.rate_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.incoming.packets.rate
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ attachment_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - attachment
+ network.outgoing.bytes_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.outgoing.bytes
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ binding_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - binding
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.incoming.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ network.incoming.bytes_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.incoming.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ feature_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - feature
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ network.incoming.bytes.rate_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.incoming.bytes.rate
+ network.incoming.packets_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.incoming.packets
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.outpoing.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outpoing.packets
+ binding_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - binding
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ network.outgoing.bytes.rate_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - network.outgoing.bytes.rate
+ feature_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - feature
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ network.outgoing.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes.rate
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ dependency_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - dependency
+ link_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - link
+ dependency_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
+ link_pd_server_template_VMInt_OAM_lb:
+ - pd_server_template_VMInt_OAM_lb
+ - link
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 27c09dd6f4..31466870a4 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
@@ -128,15 +128,11 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/Nested_pd_serverServiceTemplate.yaml
index 21e31509e7..62a1f4e1e6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -183,21 +183,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port
- device_owner
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
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 5b0d254fda..deb8b3db25 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
@@ -128,20 +128,14 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_1_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_0_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
index a55c9d4f43..24e44ad1ac 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -183,29 +183,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_1_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port_1
- device_owner
- entry_schema:
- type: string
pd_server_pd01_port_0_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port_0
- device_owner
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
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 0ef3218a86..3cf557e3a7 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
@@ -128,20 +128,14 @@ node_types:
type: string
attributes:
pd_server_pd01_port_0_device_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_1_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
index 0ab61b87f4..feb25c4662 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out/Nested_pd_serverServiceTemplate.yaml
@@ -183,29 +183,23 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_pd01_port_0_device_id:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port_0
- device_id
- entry_schema:
- type: string
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_1_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port_1
- device_owner
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
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 753e1c5654..242eb47cbc 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
@@ -98,15 +98,11 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
@@ -536,10 +532,8 @@ node_types:
type: json
attributes:
oam_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_oam_server_pd01_port:
capability: tosca.capabilities.Node
@@ -969,15 +963,11 @@ node_types:
type: org.openecomp.datatypes.network.VlanRequirements
attributes:
ps_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
ps_server_pd01_port_device_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_ps_server_pd01_port:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_oam_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_oam_serverServiceTemplate.yaml
index edf8bd21d5..b8e5a718c7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_oam_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_oam_serverServiceTemplate.yaml
@@ -140,13 +140,11 @@ topology_template:
- index_value
outputs:
oam_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- oam_server
- accessIPv4
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.oam_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_pd_serverServiceTemplate.yaml
index 19c74bf61a..f12470a8c5 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_pd_serverServiceTemplate.yaml
@@ -140,21 +140,17 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
pd_server_pd01_port_device_owner:
- type: list
+ type: string
value:
get_attribute:
- pd_server_pd01_port
- device_owner
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_ps_serverServiceTemplate.yaml
index c9443f5c9d..fbfc486926 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_ps_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/Nested_ps_serverServiceTemplate.yaml
@@ -140,21 +140,17 @@ topology_template:
- index_value
outputs:
ps_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- ps_server
- accessIPv4
- entry_schema:
- type: string
ps_server_pd01_port_device_id:
- type: list
+ type: string
value:
get_attribute:
- ps_server_pd01_port
- device_id
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.ps_server
capabilities:
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 44ad0fecd5..8a723e741d 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,7 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.pd_server_0:
+ org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
index_value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/MainServiceTemplate.yaml
index 46f451d8a2..217da7b6a9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/MainServiceTemplate.yaml
@@ -185,8 +185,8 @@ topology_template:
network_role_tag: oam
network:
get_input: oam_net_name
- abstract_pd_server_2:
- type: org.openecomp.resource.abstract.nodes.pd_server_2
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -195,7 +195,7 @@ topology_template:
compute_pd_server_name:
- get_input:
- pd_server_names
- - 2
+ - 1
vm_flavor_name:
get_input: pd_flavor_name
port_pd01_port_mac_requirements:
@@ -209,26 +209,18 @@ topology_template:
is_required: false
floating_ip_count_required:
is_required: false
- port_pd01_port_network:
- - get_input: oam_net_name
- port_pd01_port_network_role_tag: oam
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
- SELF
- service_template_filter
- index_value
- network_policy_server:
- type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
- properties:
- name:
- get_input: dummy_net_name_1
- abstract_pd_server_0:
- type: org.openecomp.resource.abstract.nodes.pd_server_0
+ abstract_pd_server_2:
+ type: org.openecomp.resource.abstract.nodes.pd_server_2
directives:
- substitutable
properties:
@@ -237,7 +229,7 @@ topology_template:
compute_pd_server_name:
- get_input:
- pd_server_names
- - 1
+ - 2
vm_flavor_name:
get_input: pd_flavor_name
port_pd01_port_mac_requirements:
@@ -251,16 +243,24 @@ topology_template:
is_required: false
floating_ip_count_required:
is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
compute_pd_server_user_data_format:
- RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_0ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
count: 1
index_value:
get_property:
- SELF
- service_template_filter
- index_value
+ network_policy_server:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
+ properties:
+ name:
+ get_input: dummy_net_name_1
abstract_pd_server_1:
type: org.openecomp.resource.abstract.nodes.pd_server_1
directives:
@@ -304,6 +304,6 @@ topology_template:
members:
- pd01_port_3
- network_policy_server
- - abstract_pd_server_0
+ - abstract_pd_server
- abstract_pd_server_1
- abstract_pd_server_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_server_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_serverServiceTemplate.yaml
index a44d0824ee..06cdbd86fe 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_server_0ServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out/Nested_pd_serverServiceTemplate.yaml
@@ -1,6 +1,6 @@
tosca_definitions_version: tosca_simple_yaml_1_0_0
metadata:
- template_name: Nested_pd_server_0
+ template_name: Nested_pd_server
imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
@@ -116,7 +116,7 @@ topology_template:
node: pd_server
relationship: tosca.relationships.network.BindsTo
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_0
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
scalable_pd_server:
- pd_server
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 74f9812851..892749544e 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,7 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.pd_server_0:
+ org.openecomp.resource.abstract.nodes.pd_server:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
index_value:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/MainServiceTemplate.yaml
index f50bc8b417..f379c67f1f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/MainServiceTemplate.yaml
@@ -170,8 +170,8 @@ topology_template:
description: name of the oam network
default: oam_protected_net_0
node_templates:
- abstract_pd_server_2:
- type: org.openecomp.resource.abstract.nodes.pd_server_2
+ abstract_pd_server:
+ type: org.openecomp.resource.abstract.nodes.pd_server
directives:
- substitutable
properties:
@@ -180,54 +180,37 @@ topology_template:
compute_pd_server_name:
- get_input:
- pd_server_names
- - 2
+ - 1
vm_flavor_name:
get_attribute:
- network_policy_server
- name
- port_pd01_port_2_network_role_tag: oam
- port_pd01_port_3_ip_requirements:
- - ip_version: 4
- ip_count_required:
- is_required: false
- floating_ip_count_required:
- is_required: false
- port_pd01_port_3_mac_requirements:
+ port_pd01_port_mac_requirements:
mac_count_required:
is_required: false
- port_pd01_port_3_network:
- - get_input: oam_net_name
vm_image_name:
get_input: pd_image_name
- port_pd01_port_2_network:
- - get_input: oam_net_name
- port_pd01_port_2_mac_requirements:
- mac_count_required:
- is_required: false
- port_pd01_port_3_network_role_tag: oam
- compute_pd_server_user_data_format:
- - RAW
- port_pd01_port_2_ip_requirements:
+ port_pd01_port_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
+ port_pd01_port_network:
+ - get_input: oam_net_name
+ port_pd01_port_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_serverServiceTemplate.yaml
count: 1
index_value:
get_property:
- SELF
- service_template_filter
- index_value
- network_policy_server:
- type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
- properties:
- name:
- get_input: dummy_net_name_1
- abstract_pd_server_0:
- type: org.openecomp.resource.abstract.nodes.pd_server_0
+ abstract_pd_server_2:
+ type: org.openecomp.resource.abstract.nodes.pd_server_2
directives:
- substitutable
properties:
@@ -236,35 +219,52 @@ topology_template:
compute_pd_server_name:
- get_input:
- pd_server_names
- - 1
+ - 2
vm_flavor_name:
get_attribute:
- network_policy_server
- name
- port_pd01_port_mac_requirements:
+ port_pd01_port_2_network_role_tag: oam
+ port_pd01_port_3_ip_requirements:
+ - ip_version: 4
+ ip_count_required:
+ is_required: false
+ floating_ip_count_required:
+ is_required: false
+ port_pd01_port_3_mac_requirements:
mac_count_required:
is_required: false
+ port_pd01_port_3_network:
+ - get_input: oam_net_name
vm_image_name:
get_input: pd_image_name
- port_pd01_port_ip_requirements:
+ port_pd01_port_2_network:
+ - get_input: oam_net_name
+ port_pd01_port_2_mac_requirements:
+ mac_count_required:
+ is_required: false
+ port_pd01_port_3_network_role_tag: oam
+ compute_pd_server_user_data_format:
+ - RAW
+ port_pd01_port_2_ip_requirements:
- ip_version: 4
ip_count_required:
is_required: false
floating_ip_count_required:
is_required: false
- port_pd01_port_network:
- - get_input: oam_net_name
- port_pd01_port_network_role_tag: oam
- compute_pd_server_user_data_format:
- - RAW
service_template_filter:
- substitute_service_template: Nested_pd_server_0ServiceTemplate.yaml
+ substitute_service_template: Nested_pd_server_2ServiceTemplate.yaml
count: 1
index_value:
get_property:
- SELF
- service_template_filter
- index_value
+ network_policy_server:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
+ properties:
+ name:
+ get_input: dummy_net_name_1
abstract_pd_server_1:
type: org.openecomp.resource.abstract.nodes.pd_server_1
directives:
@@ -313,6 +313,6 @@ topology_template:
description: heat template that creates MOG stack
members:
- network_policy_server
- - abstract_pd_server_0
+ - abstract_pd_server
- abstract_pd_server_1
- abstract_pd_server_2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644
index 0000000000..fc9395c618
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_serverServiceTemplate.yaml
@@ -0,0 +1,294 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pd_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ index_value:
+ type: integer
+ description: Index value of this substitution service template runtime instance
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0
+ compute_pd_server_availability_zone:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ compute_pd_server_name:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_exCP_naming:
+ type: org.openecomp.datatypes.Naming
+ required: true
+ vm_flavor_name:
+ type: string
+ required: true
+ port_pd01_port_mac_requirements:
+ type: org.openecomp.datatypes.network.MacRequirements
+ required: true
+ vm_image_name:
+ type: string
+ required: true
+ port_pd01_port_ip_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ port_pd01_port_network:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ port_pd01_port_order:
+ type: integer
+ required: true
+ port_pd01_port_subnetpoolid:
+ type: string
+ required: true
+ port_pd01_port_network_role:
+ type: string
+ required: true
+ port_pd01_port_network_role_tag:
+ type: string
+ required: true
+ port_pd01_port_vlan_requirements:
+ type: list
+ required: true
+ entry_schema:
+ type: org.openecomp.datatypes.network.VlanRequirements
+ compute_pd_server_user_data_format:
+ type: list
+ required: true
+ entry_schema:
+ type: string
+ node_templates:
+ pd_server:
+ type: org.openecomp.resource.vfc.nodes.heat.pd_server
+ properties:
+ availability_zone:
+ get_input:
+ - compute_pd_server_availability_zone
+ - index_value
+ flavor:
+ get_input: vm_flavor_name
+ image:
+ get_input: vm_image_name
+ name:
+ get_input:
+ - compute_pd_server_name
+ - index_value
+ user_data_format:
+ get_input:
+ - compute_pd_server_user_data_format
+ - index_value
+ pd_server_pd01_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ exCP_naming:
+ get_input: port_pd01_port_exCP_naming
+ vlan_requirements:
+ get_input: port_pd01_port_vlan_requirements
+ ip_requirements:
+ get_input: port_pd01_port_ip_requirements
+ network_role_tag:
+ get_input: port_pd01_port_network_role_tag
+ mac_requirements:
+ get_input: port_pd01_port_mac_requirements
+ order:
+ get_input: port_pd01_port_order
+ network_role:
+ get_input: port_pd01_port_network_role
+ subnetpoolid:
+ get_input: port_pd01_port_subnetpoolid
+ network:
+ get_input:
+ - port_pd01_port_network
+ - index_value
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pd_server
+ relationship: tosca.relationships.network.BindsTo
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.pd_server
+ capabilities:
+ scalable_pd_server:
+ - pd_server
+ - scalable
+ disk.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.read.bytes.rate
+ memory.usage_pd_server:
+ - pd_server
+ - memory.usage
+ memory_pd_server:
+ - pd_server
+ - memory
+ disk.device.usage_pd_server:
+ - pd_server
+ - disk.device.usage
+ network.outgoing.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.packets.rate
+ os_pd_server:
+ - pd_server
+ - os
+ disk.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.write.bytes.rate
+ network.incoming.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes
+ cpu_pd_server:
+ - pd_server
+ - cpu
+ cpu_util_pd_server:
+ - pd_server
+ - cpu_util
+ disk.device.write.requests.rate_pd_server:
+ - pd_server
+ - disk.device.write.requests.rate
+ disk.read.bytes_pd_server:
+ - pd_server
+ - disk.read.bytes
+ disk.device.read.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.read.bytes.rate
+ network.outgoing.bytes_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes
+ disk.iops_pd_server:
+ - pd_server
+ - disk.iops
+ memory.resident_pd_server:
+ - pd_server
+ - memory.resident
+ cpu.delta_pd_server:
+ - pd_server
+ - cpu.delta
+ network.incoming.packets.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets.rate
+ vcpus_pd_server:
+ - pd_server
+ - vcpus
+ disk.device.write.bytes.rate_pd_server:
+ - pd_server
+ - disk.device.write.bytes.rate
+ disk.device.write.requests_pd_server:
+ - pd_server
+ - disk.device.write.requests
+ endpoint_pd_server:
+ - pd_server
+ - endpoint
+ attachment_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - attachment
+ disk.capacity_pd_server:
+ - pd_server
+ - disk.capacity
+ disk.device.allocation_pd_server:
+ - pd_server
+ - disk.device.allocation
+ disk.allocation_pd_server:
+ - pd_server
+ - disk.allocation
+ binding_pd_server:
+ - pd_server
+ - binding
+ disk.read.requests_pd_server:
+ - pd_server
+ - disk.read.requests
+ feature_pd_server:
+ - pd_server
+ - feature
+ disk.usage_pd_server:
+ - pd_server
+ - disk.usage
+ binding_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - binding
+ disk.write.bytes_pd_server:
+ - pd_server
+ - disk.write.bytes
+ network.incoming.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.bytes.rate
+ network.incoming.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.incoming.packets
+ disk.device.read.requests.rate_pd_server:
+ - pd_server
+ - disk.device.read.requests.rate
+ disk.root.size_pd_server:
+ - pd_server
+ - disk.root.size
+ disk.device.read.bytes_pd_server:
+ - pd_server
+ - disk.device.read.bytes
+ disk.device.write.bytes_pd_server:
+ - pd_server
+ - disk.device.write.bytes
+ disk.device.read.requests_pd_server:
+ - pd_server
+ - disk.device.read.requests
+ instance_pd_server:
+ - pd_server
+ - instance
+ host_pd_server:
+ - pd_server
+ - host
+ network.outpoing.packets_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outpoing.packets
+ disk.write.requests.rate_pd_server:
+ - pd_server
+ - disk.write.requests.rate
+ disk.ephemeral.size_pd_server:
+ - pd_server
+ - disk.ephemeral.size
+ disk.write.requests_pd_server:
+ - pd_server
+ - disk.write.requests
+ feature_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - feature
+ disk.device.latency_pd_server:
+ - pd_server
+ - disk.device.latency
+ disk.latency_pd_server:
+ - pd_server
+ - disk.latency
+ disk.device.capacity_pd_server:
+ - pd_server
+ - disk.device.capacity
+ network.outgoing.bytes.rate_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - network.outgoing.bytes.rate
+ disk.device.iops_pd_server:
+ - pd_server
+ - disk.device.iops
+ requirements:
+ local_storage_pd_server:
+ - pd_server
+ - local_storage
+ link_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - link
+ dependency_pd_server_pd01_port:
+ - pd_server_pd01_port
+ - dependency
+ dependency_pd_server:
+ - pd_server
+ - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_server_0ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_server_0ServiceTemplate.yaml
deleted file mode 100644
index b1f51f3f57..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out/Nested_pd_server_0ServiceTemplate.yaml
+++ /dev/null
@@ -1,294 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
- template_name: Nested_pd_server_0
-imports:
-- openecomp_heat_index:
- file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
- file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
- org.openecomp.resource.vfc.nodes.heat.pd_server:
- derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
- inputs:
- index_value:
- type: integer
- description: Index value of this substitution service template runtime instance
- required: false
- default: 0
- constraints:
- - greater_or_equal: 0
- compute_pd_server_availability_zone:
- type: list
- required: true
- entry_schema:
- type: string
- compute_pd_server_name:
- type: list
- required: true
- entry_schema:
- type: string
- port_pd01_port_exCP_naming:
- type: org.openecomp.datatypes.Naming
- required: true
- vm_flavor_name:
- type: string
- required: true
- port_pd01_port_mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
- required: true
- vm_image_name:
- type: string
- required: true
- port_pd01_port_ip_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.IpRequirements
- port_pd01_port_network:
- type: list
- required: true
- entry_schema:
- type: string
- port_pd01_port_order:
- type: integer
- required: true
- port_pd01_port_subnetpoolid:
- type: string
- required: true
- port_pd01_port_network_role:
- type: string
- required: true
- port_pd01_port_network_role_tag:
- type: string
- required: true
- port_pd01_port_vlan_requirements:
- type: list
- required: true
- entry_schema:
- type: org.openecomp.datatypes.network.VlanRequirements
- compute_pd_server_user_data_format:
- type: list
- required: true
- entry_schema:
- type: string
- node_templates:
- pd_server:
- type: org.openecomp.resource.vfc.nodes.heat.pd_server
- properties:
- availability_zone:
- get_input:
- - compute_pd_server_availability_zone
- - index_value
- flavor:
- get_input: vm_flavor_name
- image:
- get_input: vm_image_name
- name:
- get_input:
- - compute_pd_server_name
- - index_value
- user_data_format:
- get_input:
- - compute_pd_server_user_data_format
- - index_value
- pd_server_pd01_port:
- type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
- properties:
- exCP_naming:
- get_input: port_pd01_port_exCP_naming
- vlan_requirements:
- get_input: port_pd01_port_vlan_requirements
- ip_requirements:
- get_input: port_pd01_port_ip_requirements
- network_role_tag:
- get_input: port_pd01_port_network_role_tag
- mac_requirements:
- get_input: port_pd01_port_mac_requirements
- order:
- get_input: port_pd01_port_order
- network_role:
- get_input: port_pd01_port_network_role
- subnetpoolid:
- get_input: port_pd01_port_subnetpoolid
- network:
- get_input:
- - port_pd01_port_network
- - index_value
- requirements:
- - binding:
- capability: tosca.capabilities.network.Bindable
- node: pd_server
- relationship: tosca.relationships.network.BindsTo
- substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.pd_server_0
- capabilities:
- scalable_pd_server:
- - pd_server
- - scalable
- disk.read.bytes.rate_pd_server:
- - pd_server
- - disk.read.bytes.rate
- memory.usage_pd_server:
- - pd_server
- - memory.usage
- memory_pd_server:
- - pd_server
- - memory
- disk.device.usage_pd_server:
- - pd_server
- - disk.device.usage
- network.outgoing.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.packets.rate
- os_pd_server:
- - pd_server
- - os
- disk.write.bytes.rate_pd_server:
- - pd_server
- - disk.write.bytes.rate
- network.incoming.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes
- cpu_pd_server:
- - pd_server
- - cpu
- cpu_util_pd_server:
- - pd_server
- - cpu_util
- disk.device.write.requests.rate_pd_server:
- - pd_server
- - disk.device.write.requests.rate
- disk.read.bytes_pd_server:
- - pd_server
- - disk.read.bytes
- disk.device.read.bytes.rate_pd_server:
- - pd_server
- - disk.device.read.bytes.rate
- network.outgoing.bytes_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes
- disk.iops_pd_server:
- - pd_server
- - disk.iops
- memory.resident_pd_server:
- - pd_server
- - memory.resident
- cpu.delta_pd_server:
- - pd_server
- - cpu.delta
- network.incoming.packets.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets.rate
- vcpus_pd_server:
- - pd_server
- - vcpus
- disk.device.write.bytes.rate_pd_server:
- - pd_server
- - disk.device.write.bytes.rate
- disk.device.write.requests_pd_server:
- - pd_server
- - disk.device.write.requests
- endpoint_pd_server:
- - pd_server
- - endpoint
- attachment_pd_server_pd01_port:
- - pd_server_pd01_port
- - attachment
- disk.capacity_pd_server:
- - pd_server
- - disk.capacity
- disk.device.allocation_pd_server:
- - pd_server
- - disk.device.allocation
- disk.allocation_pd_server:
- - pd_server
- - disk.allocation
- binding_pd_server:
- - pd_server
- - binding
- disk.read.requests_pd_server:
- - pd_server
- - disk.read.requests
- feature_pd_server:
- - pd_server
- - feature
- disk.usage_pd_server:
- - pd_server
- - disk.usage
- binding_pd_server_pd01_port:
- - pd_server_pd01_port
- - binding
- disk.write.bytes_pd_server:
- - pd_server
- - disk.write.bytes
- network.incoming.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.bytes.rate
- network.incoming.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.incoming.packets
- disk.device.read.requests.rate_pd_server:
- - pd_server
- - disk.device.read.requests.rate
- disk.root.size_pd_server:
- - pd_server
- - disk.root.size
- disk.device.read.bytes_pd_server:
- - pd_server
- - disk.device.read.bytes
- disk.device.write.bytes_pd_server:
- - pd_server
- - disk.device.write.bytes
- disk.device.read.requests_pd_server:
- - pd_server
- - disk.device.read.requests
- instance_pd_server:
- - pd_server
- - instance
- host_pd_server:
- - pd_server
- - host
- network.outpoing.packets_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outpoing.packets
- disk.write.requests.rate_pd_server:
- - pd_server
- - disk.write.requests.rate
- disk.ephemeral.size_pd_server:
- - pd_server
- - disk.ephemeral.size
- disk.write.requests_pd_server:
- - pd_server
- - disk.write.requests
- feature_pd_server_pd01_port:
- - pd_server_pd01_port
- - feature
- disk.device.latency_pd_server:
- - pd_server
- - disk.device.latency
- disk.latency_pd_server:
- - pd_server
- - disk.latency
- disk.device.capacity_pd_server:
- - pd_server
- - disk.device.capacity
- network.outgoing.bytes.rate_pd_server_pd01_port:
- - pd_server_pd01_port
- - network.outgoing.bytes.rate
- disk.device.iops_pd_server:
- - pd_server
- - disk.device.iops
- requirements:
- local_storage_pd_server:
- - pd_server
- - local_storage
- link_pd_server_pd01_port:
- - pd_server_pd01_port
- - link
- dependency_pd_server_pd01_port:
- - pd_server_pd01_port
- - dependency
- dependency_pd_server:
- - pd_server
- - dependency
diff --git a/openecomp-be/lib/openecomp-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 b5daf7ce6f..0521146745 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
@@ -86,10 +86,8 @@ node_types:
type: string
attributes:
pd_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_pd_server:
capability: tosca.capabilities.Node
@@ -507,10 +505,8 @@ node_types:
status: SUPPORTED
attributes:
ps_server_accessIPv4:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_ps_server:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml
index 38b011e2e3..095769b3ca 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_pd_serverServiceTemplate.yaml
@@ -122,13 +122,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
pd_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- pd_server
- accessIPv4
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.pd_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_ps_serverServiceTemplate.yaml
index 4d002e7f4b..b25b14b9a8 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_ps_serverServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out/Nested_ps_serverServiceTemplate.yaml
@@ -122,13 +122,11 @@ topology_template:
relationship: tosca.relationships.network.BindsTo
outputs:
ps_server_accessIPv4:
- type: list
+ type: string
value:
get_attribute:
- ps_server
- accessIPv4
- entry_schema:
- type: string
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.ps_server
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 8f4f687229..30616940a7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -5,7 +5,7 @@ imports:
- openecomp_heat_index:
file: openecomp-heat/_index.yml
node_types:
- org.openecomp.resource.abstract.nodes.FSB1_2:
+ org.openecomp.resource.abstract.nodes.FSB1:
derived_from: org.openecomp.resource.abstract.nodes.VFC
properties:
port_FSB1_Internal_mac_address:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/SubstitutionServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/SubstitutionServiceTemplate.yaml
index 31f53ed6f9..10f6fd221e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/SubstitutionServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/SubstitutionServiceTemplate.yaml
@@ -262,7 +262,7 @@ topology_template:
type: tosca.artifacts.Deployment
file: ../Artifacts/nimbus-ethernet
substitution_mappings:
- node_type: org.openecomp.resource.abstract.nodes.FSB1_2
+ node_type: org.openecomp.resource.abstract.nodes.FSB1
capabilities:
network.outgoing.packets.rate_FSB1_FSB_OAM:
- FSB1_FSB_OAM
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in/MainServiceTemplate.yaml
index 611052d787..e1099bde90 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in/MainServiceTemplate.yaml
@@ -258,8 +258,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -269,8 +269,8 @@ topology_template:
cmaui_volume3:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,index ] } ]}
- size: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal2, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
groups:
ep-jsa_net_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/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 9c1c0bb7be..83ade4a8b1 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -131,46 +131,32 @@ node_types:
required: true
status: SUPPORTED
attributes:
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ status: SUPPORTED
FSB1_FSB1_Internal_network_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_user_data_format:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_addresses:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- FSB1_oam_index:
- type: list
+ type: map
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ FSB1_FSB1_Internal_status:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_FSB1_FSB1_Internal:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/SubstitutionServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/SubstitutionServiceTemplate.yaml
index 6b1c37dd23..d2665c4897 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/SubstitutionServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/SubstitutionServiceTemplate.yaml
@@ -194,70 +194,56 @@ topology_template:
type: tosca.artifacts.Deployment
file: ../Artifacts/nimbus-ethernet
outputs:
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ value:
+ get_attribute:
+ - FSB1_FSB2_Internal
+ - tenant_id
FSB1_FSB1_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_user_data_format:
+ type: string
value:
get_attribute:
- - FSB1_FSB1_Internal
- - addresses
- entry_schema:
- type: string
+ - FSB1
+ - user_data_format
FSB1_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- FSB1
- accessIPv6
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
value:
get_attribute:
- FSB1
- addresses
entry_schema:
- type: string
- FSB1_oam_index:
- type: list
- value:
- get_attribute:
- - FSB1
- - oam_index
- entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB2_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ FSB1_FSB1_Internal_status:
+ type: string
value:
get_attribute:
- - FSB1_FSB2_Internal
- - index
- entry_schema:
- type: string
- FSB1_FSB1_Internal_oam_index:
- type: list
+ - FSB1_FSB1_Internal
+ - status
+ FSB1_FSB1_Internal_device_owner:
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- - oam_index
- entry_schema:
- type: string
+ - device_owner
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.FSB1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/in/MainServiceTemplate.yaml
index 8e6142435e..bda72f8c8f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/in/MainServiceTemplate.yaml
@@ -409,8 +409,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 9965624256..a42219e96f 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -179,41 +179,29 @@ node_types:
required: true
status: SUPPORTED
attributes:
- FSB1_FSB1_Internal_network_id:
- type: list
+ FSB1_FSB_OAM_status:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ status: SUPPORTED
+ FSB1_FSB1_Internal_network_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB_OAM_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_FSB1_FSB1_Internal:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/SubstitutionServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/SubstitutionServiceTemplate.yaml
index 106cdcd388..b9e572afae 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/SubstitutionServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/SubstitutionServiceTemplate.yaml
@@ -262,62 +262,50 @@ topology_template:
type: tosca.artifacts.Deployment
file: ../Artifacts/nimbus-ethernet
outputs:
- FSB1_FSB1_Internal_network_id:
- type: list
+ FSB1_FSB_OAM_status:
+ type: string
value:
get_attribute:
- - FSB1_FSB1_Internal
- - network_id
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ - FSB1_FSB_OAM
+ - status
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ value:
+ get_attribute:
+ - FSB1_FSB2_Internal
+ - tenant_id
+ FSB1_FSB1_Internal_network_id:
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- - addresses
- entry_schema:
- type: string
+ - network_id
FSB1_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- FSB1
- accessIPv6
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
value:
get_attribute:
- FSB1
- addresses
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB2_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
- value:
- get_attribute:
- - FSB1_FSB2_Internal
- - index
- entry_schema:
- type: string
- FSB1_FSB_OAM_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
value:
get_attribute:
- - FSB1_FSB_OAM
- - oam_index
- entry_schema:
- type: string
+ - FSB1_FSB1_Internal
+ - device_owner
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.FSB1
capabilities:
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 c45d65ac5f..d007e85493 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
@@ -259,8 +259,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -270,8 +270,8 @@ topology_template:
cmaui_volume3:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,index ] } ]}
- size: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal2, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
groups:
ep-jsa_net_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/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 9807e6aabe..7c1d5352a9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -125,46 +125,32 @@ node_types:
required: true
status: SUPPORTED
attributes:
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ status: SUPPORTED
FSB1_FSB1_Internal_network_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_user_data_format:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_addresses:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- FSB1_oam_index:
- type: list
+ type: map
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ FSB1_FSB1_Internal_status:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_FSB1_FSB1_Internal:
capability: tosca.capabilities.Node
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 2261cefa27..e4fa28737d 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
@@ -193,70 +193,56 @@ topology_template:
type: tosca.artifacts.Deployment
file: ../Artifacts/nimbus-ethernet
outputs:
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ value:
+ get_attribute:
+ - FSB1_FSB2_Internal
+ - tenant_id
FSB1_FSB1_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_user_data_format:
+ type: string
value:
get_attribute:
- - FSB1_FSB1_Internal
- - addresses
- entry_schema:
- type: string
+ - FSB1
+ - user_data_format
FSB1_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- FSB1
- accessIPv6
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
value:
get_attribute:
- FSB1
- addresses
entry_schema:
- type: string
- FSB1_oam_index:
- type: list
- value:
- get_attribute:
- - FSB1
- - oam_index
- entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB2_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ FSB1_FSB1_Internal_status:
+ type: string
value:
get_attribute:
- - FSB1_FSB2_Internal
- - index
- entry_schema:
- type: string
- FSB1_FSB1_Internal_oam_index:
- type: list
+ - FSB1_FSB1_Internal
+ - status
+ FSB1_FSB1_Internal_device_owner:
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- - oam_index
- entry_schema:
- type: string
+ - device_owner
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.FSB1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in/MainServiceTemplate.yaml
index 30ec112f14..d896f4bda2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in/MainServiceTemplate.yaml
@@ -379,8 +379,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
index 6ff916ceb2..d2ea7e94b4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -161,41 +161,29 @@ node_types:
required: true
status: SUPPORTED
attributes:
- FSB1_FSB1_Internal_network_id:
- type: list
+ FSB1_FSB_OAM_status:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ status: SUPPORTED
+ FSB1_FSB1_Internal_network_id:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_accessIPv6:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
status: SUPPORTED
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
- status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
- FSB1_FSB_OAM_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
status: SUPPORTED
- entry_schema:
- type: string
requirements:
- dependency_FSB1_FSB1_Internal:
capability: tosca.capabilities.Node
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/SubstitutionServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/SubstitutionServiceTemplate.yaml
index af4ed4e441..7112a172e7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/SubstitutionServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/SubstitutionServiceTemplate.yaml
@@ -242,62 +242,50 @@ topology_template:
type: tosca.artifacts.Deployment
file: ../Artifacts/nimbus-ethernet
outputs:
- FSB1_FSB1_Internal_network_id:
- type: list
+ FSB1_FSB_OAM_status:
+ type: string
value:
get_attribute:
- - FSB1_FSB1_Internal
- - network_id
- entry_schema:
- type: string
- FSB1_FSB1_Internal_addresses:
- type: list
+ - FSB1_FSB_OAM
+ - status
+ FSB1_FSB2_Internal_tenant_id:
+ type: string
+ value:
+ get_attribute:
+ - FSB1_FSB2_Internal
+ - tenant_id
+ FSB1_FSB1_Internal_network_id:
+ type: string
value:
get_attribute:
- FSB1_FSB1_Internal
- - addresses
- entry_schema:
- type: string
+ - network_id
FSB1_accessIPv6:
- type: list
+ type: string
value:
get_attribute:
- FSB1
- accessIPv6
- entry_schema:
- type: string
FSB1_addresses:
- type: list
+ type: map
value:
get_attribute:
- FSB1
- addresses
entry_schema:
- type: string
+ type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
FSB1_FSB2_Internal_network_id:
- type: list
+ type: string
value:
get_attribute:
- FSB1_FSB2_Internal
- network_id
- entry_schema:
- type: string
- FSB1_FSB2_Internal_index:
- type: list
- value:
- get_attribute:
- - FSB1_FSB2_Internal
- - index
- entry_schema:
- type: string
- FSB1_FSB_OAM_oam_index:
- type: list
+ FSB1_FSB1_Internal_device_owner:
+ type: string
value:
get_attribute:
- - FSB1_FSB_OAM
- - oam_index
- entry_schema:
- type: string
+ - FSB1_FSB1_Internal
+ - device_owner
substitution_mappings:
node_type: org.openecomp.resource.abstract.nodes.FSB1
capabilities:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..4e939ca9d8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/in/MainServiceTemplate.yaml
@@ -0,0 +1,191 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.FSB1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ vipr_atm_name_0:
+ label: vipr_atm_name_0
+ hidden: false
+ immutable: false
+ type: string
+ description: vipr_atm_name_0
+ network_name:
+ label: network_name
+ hidden: false
+ immutable: false
+ type: string
+ description: network_name
+ port_name:
+ label: port_name
+ hidden: false
+ immutable: false
+ type: string
+ description: port_name
+ fsb_zone:
+ label: fsb_zone
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb_zone
+ fsb1-flavor:
+ label: fsb1-flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb1-flavor
+ fsb1-Internal1-mac:
+ label: fsb1-flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb1-flavor
+
+ node_templates:
+ VMI1:
+ type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+ properties:
+ name:
+ str_replace:
+ template: VM_NAME_PORT_3
+ params:
+ VM_NAME:
+ get_input: vipr_atm_name_0
+ virtual_network_refs:
+ - get_input: network_name
+ virtual_machine_interface_properties:
+ service_interface_type: left
+ port_tuple_refs:
+ - get_input: port_name
+ FSB1:
+ type: org.openecomp.resource.vfc.nodes.heat.FSB1
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_attribute:
+ - VMI1
+ - name
+ FSB1_Port1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+
+ cmaui_volume_test_compute_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone: {get_attribute: [FSB1, availability_zone ] }
+ backup_id: {get_attribute: [FSB1, admin_pass ] }
+ description: {get_attribute: [FSB1, flavor ] }
+ image: {get_attribute: [FSB1, config_drive ] }
+ metadata: {get_attribute: [FSB1, metadata ] }
+ multiattach: {get_attribute: [FSB1, flavor_update_policy ] }
+ name: {get_attribute: [FSB1, image ] }
+ read_only: {get_attribute: [FSB1, image_update_policy ] }
+ scheduler_hints: {get_attribute: [FSB1, key_name ] }
+ size: {get_attribute: [FSB1, diskConfig ] }
+ snapshot_id: {get_attribute: [FSB1, name ] }
+ source_volid: {get_attribute: [FSB1, personality ] }
+ volume_id: {get_attribute: [FSB1, reservation_id ] }
+ volume_type: {get_attribute: [FSB1, scheduler_hints ] }
+ delete_on_termination: {get_attribute: [FSB1, security_groups ] }
+ volume_size: {get_attribute: [FSB1, software_config_transport ] }
+ device_type: {get_attribute: [FSB1, user_data_format ] }
+ disk_bus: {get_attribute: [FSB1, user_data_update_policy ] }
+ swap_size: {get_attribute: [FSB1, accessIPv4 ] }
+ image_id: {get_attribute: [FSB1, accessIPv6 ] }
+ attachments: {get_attribute: [FSB1, addresses ] }
+ encrypted: {get_attribute: [FSB1, console_urls ] }
+ created_at: {get_attribute: [FSB1, instance_name ] }
+ display_description: {get_attribute: [FSB1, show ] }
+
+ cmaui_volume_test_neutron_port_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone: {get_attribute: [FSB1_Port1, ip_address ] }
+ backup_id: {get_attribute: [FSB1_Port1, network ] }
+ #description: {get_attribute: [FSB1_Port1, subnet ] }
+ image: {get_attribute: [FSB1_Port1, admin_state_up ] }
+ metadata: {get_attribute: [FSB1_Port1, allowed_address_pairs ] }
+ multiattach: {get_attribute: [FSB1_Port1, "binding:vnic_type" ] }
+ name: {get_attribute: [FSB1_Port1, device_id ] }
+ read_only: {get_attribute: [FSB1_Port1, device_owner ] }
+ scheduler_hints: {get_attribute: [FSB1_Port1, fixed_ips ] }
+ #size: {get_attribute: [FSB1_Port1, mac_address ] }
+ snapshot_id: {get_attribute: [FSB1_Port1, name ] }
+ source_volid: {get_attribute: [FSB1_Port1, port_security_enabled ] }
+ volume_id: {get_attribute: [FSB1_Port1, qos_policy ] }
+ volume_type: {get_attribute: [FSB1_Port1, security_groups ] }
+ delete_on_termination: {get_attribute: [FSB1_Port1, value_specs ] }
+ volume_size: {get_attribute: [FSB1_Port1, replacement_policy ] }
+ device_type: {get_attribute: [FSB1_Port1, show ] }
+ disk_bus: {get_attribute: [FSB1_Port1, subnets ] }
+ swap_size: {get_attribute: [FSB1_Port1, tenant_id ] }
+
+ cmaui_volume_test_contrailv2_VMI_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone: {get_attribute: [VMI1, virtual_machine_interface_mac_addresses ] }
+ #backup_id: {get_attribute: [VMI1, mac_address ] }
+ description: {get_attribute: [VMI1, virtual_network_refs ] }
+ image: {get_attribute: [VMI1, port_tuple_refs ] }
+ metadata: {get_attribute: [VMI1, security_group_refs ] }
+ multiattach: {get_attribute: [VMI1, virtual_machine_interface_properties ] }
+ name: {get_attribute: [VMI1, name ] }
+ #read_only: {get_attribute: [VMI1, service_interface_type ] }
+ #scheduler_hints: {get_attribute: [VMI1, sub_interface_vlan_tag ] }
+ size: {get_attribute: [VMI1, virtual_machine_interface_allowed_address_pairs ] }
+ #snapshot_id: {get_attribute: [VMI1, allowed_address_pair ] }
+ #source_volid: {get_attribute: [VMI1, port_security_enabled ] }
+ #volume_id: {get_attribute: [VMI1, address_mode ] }
+ #volume_type: {get_attribute: [VMI1, mac ] }
+ #delete_on_termination: {get_attribute: [VMI1, ip ] }
+ #volume_size: {get_attribute: [VMI1, ip_prefix ] }
+ #device_type: {get_attribute: [VMI1, ip_prefix_len ] }
+ #disk_bus: {get_attribute: [VMI1, virtual_machine_interface_refs ] }
+ #swap_size: {get_attribute: [VMI1, virtual_machine_interface_properties_service_interface_type ] }
+ created_at: {get_attribute: [VMI1, fq_name ] }
+ display_description: {get_attribute: [VMI1, show ] }
+
+ groups:
+ ep-jsa_net_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/ep-jsa_net.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)
+ members:
+ - VMI1
+ - FSB1
+ - FSB1_Port1
+ - cmaui_volume_test_compute_properties
+ - cmaui_volume_test_neutron_port_properties
+ - cmaui_volume_test_contrailv2_VMI_properties
+
+ outputs:
+ simpleOutput1:
+ value: {get_attribute: [ FSB1, accessIPv4 ] }
+ simpleOutput2:
+ value: {get_attribute: [ FSB1, addresses, key1 ] }
+ complexOutput1:
+ value: {get_attribute: [ FSB1, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ complexOutput2:
+ description: cgi fw01 left interface Mac-Address
+ value: { get_attribute: [FSB1_Port1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1,user_data_format ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ complexOutput3:
+ description: cgi fw01 left interface Mac-Address
+ value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1,accessIPv6 ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] } \ 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/inputoutputparamtype/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/out/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..b3db1c2890
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/inputoutputparamtype/out/MainServiceTemplate.yaml
@@ -0,0 +1,345 @@
+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:
+ vipr_atm_name_0:
+ label: vipr_atm_name_0
+ hidden: false
+ immutable: false
+ type: string
+ description: vipr_atm_name_0
+ network_name:
+ label: network_name
+ hidden: false
+ immutable: false
+ type: string
+ description: network_name
+ port_name:
+ label: port_name
+ hidden: false
+ immutable: false
+ type: string
+ description: port_name
+ fsb_zone:
+ label: fsb_zone
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb_zone
+ fsb1-flavor:
+ label: fsb1-flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb1-flavor
+ fsb1-Internal1-mac:
+ label: fsb1-flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: fsb1-flavor
+ node_templates:
+ cmaui_volume_test_compute_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_availability_zone
+ backup_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_admin_pass
+ description:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_flavor
+ image:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_config_drive
+ metadata:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_metadata
+ multiattach:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_flavor_update_policy
+ name:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_image
+ read_only:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_image_update_policy
+ scheduler_hints:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_key_name
+ size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_diskConfig
+ snapshot_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_name
+ source_volid:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_personality
+ volume_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_reservation_id
+ volume_type:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_scheduler_hints
+ delete_on_termination:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_security_groups
+ volume_size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_software_config_transport
+ device_type:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_user_data_format
+ disk_bus:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_user_data_update_policy
+ swap_size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_accessIPv4
+ image_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_accessIPv6
+ attachments:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_addresses
+ encrypted:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_console_urls
+ created_at:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_instance_name
+ display_description:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_show
+ cmaui_volume_test_neutron_port_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_ip_address
+ backup_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_network
+ image:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_admin_state_up
+ metadata:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_allowed_address_pairs
+ multiattach:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_binding:vnic_type
+ name:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_device_id
+ read_only:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_device_owner
+ scheduler_hints:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_fixed_ips
+ snapshot_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_name
+ source_volid:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_port_security_enabled
+ volume_id:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_qos_policy
+ volume_type:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_security_groups
+ delete_on_termination:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_value_specs
+ volume_size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_replacement_policy
+ device_type:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_show
+ disk_bus:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_subnets
+ swap_size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_FSB1_Port_tenant_id
+ cmaui_volume_test_contrailv2_VMI_properties:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_virtual_machine_interface_mac_addresses
+ description:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_virtual_network_refs
+ image:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_port_tuple_refs
+ metadata:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_security_group_refs
+ multiattach:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_virtual_machine_interface_properties
+ name:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_name
+ size:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_virtual_machine_interface_allowed_address_pairs
+ created_at:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_fq_name
+ display_description:
+ get_attribute:
+ - abstract_FSB1
+ - FSB1_VMI_show
+ abstract_FSB1:
+ type: org.openecomp.resource.abstract.nodes.FSB1
+ directives:
+ - substitutable
+ properties:
+ port_FSB1_Port_network:
+ - Internal1-net
+ vm_flavor_name:
+ get_input: fsb1-flavor
+ port_FSB1_Port_mac_address:
+ get_input: fsb1-Internal1-mac
+ compute_FSB1_availability_zone:
+ - get_input: fsb_zone
+ port_VMI_port_tuple_refs:
+ - - get_input: port_name
+ port_VMI_name:
+ - str_replace:
+ template: VM_NAME_PORT_3
+ params:
+ VM_NAME:
+ get_input: vipr_atm_name_0
+ port_VMI_virtual_network_refs:
+ - - get_input: network_name
+ service_template_filter:
+ substitute_service_template: Nested_FSB1ServiceTemplate.yaml
+ count: 1
+ index_value:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ groups:
+ ep-jsa_net_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/ep-jsa_net.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)
+ members:
+ - cmaui_volume_test_compute_properties
+ - cmaui_volume_test_neutron_port_properties
+ - cmaui_volume_test_contrailv2_VMI_properties
+ - abstract_FSB1
+ outputs:
+ simpleOutput1:
+ value:
+ get_attribute:
+ - FSB1
+ - accessIPv4
+ simpleOutput2:
+ value:
+ get_attribute:
+ - FSB1
+ - addresses
+ - key1
+ complexOutput1:
+ value:
+ get_attribute:
+ - FSB1
+ - addresses
+ - get_attribute:
+ - FSB2_Internal2
+ - tenant_id
+ complexOutput2:
+ description: cgi fw01 left interface Mac-Address
+ value:
+ get_attribute:
+ - FSB1_Port1
+ - device_owner
+ - get_input:
+ - CMAUI_volume_type
+ - get_attribute:
+ - FSB1
+ - user_data_format
+ - 0
+ - OS-EXT-IPS-MAC:mac_addr
+ complexOutput3:
+ description: cgi fw01 left interface Mac-Address
+ value:
+ get_input:
+ - a
+ - addresses
+ - get_input:
+ - CMAUI_volume_type
+ - get_attribute:
+ - FSB1
+ - accessIPv6
+ - 0
+ - OS-EXT-IPS-MAC:mac_addr
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in/MainServiceTemplate.yaml
index 21d373968b..4113dadea4 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in/MainServiceTemplate.yaml
@@ -231,10 +231,10 @@ topology_template:
simpleOutput2:
value: {get_attribute: [ FSB2_template, addresses, key1 ] }
complexOutput1:
- value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
+ value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
complexOutput2:
description: cgi fw01 left interface Mac-Address
- value: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB2_Internal1,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ value: { get_attribute: [FSB1_Internal2, device_owner, get_input: [CMAUI_volume_type, {get_attribute: [FSB2_Internal1,user_data_format ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
complexOutput3:
description: cgi fw01 left interface Mac-Address
- value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1_Internal1,accessIPv6 ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1_Internal1,admin_state_up ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out/MainServiceTemplate.yaml
index 371b190878..35a1e38837 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out/MainServiceTemplate.yaml
@@ -265,18 +265,18 @@ topology_template:
- FSB1_addresses
- get_attribute:
- abstract_FSB1_0
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
complexOutput2:
description: cgi fw01 left interface Mac-Address
value:
get_attribute:
- FSB1_Internal2
- - addresses
+ - device_owner
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB2_Internal1
- - oam_index
+ - user_data_format
- 0
- OS-EXT-IPS-MAC:mac_addr
complexOutput3:
@@ -289,6 +289,6 @@ topology_template:
- CMAUI_volume_type
- get_attribute:
- abstract_FSB1_0
- - FSB1_FSB1_Internal_accessIPv6
+ - FSB1_FSB1_Internal_admin_state_up
- 0
- OS-EXT-IPS-MAC:mac_addr
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in/MainServiceTemplate.yaml
index 7e50caf852..ef381fe9c9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in/MainServiceTemplate.yaml
@@ -295,8 +295,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_Internal2,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
@@ -306,8 +306,8 @@ topology_template:
cmaui_volume3:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,index ] } ]}
- size: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB2_template, addresses, {get_attribute: [ FSB2_Internal1,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal2, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB2_template,user_data_format ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
groups:
ep-jsa_net_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/unifiedComposition/updNodesGetAttrIn/consolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out/MainServiceTemplate.yaml
index 50a62f642d..a6eb69ef4d 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out/MainServiceTemplate.yaml
@@ -301,16 +301,16 @@ topology_template:
- FSB1_addresses
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
size:
get_attribute:
- FSB1
- - FSB1_FSB1_Internal_addresses
+ - FSB1_FSB1_Internal_device_owner
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_FSB1_Internal_oam_index
+ - FSB1_FSB1_Internal_status
- 0
- OS-EXT-IPS-MAC:mac_addr
cmaui_volume2:
@@ -338,16 +338,16 @@ topology_template:
- FSB1_addresses
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
size:
get_attribute:
- FSB1
- - FSB1_FSB1_Internal_addresses
+ - FSB1_FSB1_Internal_device_owner
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_oam_index
+ - FSB1_user_data_format
- 0
- OS-EXT-IPS-MAC:mac_addr
groups:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
index 9cd2498824..065584de49 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
@@ -198,8 +198,8 @@ topology_template:
cmaui_volume1:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
- volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
- size: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ volume_type: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
+ size: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,status ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
cmaui_volume2:
type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
index 84f83498f0..4c75e2c736 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
@@ -219,16 +219,16 @@ topology_template:
- FSB1_addresses
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
size:
get_attribute:
- FSB1
- - FSB1_FSB1_Internal_addresses
+ - FSB1_FSB1_Internal_device_owner
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_FSB_OAM_oam_index
+ - FSB1_FSB_OAM_status
- 0
- OS-EXT-IPS-MAC:mac_addr
cmaui_volume2:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in/MainServiceTemplate.yaml
index 784a841cad..b26f74ace5 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in/MainServiceTemplate.yaml
@@ -324,10 +324,10 @@ topology_template:
simpleOutput2:
value: {get_attribute: [ FSB2_template, addresses, key1 ] }
complexOutput1:
- value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
+ value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
complexOutput2:
description: cgi fw01 left interface Mac-Address
- value: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB2_Internal1,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ value: { get_attribute: [FSB1_Internal2, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB2_Internal1,user_data_format ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
complexOutput3:
description: cgi fw01 left interface Mac-Address
- value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1_Internal1,accessIPv6 ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1_Internal1,admin_state_up ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out/MainServiceTemplate.yaml
index 56b2881a66..a59e6a5572 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out/MainServiceTemplate.yaml
@@ -337,18 +337,18 @@ topology_template:
- FSB1_addresses
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
complexOutput2:
description: cgi fw01 left interface Mac-Address
value:
get_attribute:
- - FSB1
- - FSB1_FSB1_Internal_addresses
+ - FSB1_Internal2
+ - addresses
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_oam_index
+ - FSB1_FSB2_Internal_user_data_format
- 0
- OS-EXT-IPS-MAC:mac_addr
complexOutput3:
@@ -361,6 +361,6 @@ topology_template:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_FSB1_Internal_accessIPv6
+ - FSB1_FSB1_Internal_admin_state_up
- 0
- OS-EXT-IPS-MAC:mac_addr
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
index 0286f33e97..ad7f9440f5 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in/MainServiceTemplate.yaml
@@ -255,10 +255,10 @@ topology_template:
simpleOutput2:
value: {get_attribute: [ FSB1_template, addresses, key1 ] }
complexOutput1:
- value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,index ] } ]}
+ value: {get_attribute: [ FSB1_template, addresses, {get_attribute: [ FSB2_Internal2,tenant_id ] } ]}
complexOutput2:
description: cgi fw01 left interface Mac-Address
- value: { get_attribute: [FSB1_Internal1, addresses, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,oam_index ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+ value: { get_attribute: [FSB1_Internal1, device_owner, get_input: [CMAUI_volume_type,{get_attribute: [FSB1_OAM,user_data_format ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
complexOutput3:
description: cgi fw01 left interface Mac-Address
value: { get_input: [a, addresses, get_input: [CMAUI_volume_type, {get_attribute: [FSB1_template,accessIPv6 ] }], 0, "OS-EXT-IPS-MAC:mac_addr"] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
index 5fa7de719a..c76d482953 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out/MainServiceTemplate.yaml
@@ -268,18 +268,18 @@ topology_template:
- FSB1_addresses
- get_attribute:
- FSB1
- - FSB1_FSB2_Internal_index
+ - FSB1_FSB2_Internal_tenant_id
complexOutput2:
description: cgi fw01 left interface Mac-Address
value:
get_attribute:
- FSB1
- - FSB1_FSB1_Internal_addresses
+ - FSB1_FSB1_Internal_device_owner
- get_input:
- CMAUI_volume_type
- get_attribute:
- FSB1
- - FSB1_FSB_OAM_oam_index
+ - FSB1_FSB_OAM_user_data_format
- 0
- OS-EXT-IPS-MAC:mac_addr
complexOutput3:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..95c45309da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup
@@ -0,0 +1,68 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-translator-impl</name>
+ <artifactId>openecomp-sdc-translator-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+
+ <!-- need to be changed to sdk -->
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <systemPropertyVariables>
+ <config.location>${project.basedir}/configuration</config.location>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup
new file mode 100644
index 0000000000..2cb266a815
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup
@@ -0,0 +1,45 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-translator-sdk</name>
+ <artifactId>openecomp-sdc-translator-sdk</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-tosca-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..9d7224a2e1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup
@@ -0,0 +1,26 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-translator-lib</name>
+ <artifactId>openecomp-sdc-translator-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-translator-api</module>
+ <module>openecomp-sdc-translator-sdk</module>
+ <module>openecomp-sdc-translator-core</module>
+ <module>openecomp-sdc-translator-impl</module>
+ <module>att-sdc-translator-impl</module>
+ </modules>
+
+ <dependencies>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..b53f4159fc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup
@@ -0,0 +1,92 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>att-sdc-validation-impl</name>
+ <artifactId>att-sdc-validation-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-sdk</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..5850819a7f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup
@@ -0,0 +1,49 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-validation-api</name>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..8731097f41
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup
@@ -0,0 +1,110 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-validation-core</name>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-sdk</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup
new file mode 100644
index 0000000000..e2927eb5b3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup
@@ -0,0 +1,103 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-validation-impl</name>
+ <artifactId>openecomp-sdc-validation-impl</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+
+ </dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <!--dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-sdk</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency-->
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
index 5dc7bef641..485b4204c7 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.validation.impl.util;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
import org.openecomp.core.validation.types.GlobalValidationContext;
import org.openecomp.sdc.common.errors.Messages;
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ContrailValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ContrailValidator.java
index 3e7d83457f..39556795c7 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ContrailValidator.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/ContrailValidator.java
@@ -21,7 +21,7 @@
package org.openecomp.sdc.validation.impl.validators;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.validation.Validator;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
import org.openecomp.core.validation.types.GlobalValidationContext;
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/YamlValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/YamlValidator.java
index 4ae00ea2d9..445e1c2e3d 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/YamlValidator.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/YamlValidator.java
@@ -20,7 +20,7 @@
package org.openecomp.sdc.validation.impl.validators;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.validation.Validator;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
import org.openecomp.core.validation.types.GlobalValidationContext;
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
index cf2751bef7..a0c25d44f8 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
@@ -1,5 +1,7 @@
package org.openecomp.sdc.validation.impl.validators.namingconvention;
+import static java.util.Objects.nonNull;
+
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
@@ -33,11 +35,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.TreeMap;
-import static java.util.Objects.nonNull;
-
-/**
- * Created by TALIO on 2/23/2017.
- */
public class NovaServerNamingConventionGuideLineValidator implements ResourceValidator {
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
@@ -128,6 +125,11 @@ public class NovaServerNamingConventionGuideLineValidator implements ResourceVal
public boolean equals(Object obj) {
return false;
}
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
});
propertyMap.putAll((Map) novaServerPropMetadata);
if (!propertyMap.containsKey("vf_module_id")) {
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup
new file mode 100644
index 0000000000..d179ae0469
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup
@@ -0,0 +1,42 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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-validation-sdk</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.9.10</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-validation-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-heat-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/util/ValidationUtil.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/util/ValidationUtil.java
index ee15df65cf..3dcc7da876 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/util/ValidationUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/src/main/java/org/openecomp/sdc/validation/util/ValidationUtil.java
@@ -4,12 +4,10 @@ package org.openecomp.sdc.validation.util;
import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.json.JsonUtil;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
import org.openecomp.core.validation.types.GlobalValidationContext;
import org.openecomp.sdc.common.errors.Messages;
import org.openecomp.sdc.common.utils.SdcCommon;
-import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
import org.openecomp.sdc.heat.datatypes.model.Environment;
@@ -25,7 +23,7 @@ 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 org.openecomp.sdc.validation.ResourceValidator;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.io.InputStream;
import java.util.Map;
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..3188265847
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup
@@ -0,0 +1,24 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-validation-lib</name>
+ <artifactId>openecomp-sdc-validation-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-validation-api</module>
+ <module>openecomp-sdc-validation-core</module>
+ <module>openecomp-sdc-validation-impl</module>
+ <module>openecomp-sdc-validation-sdk</module>
+ <module>att-sdc-validation-impl</module>
+ </modules>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..fc22abcf38
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup
@@ -0,0 +1,55 @@
+<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>
+
+ <name>openecomp-sdc-vendor-license-api</name>
+ <artifactId>openecomp-sdc-vendor-license-api</artifactId>
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.web</groupId>
+ <artifactId>javax.el</artifactId>
+ <version>2.2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ <version>4.4.1</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java
index 28524e8977..b42f64de7c 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java
@@ -35,6 +35,8 @@ public interface EntitlementPoolDao extends VersionableDao, BaseDao<EntitlementP
EntitlementPoolEntity get(EntitlementPoolEntity entitlementPool);
+ String getManufacturerReferenceNumber(EntitlementPoolEntity entitlementPoolEntity);
+
Collection<EntitlementPoolEntity> list(EntitlementPoolEntity entitlementPool);
long count(EntitlementPoolEntity entitlementPool);
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDao.java
new file mode 100644
index 0000000000..49112ecf9f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDao.java
@@ -0,0 +1,10 @@
+package org.openecomp.sdc.vendorlicense.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.versioning.dao.VersionableDao;
+
+public interface LimitDao extends VersionableDao, BaseDao<LimitEntity> {
+
+ boolean isLimitPresent(LimitEntity limitEntity);
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDaoFactory.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDaoFactory.java
new file mode 100644
index 0000000000..72e8f42e78
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LimitDaoFactory.java
@@ -0,0 +1,10 @@
+package org.openecomp.sdc.vendorlicense.dao;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class LimitDaoFactory extends AbstractComponentFactory<LimitDao> {
+ public static LimitDaoFactory getInstance() {
+ return AbstractFactory.getInstance(LimitDaoFactory.class);
+ }
+}
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/EntitlementPoolEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
index 0a704721d5..ce225931f5 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
@@ -30,9 +30,12 @@ import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@@ -56,7 +59,7 @@ public class EntitlementPoolEntity implements VersionableEntity {
private String description;
@Column(name = "threshold")
- private int thresholdValue;
+ private Integer thresholdValue;
@Column(name = "threshold_unit")
@Enumerated
@@ -87,6 +90,12 @@ public class EntitlementPoolEntity implements VersionableEntity {
@Column(name = "version_uuid")
private String versionUuId;
+
+ private String startDate;
+ private String expiryDate;
+
+ private Collection<LimitEntity> limits;
+
public EntitlementPoolEntity() {
}
@@ -175,11 +184,11 @@ public class EntitlementPoolEntity implements VersionableEntity {
this.description = description;
}
- public int getThresholdValue() {
+ public Integer getThresholdValue() {
return thresholdValue;
}
- public void setThresholdValue(int thresholdValue) {
+ public void setThresholdValue(Integer thresholdValue) {
this.thresholdValue = thresholdValue;
}
@@ -222,7 +231,9 @@ public class EntitlementPoolEntity implements VersionableEntity {
}
public void setOperationalScope(MultiChoiceOrOther<OperationalScope> operationalScope) {
- operationalScope.resolveEnum(OperationalScope.class);
+ if(operationalScope != null) {
+ operationalScope.resolveEnum(OperationalScope.class);
+ }
this.operationalScope = operationalScope;
}
@@ -292,12 +303,83 @@ public class EntitlementPoolEntity implements VersionableEntity {
return timeForXml;
}
+ public String getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(String startDate) {
+ this.startDate = startDate;
+ }
+
+ public String getExpiryDate() {
+ return expiryDate;
+ }
+
+ public void setExpiryDate(String expiryDate) {
+ this.expiryDate = expiryDate;
+ }
+
+ public Collection<LimitEntity> getLimits() {
+ return limits;
+ }
+
+ public void setLimits(Collection<LimitEntity> limits) {
+ this.limits = limits;
+ }
+
+ public LimitForXml getSPLimits(){
+ if(limits != null){
+ Set<LimitXml> hs = new HashSet<>();
+ for(LimitEntity obj : limits){
+ if(obj.getType().equals(LimitType.ServiceProvider)){
+ LimitXml xmlObj = new LimitXml();
+ xmlObj.setDescription(obj.getDescription());
+ xmlObj.setMetric(obj.getMetric().toString());
+ xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
+ xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
+ xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
+ xmlObj.setTime(obj.getTime()!=null?obj.getTime().name():null);
+ hs.add(xmlObj);
+ }
+ }
+ LimitForXml spLimitForXml = new LimitForXml();
+ spLimitForXml.setLimits(hs);
+ return spLimitForXml;
+ }
+
+ return null;
+ }
+
+ public LimitForXml getVendorLimits(){
+ if(limits != null){
+ Set<LimitXml> hs = new HashSet<>();
+ for(LimitEntity obj : limits){
+ if(obj.getType().equals(LimitType.Vendor)){
+ LimitXml xmlObj = new LimitXml();
+ xmlObj.setDescription(obj.getDescription());
+ xmlObj.setMetric(obj.getMetric().toString());
+ xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
+ xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
+ xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
+ xmlObj.setTime(obj.getTime()!=null?obj.getTime().name():null);
+ hs.add(xmlObj);
+ }
+ }
+ LimitForXml vendorLimitForXml = new LimitForXml();
+ vendorLimitForXml.setLimits(hs);
+ return vendorLimitForXml;
+ }
+
+ return null;
+ }
+
+
@Override
public int hashCode() {
return Objects
.hash(vendorLicenseModelId, version, id, name, description, thresholdValue, thresholdUnit,
entitlementMetric, increments, aggregationFunction, operationalScope, time,
- manufacturerReferenceNumber, referencingFeatureGroups);
+ manufacturerReferenceNumber, referencingFeatureGroups, startDate, expiryDate);
}
@Override
@@ -309,7 +391,7 @@ public class EntitlementPoolEntity implements VersionableEntity {
return false;
}
EntitlementPoolEntity that = (EntitlementPoolEntity) obj;
- return Float.compare(that.thresholdValue, thresholdValue) == 0
+ return Objects.equals(that.thresholdValue, thresholdValue)
&& Objects.equals(vendorLicenseModelId, that.vendorLicenseModelId)
&& Objects.equals(id, that.id)
&& Objects.equals(name, that.name)
@@ -321,7 +403,9 @@ public class EntitlementPoolEntity implements VersionableEntity {
&& Objects.equals(operationalScope, that.operationalScope)
&& Objects.equals(time, that.time)
&& Objects.equals(manufacturerReferenceNumber, that.manufacturerReferenceNumber)
- && Objects.equals(referencingFeatureGroups, that.referencingFeatureGroups);
+ && Objects.equals(referencingFeatureGroups, that.referencingFeatureGroups)
+ && Objects.equals(startDate, that.startDate)
+ && Objects.equals(expiryDate, that.expiryDate);
}
@Override
@@ -342,6 +426,8 @@ public class EntitlementPoolEntity implements VersionableEntity {
+ ", manufacturerReferenceNumber='" + manufacturerReferenceNumber + '\''
+ ", referencingFeatureGroups=" + referencingFeatureGroups
+ ", version_uuid=" + versionUuId
+ + ", startDate=" + startDate
+ + ", expiryDate=" + expiryDate
+ '}';
}
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/FeatureGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java
index a297f8aa63..f1fc1a96f1 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java
@@ -49,6 +49,8 @@ public class FeatureGroupEntity implements VersionableEntity {
private String description;
@Column(name = "part_num")
private String partNumber;
+ @Column(name = "manufacturer_ref_num")
+ private String manufacturerReferenceNumber;
@Column(name = "lkg_ids")
private Set<String> licenseKeyGroupIds = new HashSet<>();
@Column(name = "ep_ids")
@@ -134,6 +136,14 @@ public class FeatureGroupEntity implements VersionableEntity {
this.partNumber = partNumber;
}
+ public String getManufacturerReferenceNumber() {
+ return manufacturerReferenceNumber;
+ }
+
+ public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
+ this.manufacturerReferenceNumber = manufacturerReferenceNumber;
+ }
+
public Set<String> getLicenseKeyGroupIds() {
return licenseKeyGroupIds;
}
@@ -161,8 +171,9 @@ public class FeatureGroupEntity implements VersionableEntity {
@Override
public int hashCode() {
return Objects
- .hash(vendorLicenseModelId, version, id, name, description, partNumber, licenseKeyGroupIds,
- entitlementPoolIds, referencingLicenseAgreements);
+ .hash(vendorLicenseModelId, version, id, name, description, partNumber,
+ manufacturerReferenceNumber, licenseKeyGroupIds, entitlementPoolIds,
+ referencingLicenseAgreements);
}
@Override
@@ -180,6 +191,7 @@ public class FeatureGroupEntity implements VersionableEntity {
&& Objects.equals(name, that.name)
&& Objects.equals(description, that.description)
&& Objects.equals(partNumber, that.partNumber)
+ && Objects.equals(manufacturerReferenceNumber, that.manufacturerReferenceNumber)
&& Objects.equals(licenseKeyGroupIds, that.licenseKeyGroupIds)
&& Objects.equals(entitlementPoolIds, that.entitlementPoolIds)
&& Objects.equals(referencingLicenseAgreements, that.referencingLicenseAgreements);
@@ -194,6 +206,7 @@ public class FeatureGroupEntity implements VersionableEntity {
+ ", name='" + name + '\''
+ ", description='" + description + '\''
+ ", partNumber='" + partNumber + '\''
+ + ", manufacturerReferenceNumber='" + manufacturerReferenceNumber + '\''
+ ", licenseKeyGroupIds=" + licenseKeyGroupIds
+ ", entitlementPoolIds=" + entitlementPoolIds
+ ", referencingLicenseAgreements=" + referencingLicenseAgreements
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/FeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java
index 174cbbb9b9..7e4ba8051e 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java
@@ -70,5 +70,9 @@ public class FeatureGroupModel {
return featureGroup.getPartNumber();
}
+ public String getEntityManufacturerReferenceNumber(){
+ return featureGroup.getManufacturerReferenceNumber();
+ }
+
}
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/LicenseKeyGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
index 07641594c2..654093de28 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
@@ -27,9 +27,12 @@ import com.datastax.driver.mapping.annotations.Frozen;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@@ -59,6 +62,7 @@ public class LicenseKeyGroupEntity implements VersionableEntity {
@Column(name = "version_uuid")
private String versionUuId;
+ private Collection<LimitEntity> limits;
public LicenseKeyGroupEntity() {
}
@@ -149,7 +153,9 @@ public class LicenseKeyGroupEntity implements VersionableEntity {
}
public void setOperationalScope(MultiChoiceOrOther<OperationalScope> operationalScope) {
- operationalScope.resolveEnum(OperationalScope.class);
+ if(operationalScope != null) {
+ operationalScope.resolveEnum(OperationalScope.class);
+ }
this.operationalScope = operationalScope;
}
@@ -161,6 +167,60 @@ public class LicenseKeyGroupEntity implements VersionableEntity {
this.referencingFeatureGroups = referencingFeatureGroups;
}
+ public Collection<LimitEntity> getLimits() {
+ return limits;
+ }
+
+ public void setLimits(Collection<LimitEntity> limits) {
+ this.limits = limits;
+ }
+
+ public LimitForXml getSPLimits(){
+ if(limits != null){
+ Set<LimitXml> hs = new HashSet<>();
+ for(LimitEntity obj : limits){
+ if(obj.getType().equals(LimitType.ServiceProvider)){
+ LimitXml xmlObj = new LimitXml();
+ xmlObj.setDescription(obj.getDescription());
+ xmlObj.setMetric(obj.getMetric().toString());
+ xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
+ xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
+ xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
+ xmlObj.setTime(obj.getTime()!=null?obj.getTime().name():null);
+ hs.add(xmlObj);
+ }
+ }
+ LimitForXml spLimitForXml = new LimitForXml();
+ spLimitForXml.setLimits(hs);
+ return spLimitForXml;
+ }
+
+ return null;
+ }
+
+ public LimitForXml getVendorLimits(){
+ if(limits != null){
+ Set<LimitXml> hs = new HashSet<>();
+ for(LimitEntity obj : limits){
+ if(obj.getType().equals(LimitType.Vendor)){
+ LimitXml xmlObj = new LimitXml();
+ xmlObj.setDescription(obj.getDescription());
+ xmlObj.setMetric(obj.getMetric().toString());
+ xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
+ xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
+ xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
+ xmlObj.setTime(obj.getTime()!=null?obj.getTime().name():null);
+ hs.add(xmlObj);
+ }
+ }
+ LimitForXml vendorLimitForXml = new LimitForXml();
+ vendorLimitForXml.setLimits(hs);
+ return vendorLimitForXml;
+ }
+
+ return null;
+ }
+
@Override
public int hashCode() {
return Objects
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
new file mode 100644
index 0000000000..ba9c38f453
--- /dev/null
+++ 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
@@ -0,0 +1,193 @@
+package org.openecomp.sdc.vendorlicense.dao.types;
+
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
+
+import java.util.Objects;
+
+public class LimitEntity implements VersionableEntity {
+ private static final String ENTITY_TYPE = "Limit";
+
+ private String id;
+ private String vendorLicenseModelId;
+ private String epLkgId;
+ private String name;
+ private LimitType type;
+ private String description;
+ private EntitlementMetric metric;
+ private Version version;
+ private Integer value;
+ private Integer unit;
+ private AggregationFunction aggregationFunction;
+ private EntitlementTime time;
+
+ public LimitEntity() {
+ }
+
+ public LimitEntity(String vlmId, Version version, String epLkgId, String id) {
+ this.vendorLicenseModelId = vlmId;
+ this.version = version;
+ this.epLkgId = epLkgId;
+ this.id = id;
+ }
+
+ public Integer getUnit() {
+ return unit;
+ }
+
+ public void setUnit(Integer unit) {
+ this.unit = unit;
+ }
+
+ public AggregationFunction getAggregationFunction() {
+ return aggregationFunction;
+ }
+
+ public void setAggregationFunction(
+ AggregationFunction aggregationFunction) {
+ this.aggregationFunction = aggregationFunction;
+ }
+
+ public EntitlementTime getTime() {
+ return time;
+ }
+
+ public void setTime(EntitlementTime time) {
+ this.time = time;
+ }
+
+
+ @Override
+ public String getEntityType() {
+ return ENTITY_TYPE;
+ }
+
+ @Override
+ public String getFirstClassCitizenId() {
+ return getVendorLicenseModelId();
+ }
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public Version getVersion() {
+ return version;
+ }
+
+ public String getEpLkgId() {
+ return epLkgId;
+ }
+
+ public void setEpLkgId(String epLkgId) {
+ this.epLkgId = epLkgId;
+ }
+
+ @Override
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+
+ public String getVendorLicenseModelId() {
+ return vendorLicenseModelId;
+ }
+
+ public void setVendorLicenseModelId(String vendorLicenseModelId) {
+ this.vendorLicenseModelId = vendorLicenseModelId;
+ }
+
+ public LimitType getType() {
+ return type;
+ }
+
+ public void setType(LimitType type) {
+ this.type = type;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public EntitlementMetric getMetric() {
+ return metric;
+ }
+
+ public void setMetric(EntitlementMetric metric) {
+ this.metric = metric;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(vendorLicenseModelId, version, epLkgId, id, name, description, type,
+ metric, unit, time, aggregationFunction, value);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null || getClass() != obj.getClass()) {
+ return false;
+ }
+ 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);
+
+ }
+
+ @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
+
+ + '}';
+ }
+
+}
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/LimitType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitType.java
new file mode 100644
index 0000000000..ff0eff8042
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LimitType.java
@@ -0,0 +1,10 @@
+package org.openecomp.sdc.vendorlicense.dao.types;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public enum LimitType {
+ ServiceProvider,
+ Vendor;
+
+}
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/MultiChoiceOrOther.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java
index 165260f9c5..36f54ac45e 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java
@@ -102,13 +102,15 @@ public class MultiChoiceOrOther<E extends Enum<E>> {
}
private Set<String> resolveResult() {
- results = new HashSet<>();
- if (choices.size() == 1 && OTHER_ENUM_VALUE.equals(choices.iterator().next().name())) {
- results.add(other);
- } else {
- for (E choice : choices) {
- results.add(choice.name());
- }
+ if (choices != null) {
+ results = new HashSet<>();
+ if(choices.size() == 1 && OTHER_ENUM_VALUE.equals(choices.iterator().next().name())) {
+ results.add(other);
+ } else {
+ for (E choice : choices) {
+ results.add(choice.name());
+ }
+ }
}
return results;
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMibInfo.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/LimitForXml.java
index 88dbedc136..0a3680b719 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/src/main/java/org/openecomp/core/enrichment/types/ComponentMibInfo.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/LimitForXml.java
@@ -7,9 +7,9 @@
* 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.
@@ -18,28 +18,25 @@
* ============LICENSE_END=========================================================
*/
-package org.openecomp.core.enrichment.types;
+package org.openecomp.sdc.vendorlicense.dao.types.xml;
-public class ComponentMibInfo {
- private MibInfo snmpTrap;
- private MibInfo snmpPoll;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import java.util.Set;
- public MibInfo getSnmpTrap() {
- return snmpTrap;
- }
+public class LimitForXml {
- public void setSnmpTrap(MibInfo snmpTrap) {
- this.snmpTrap = snmpTrap;
- }
+ Set<LimitXml> limits;
- public MibInfo getSnmpPoll() {
- return snmpPoll;
+ @JacksonXmlProperty(isAttribute = false, localName = "limit")
+ @JacksonXmlElementWrapper(localName = "limits", useWrapping = false)
+ public Set<LimitXml> getLimits() {
+ return limits;
}
- public void setSnmpPoll(MibInfo snmpPoll) {
- this.snmpPoll = snmpPoll;
+ public void setLimits(
+ Set<LimitXml> limits) {
+ this.limits = limits;
}
-
-
}
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/xml/LimitXml.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/LimitXml.java
new file mode 100644
index 0000000000..9cc1aed72b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/LimitXml.java
@@ -0,0 +1,95 @@
+/*-
+ * ============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.vendorlicense.dao.types.xml;
+
+public class LimitXml {
+ String description;
+ String metric;
+ String values;
+ String unit;
+ String time;
+ String aggregationFunction;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getMetric() {
+ return metric;
+ }
+
+ public void setMetric(String metric) {
+ this.metric = metric;
+ }
+
+ public String getValues() {
+ return values;
+ }
+
+ public void setValues(String values) {
+ this.values = values;
+ }
+
+ public String getUnit() {
+ return unit;
+ }
+
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public String getAggregationFunction() {
+ return aggregationFunction;
+ }
+
+ public void setAggregationFunction(String aggregationFunction) {
+ this.aggregationFunction = aggregationFunction;
+ }
+
+ public EntitlementTimeForXml getTimeForArtifact() {
+ EntitlementTimeForXml timeForXml = new EntitlementTimeForXml();
+ if (time != null) {
+ timeForXml.setValue(time);
+ }
+
+ return timeForXml;
+ }
+
+ public AggregationFunctionForXml getAggregationFunctionForArtifact() {
+ AggregationFunctionForXml aggregationFunctionForXml = new AggregationFunctionForXml();
+ if (aggregationFunction != null) {
+ aggregationFunctionForXml.setValue(aggregationFunction);
+ }
+ return aggregationFunctionForXml;
+ }
+}
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/xml/ThresholdForXml.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/ThresholdForXml.java
index 11627160ad..a50b815069 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/ThresholdForXml.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/ThresholdForXml.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.vendorlicense.dao.types.xml;
public class ThresholdForXml {
String unit;
- int value;
+ Integer value;
public String getUnit() {
return unit;
@@ -32,11 +32,11 @@ public class ThresholdForXml {
this.unit = unit;
}
- public int getValue() {
+ public Integer getValue() {
return value;
}
- public void setValue(int value) {
+ public void setValue(Integer value) {
this.value = value;
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/InvalidDateErrorBuilder.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/InvalidDateErrorBuilder.java
new file mode 100644
index 0000000000..e1857532a8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/InvalidDateErrorBuilder.java
@@ -0,0 +1,43 @@
+/*-
+ * ============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.vendorlicense.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+public class InvalidDateErrorBuilder {
+
+ private static final String DATE_RANGE_INVALID = "Vendor license model with id %s has invalid " +
+ "date range.";
+
+ private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+
+ public InvalidDateErrorBuilder(String vendorLicenseModelId){
+ builder.withId(VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+ builder.withCategory(ErrorCategory.APPLICATION);
+ builder.withMessage(String.format(DATE_RANGE_INVALID, vendorLicenseModelId));
+ }
+
+ public ErrorCode build() {
+ return builder.build();
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java
index 98f773860c..e8c252f7be 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java
@@ -26,4 +26,12 @@ public class VendorLicenseErrorCodes {
public static final String VENDOR_LICENSE_MODEL_NOT_FOUND = "VENDOR_LICENSE_MODEL_NOT_FOUND";
public static final String SUBMIT_UNCOMPLETED_LICENSE_MODEL = "SUBMIT_UNCOMPLETED_LICENSE_MODEL";
public static final String LICENSING_DATA_INVALID = "LICENSING_DATA_INVALID";
+
+ public static final String LIMIT_INVALID_TYPE = "LIMIT_INVALID_TYPE";
+ public static final String LIMIT_INVALID_METRIC = "LIMIT_INVALID_METRIC";
+ public static final String LIMIT_INVALID_AGGREGATIONFUNCTION = "LIMIT_INVALID_AGGREGATIONFUNCTION";
+ public static final String LIMIT_INVALID_TIME = "LIMIT_INVALID_TIME";
+ public static final String DUPLICATE_LIMIT_NAME_NOT_ALLOWED =
+ "DUPLICATE_LIMIT_NAME_NOT_ALLOWED";
+ public static final String DATE_RANGE_INVALID = "DATE_RANGE_INVALID";
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
index ecff0f56d6..9ab7c0c64d 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
@@ -27,6 +27,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -86,4 +87,11 @@ public interface VendorLicenseFacade {
String user);
void updateVlmLastModificationTime(String vendorLicenseModelId, Version version);
+
+ LimitEntity createLimit(LimitEntity limit, String user);
+
+ Collection<LimitEntity> listLimits(String vlmId, Version version, String epLkgId
+ ,String user);
+
+ void updateLimit(LimitEntity limit, String user);
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/resources/factoryConfiguration.json b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/resources/factoryConfiguration.json
index 7f59b42103..6c7f30d119 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/resources/factoryConfiguration.json
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/resources/factoryConfiguration.json
@@ -6,6 +6,8 @@
"org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.LicenseAgreementDaoFactoryImpl",
"org.openecomp.sdc.vendorlicense.dao.FeatureGroupDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.FeatureGroupDaoFactoryImpl",
"org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.LicenseKeyGroupDaoFactoryImpl",
- "org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.EntitlementPoolDaoFactoryImpl"
+ "org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.EntitlementPoolDaoFactoryImpl",
+ "org.openecomp.sdc.vendorlicense.dao.LimitDaoFactory": "org.openecomp.sdc.vendorlicense.dao.impl.LimitDaoFactoryImpl"
+
} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
index 61fce1d371..ea2f0dc272 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
@@ -52,7 +52,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..b1141fc5cd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup
@@ -0,0 +1,53 @@
+<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>
+
+ <name>openecomp-sdc-vendor-license-core</name>
+ <artifactId>openecomp-sdc-vendor-license-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-license-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java
index 496e653ef0..cc32d00906 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java
@@ -83,6 +83,11 @@ public class EntitlementPoolCassandraDaoImpl extends CassandraBaseDao<Entitlemen
}
@Override
+ public String getManufacturerReferenceNumber(EntitlementPoolEntity entitlementPoolEntity){
+ return null;
+ }
+
+ @Override
public Collection<EntitlementPoolEntity> list(EntitlementPoolEntity entity) {
return accessor.listByVlmVersion(entity.getVendorLicenseModelId(),
versionMapper.toUDT(entity.getVersion())).all();
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LimitDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LimitDaoFactoryImpl.java
new file mode 100644
index 0000000000..6189a8bf6f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LimitDaoFactoryImpl.java
@@ -0,0 +1,17 @@
+package org.openecomp.sdc.vendorlicense.dao.impl;
+
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.LimitDaoFactory;
+import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.LimitZusammenDaoImpl;
+
+public class LimitDaoFactoryImpl extends LimitDaoFactory {
+
+ private static LimitDao INSTANCE = new LimitZusammenDaoImpl(ZusammenAdaptorFactory.getInstance()
+ .createInterface());
+
+ @Override
+ public LimitDao createInterface() {
+ return INSTANCE;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java
index 4d9c0fa98c..1fc941bf1b 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java
@@ -1,6 +1,6 @@
package org.openecomp.sdc.vendorlicense.dao.impl.zusammen;
public enum ElementType {
-
+ Limit
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
index ffaf7809c8..4cccb6712a 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
@@ -83,7 +83,9 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
if (entitlmentpoolElement.getRelations() == null) {
entitlmentpoolElement.setRelations(new ArrayList<>());
}
- entitlmentpoolElement.getRelations().addAll(epFromDb.get().getRelations());
+ if (epFromDb.get().getRelations() != null && epFromDb.get().getRelations().size() > 0) {
+ entitlmentpoolElement.getRelations().addAll(epFromDb.get().getRelations());
+ }
}
zusammenAdaptor.saveElement(context,elementContext, entitlmentpoolElement,
@@ -203,6 +205,7 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
private ZusammenElement buildEntitlementPoolElement(EntitlementPoolEntity entitlementPool,
Action action) {
+
ZusammenElement entitlementPoolElement = new ZusammenElement();
entitlementPoolElement.setAction(action);
if (entitlementPool.getId() != null) {
@@ -220,10 +223,12 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
info.addProperty("EntitlementTime", entitlementPool.getTime());
info.addProperty("manufacturerReferenceNumber",
entitlementPool.getManufacturerReferenceNumber());
+ info.addProperty("startDate", entitlementPool.getStartDate());
+ info.addProperty("expiryDate", entitlementPool.getExpiryDate());
entitlementPoolElement.setInfo(info);
- if (entitlementPool.getReferencingFeatureGroups() != null &&
- entitlementPool.getReferencingFeatureGroups().size() > 0) {
+ if (entitlementPool.getReferencingFeatureGroups() != null
+ && entitlementPool.getReferencingFeatureGroups().size() > 0) {
entitlementPoolElement.setRelations(entitlementPool.getReferencingFeatureGroups().stream()
.map(rel -> VlmZusammenUtil
.createRelation(RelationType.EntitlmentPoolToReferencingFeatureGroup, rel))
@@ -239,9 +244,12 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
entitlmentPool.setName(elementInfo.getInfo().getName());
entitlmentPool.setDescription(elementInfo.getInfo().getDescription());
entitlmentPool
- .setThresholdValue(toInteger(elementInfo.getInfo().getProperty("thresholdValue")));
- entitlmentPool.setThresholdUnit(
- ThresholdUnit.valueOf(elementInfo.getInfo().getProperty("threshold_unit")));
+ .setThresholdValue(elementInfo.getInfo().getProperty("thresholdValue") != null
+ ? VlmZusammenUtil.toInteger(elementInfo.getInfo().getProperty("thresholdValue")) : null);
+
+ Object threshold_unit = elementInfo.getInfo().getProperty("threshold_unit");
+ entitlmentPool.setThresholdUnit( threshold_unit != null ?
+ ThresholdUnit.valueOf(elementInfo.getInfo().getProperty("threshold_unit")) : null);
entitlmentPool.setEntitlementMetric(
getEntitlementMetricCoiceOrOther(elementInfo.getInfo().getProperty("entitlement_metric")));
entitlmentPool.setIncrements(elementInfo.getInfo().getProperty("increments"));
@@ -253,6 +261,8 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
getEntitlementTimeCoiceOrOther(elementInfo.getInfo().getProperty("EntitlementTime")));
entitlmentPool.setManufacturerReferenceNumber(
elementInfo.getInfo().getProperty("manufacturerReferenceNumber"));
+ entitlmentPool.setStartDate(elementInfo.getInfo().getProperty("startDate"));
+ entitlmentPool.setExpiryDate(elementInfo.getInfo().getProperty("expiryDate"));
if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) {
entitlmentPool
@@ -282,22 +292,31 @@ public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao {
private MultiChoiceOrOther<OperationalScope> getOperationalScopeMultiChoiceOrOther
(Map<String, Object>
operationalScope) {
- Set<OperationalScope> choices = new HashSet<>();
- ((List<String>) operationalScope.get("choices")).
- forEach(choice -> choices.add(OperationalScope.valueOf(choice)));
+ if(operationalScope != null && !operationalScope.isEmpty()) {
+ Set<OperationalScope> choices = new HashSet<>();
+ ((List<String>) operationalScope.get("choices")).
+ forEach(choice -> choices.add(OperationalScope.valueOf(choice)));
- return new MultiChoiceOrOther<>(choices, (String) operationalScope.get("other"));
+ return new MultiChoiceOrOther<>(choices, operationalScope.get("other")==null?null:
+ (String) operationalScope.get("other"));
+ }
+ return null;
}
- private Integer toInteger(Object val) {
- if (val instanceof Double) {
- return ((Double) val).intValue();
- } else if (val instanceof String) {
- return new Integer((String) val);
- } else if (val instanceof Integer) {
- return (Integer) val;
+ @Override
+ public String getManufacturerReferenceNumber(EntitlementPoolEntity entitlementPoolEntity){
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(entitlementPoolEntity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VlmZusammenUtil.getVersionTag(entitlementPoolEntity.getVersion()));
+ Optional<ElementInfo> elementInfo1 = zusammenAdaptor.getElementInfo(context, elementContext, new Id(entitlementPoolEntity.getId()));
+ Map<String, Object> properties = elementInfo1.get().getInfo().getProperties();
+ String manufacturerReferenceNumber = null;
+ if(properties != null && properties.containsKey("manufacturerReferenceNumber") ) {
+ manufacturerReferenceNumber = (String)properties.get("manufacturerReferenceNumber");
}
- throw new RuntimeException("invalid value for integer:" + val.getClass());
+ return manufacturerReferenceNumber;
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java
index 6484e83319..aa9e6c7ae0 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java
@@ -176,12 +176,13 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
mapElementInfoToFeatureGroup(featureGroup.getId(), featureGroup.getVersion(),
elementInfo.get());
- if (!(removedEntitlementPools == null)) {
+ if (!(removedEntitlementPools == null )) {
currentFeatureGroup.getEntitlementPoolIds().removeAll(removedEntitlementPools);
}
if (!(addedEntitlementPools == null)) {
currentFeatureGroup.getEntitlementPoolIds().addAll(addedEntitlementPools);
}
+
if (featureGroupElement.getRelations() == null) {
featureGroupElement.setRelations(new ArrayList<>());
}
@@ -191,13 +192,12 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
.createRelation(RelationType.FeatureGroupToEntitlmentPool, relation))
.collect(Collectors.toList()));
- if (!(removedLicenseKeyGroups == null)) {
+ if (! ( removedLicenseKeyGroups == null)) {
currentFeatureGroup.getLicenseKeyGroupIds().removeAll(removedLicenseKeyGroups);
}
- if (!(addedLicenseKeyGroups == null)) {
+ if (! ( addedLicenseKeyGroups == null)) {
currentFeatureGroup.getLicenseKeyGroupIds().addAll(addedLicenseKeyGroups);
}
- currentFeatureGroup.getLicenseKeyGroupIds().addAll(addedLicenseKeyGroups);
featureGroupElement.getRelations()
.addAll(currentFeatureGroup.getLicenseKeyGroupIds().stream()
.map(relation -> VlmZusammenUtil
@@ -268,6 +268,7 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
}
private ZusammenElement buildFeatureGroupElement(FeatureGroupEntity featureGroup, Action action) {
+
ZusammenElement featureGroupElement = new ZusammenElement();
featureGroupElement.setAction(action);
if (featureGroup.getId() != null) {
@@ -277,6 +278,7 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
info.setName(featureGroup.getName());
info.setDescription(featureGroup.getDescription());
info.addProperty("partNumber", featureGroup.getPartNumber());
+ info.addProperty("manufacturerReferenceNumber", featureGroup.getManufacturerReferenceNumber());
featureGroupElement.setInfo(info);
featureGroupElement.setRelations(new ArrayList<>());
@@ -308,6 +310,7 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
.collect(Collectors.toList()));
}
return featureGroupElement;
+
}
private FeatureGroupEntity mapElementInfoToFeatureGroup(String vlmId, Version version,
@@ -317,6 +320,8 @@ public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao {
featureGroup.setName(elementInfo.getInfo().getName());
featureGroup.setDescription(elementInfo.getInfo().getDescription());
featureGroup.setPartNumber(elementInfo.getInfo().getProperty("partNumber"));
+ featureGroup.setManufacturerReferenceNumber(elementInfo.getInfo()
+ .getProperty("manufacturerReferenceNumber"));
Set<String> entitlementPoolIds = new HashSet<>();
Set<String> licenseAgreements = new HashSet<>();
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
index 03537a287b..95dfd79cb6 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
@@ -77,11 +77,12 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao {
if(lkgFromDb.isPresent()) {
if( licenseKeyGroupElement.getRelations() == null) {
- licenseKeyGroupElement.setRelations(new ArrayList<>());
+ licenseKeyGroupElement.setRelations(new ArrayList<>());
}
- lkgFromDb.get().getRelations().forEach(relation ->
- licenseKeyGroupElement.getRelations().add(relation));
+ if (lkgFromDb.get().getRelations() != null && lkgFromDb.get().getRelations().size() > 0) {
+ licenseKeyGroupElement.getRelations().addAll(lkgFromDb.get().getRelations());
+ }
}
zusammenAdaptor.saveElement(context, elementContext,
@@ -202,6 +203,7 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao {
private ZusammenElement buildLicenseKeyGroupElement(LicenseKeyGroupEntity licenseKeyGroup,
Action action) {
+
ZusammenElement lkgElement = new ZusammenElement();
lkgElement.setAction(action);
if (licenseKeyGroup.getId() != null) {
@@ -214,13 +216,14 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao {
info.addProperty("operational_scope", licenseKeyGroup.getOperationalScope());
lkgElement.setInfo(info);
- if (licenseKeyGroup.getReferencingFeatureGroups() != null &&
- licenseKeyGroup.getReferencingFeatureGroups().size() > 0) {
+ if (licenseKeyGroup.getReferencingFeatureGroups() != null
+ && licenseKeyGroup.getReferencingFeatureGroups().size() > 0) {
lkgElement.setRelations(licenseKeyGroup.getReferencingFeatureGroups().stream()
.map(rel -> VlmZusammenUtil
.createRelation(RelationType.LicenseKeyGroupToReferencingFeatureGroup, rel))
.collect(Collectors.toList()));
}
+
return lkgElement;
}
@@ -247,13 +250,13 @@ public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao {
private MultiChoiceOrOther<OperationalScope> getOperationalScopeMultiChoiceOrOther
(Map<String, Object>
operationalScope) {
-
+ if(operationalScope != null && !operationalScope.isEmpty()) {
Set<OperationalScope> choices = new HashSet<>();
- ((List<String>) operationalScope.get("choices")).
- forEach(choice -> choices.add(OperationalScope.valueOf(choice)));
+ ((List<String>) operationalScope.get("choices"))
+ .forEach(choice -> choices.add(OperationalScope.valueOf(choice)));
- return new MultiChoiceOrOther<>(choices, (String) operationalScope.get("other"));
+ return new MultiChoiceOrOther<>(choices, operationalScope.get("other")==null?null:(String) operationalScope.get("other"));
+ }
+ return null;
}
-
-
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LimitZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LimitZusammenDaoImpl.java
new file mode 100644
index 0000000000..c8612bfeaa
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LimitZusammenDaoImpl.java
@@ -0,0 +1,215 @@
+package org.openecomp.sdc.vendorlicense.dao.impl.zusammen;
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.core.zusammen.api.ZusammenUtil;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class LimitZusammenDaoImpl implements LimitDao {
+
+ public static final String LIMT_TYPE = "type";
+ public static final String METRIC = "metric";
+ public static final String AGGREGATIONFUNCTION = "aggregationfunction";
+ public static final String TIME = "time";
+ public static final String UNIT = "unit";
+ public static final String VALUE = "value";
+ private ZusammenAdaptor zusammenAdaptor;
+
+ public LimitZusammenDaoImpl(ZusammenAdaptor zusammenAdaptor) {
+ this.zusammenAdaptor = zusammenAdaptor;
+ }
+
+ @Override
+ public void create(LimitEntity limitEntity) {
+ ZusammenElement limitElement = limitToZusammen(limitEntity, Action.CREATE);
+
+ ZusammenElement limitsElement =
+ VlmZusammenUtil.buildStructuralElement(StructureElement.Limits, null);
+ limitsElement.setSubElements(Collections.singletonList(limitElement));
+
+ ZusammenElement epLkgElement =
+ buildZusammenElement(new Id(limitEntity.getEpLkgId()), Action.IGNORE);
+ epLkgElement.setSubElements(Collections.singletonList(limitsElement));
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(limitEntity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+
+ Optional<Element> savedElement =
+ zusammenAdaptor.saveElement(context, elementContext, epLkgElement, "Create limit");
+ savedElement.ifPresent(element ->
+ limitEntity.setId(element.getSubElements().iterator().next()
+ .getSubElements().iterator().next().getElementId().getValue()));
+ }
+
+ @Override
+ public boolean isLimitPresent(LimitEntity limitEntity) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(limitEntity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VlmZusammenUtil.getVersionTag(limitEntity.getVersion()));
+
+ Collection<ElementInfo> elementInfos = zusammenAdaptor.listElementsByName(context,
+ elementContext, new Id(limitEntity.getEpLkgId()),StructureElement.Limits.name());
+
+ for (ElementInfo elementInfo : elementInfos) {
+ if (elementInfo.getId().getValue().equals(limitEntity.getId())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public Collection<LimitEntity> list(LimitEntity limitEntity) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(limitEntity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VlmZusammenUtil.getVersionTag(limitEntity.getVersion()));
+
+ return listLimits(context, elementContext, limitEntity);
+ }
+
+ private Collection<LimitEntity> listLimits(SessionContext context, ElementContext elementContext,
+ LimitEntity limitEntity) {
+ return zusammenAdaptor
+ .listElementsByName(context, elementContext, new Id(limitEntity.getEpLkgId()),
+ StructureElement.Limits.name())
+ .stream().map(elementInfo -> mapElementInfoToLimit(
+ limitEntity.getVendorLicenseModelId(), limitEntity.getVersion(),
+ limitEntity.getEpLkgId(), elementInfo))
+ .collect(Collectors.toList());
+ }
+
+ private LimitEntity mapElementInfoToLimit(String vlmId, Version version,
+ String epLkgId, ElementInfo elementInfo) {
+ LimitEntity limitEntity =
+ new LimitEntity(vlmId, version, epLkgId, elementInfo.getId().getValue());
+
+ limitEntity.setName(elementInfo.getInfo().getName());
+ limitEntity.setDescription(elementInfo.getInfo().getDescription());
+ limitEntity.setType( elementInfo.getInfo().getProperties().get(LIMT_TYPE) != null ?
+ LimitType.valueOf((String) elementInfo.getInfo().getProperties().get(LIMT_TYPE)) :
+ null);
+ limitEntity.setTime( elementInfo.getInfo().getProperties().get(TIME) != null ?
+ EntitlementTime.valueOf((String) elementInfo.getInfo().getProperties().get(TIME)) :
+ null);
+ limitEntity.setMetric( elementInfo.getInfo().getProperties().get(METRIC) != null ?
+ EntitlementMetric.valueOf((String) elementInfo.getInfo().getProperties().get(METRIC)) :
+ null);
+ limitEntity.setAggregationFunction( elementInfo.getInfo().getProperties().get
+ (AGGREGATIONFUNCTION) != null ?
+ AggregationFunction.valueOf((String) elementInfo.getInfo().getProperties()
+ .get(AGGREGATIONFUNCTION)) : null);
+ Object unit = elementInfo.getInfo().getProperties().get(UNIT);
+ limitEntity.setUnit(unit != null ? VlmZusammenUtil.toInteger(unit) : null);
+ Object value = elementInfo.getInfo().getProperties().get(VALUE);
+ limitEntity.setValue(value != null ? VlmZusammenUtil.toInteger(value) : null);
+
+ return limitEntity;
+ }
+
+ @Override
+ public void update(LimitEntity entity) {
+ ZusammenElement limitElement = limitToZusammen(entity, Action.UPDATE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(entity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+
+ zusammenAdaptor.saveElement(context,elementContext, limitElement,
+ String.format("Update limit with id %s", entity.getId()));
+ }
+
+ @Override
+ public LimitEntity get(LimitEntity limitEntity) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(limitEntity.getVendorLicenseModelId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VlmZusammenUtil.getVersionTag(limitEntity.getVersion()));
+
+ return zusammenAdaptor.getElementInfo(context, elementContext, new Id(limitEntity.getId()))
+ .map(elementInfo -> mapElementInfoToLimit(
+ limitEntity.getVendorLicenseModelId(), limitEntity.getVersion(), limitEntity
+ .getEpLkgId(), elementInfo))
+ .orElse(null);
+ }
+
+ @Override
+ public void delete(LimitEntity entity) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ ZusammenElement zusammenElement = new ZusammenElement();
+ zusammenElement.setAction(Action.DELETE);
+ zusammenElement.setElementId(new Id(entity.getId()));
+
+ Id itemId = new Id(entity.getVendorLicenseModelId());
+ ElementContext elementContext =
+ new ElementContext(itemId,
+ VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, zusammenElement,
+ "delete limit Id:" + entity.getId() + ".");
+ }
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+
+ }
+
+ private ZusammenElement limitToZusammen(LimitEntity limit,
+ Action action) {
+ ZusammenElement limitElement = buildLimitElement(limit, action);
+ return limitElement;
+ }
+
+ private ZusammenElement buildLimitElement(LimitEntity limit,
+ Action action) {
+ ZusammenElement limitElement = new ZusammenElement();
+ limitElement.setAction(action);
+ if (limit.getId() != null) {
+ limitElement.setElementId(new Id(limit.getId()));
+ }
+
+ Info info = new Info();
+ info.setName(limit.getName());
+ info.setDescription(limit.getDescription());
+ info.addProperty(LIMT_TYPE, limit.getType());
+ info.addProperty(METRIC, limit.getMetric());
+ info.addProperty(AGGREGATIONFUNCTION, limit.getAggregationFunction());
+ info.addProperty(TIME, limit.getTime());
+ info.addProperty(VALUE, limit.getValue());
+ info.addProperty(UNIT, limit.getUnit());
+ limitElement.setInfo(info);
+ return limitElement;
+ }
+
+ private ZusammenElement buildZusammenElement(Id elementId, Action action) {
+ ZusammenElement element = new ZusammenElement();
+ element.setElementId(elementId);
+ element.setAction(action);
+ return element;
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java
index 767fa52d44..3cb389936d 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java
@@ -5,5 +5,6 @@ public enum StructureElement {
LicenseAgreements,
FeatureGroups,
EntitlementPools,
- LicenseKeyGroups
+ LicenseKeyGroups,
+ Limits
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java
index b2802bee66..f16d0fae67 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java
@@ -65,4 +65,15 @@ public class VlmZusammenUtil {
relation.setEdge2(edge2);
return relation;
}
+
+ public static Integer toInteger(Object val) {
+ if (val instanceof Double) {
+ return ((Double) val).intValue();
+ } else if (val instanceof String) {
+ return new Integer((String) val);
+ } else if (val instanceof Integer) {
+ return (Integer) val;
+ }
+ throw new RuntimeException("invalid value for integer:" + val.getClass());
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
index 6f3573981c..857ee7f9fa 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
@@ -20,6 +20,11 @@
package org.openecomp.sdc.vendorlicense.facade.impl;
+import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE;
+import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP;
+import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG;
+import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA;
+
import org.openecomp.core.util.UniqueValueUtil;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.sdc.common.errors.CoreException;
@@ -40,6 +45,8 @@ import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao;
import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory;
+import org.openecomp.sdc.vendorlicense.dao.LimitDao;
+import org.openecomp.sdc.vendorlicense.dao.LimitDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
@@ -48,6 +55,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
import org.openecomp.sdc.vendorlicense.errors.SubmitUncompletedLicenseModelErrorBuilder;
import org.openecomp.sdc.vendorlicense.errors.VendorLicenseModelNotFoundErrorBuilder;
@@ -67,11 +75,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE;
-import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP;
-import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG;
-import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA;
-
public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
private static final VersioningManager versioningManager =
@@ -87,6 +90,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
entitlementPoolDao = EntitlementPoolDaoFactory.getInstance().createInterface();
private static final LicenseKeyGroupDao
licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface();
+ private static final LimitDao limitDao = LimitDaoFactory.getInstance().createInterface();
private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
/**
@@ -98,6 +102,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
featureGroupDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE);
entitlementPoolDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE);
licenseKeyGroupDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE);
+ limitDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE);
}
@Override
@@ -123,6 +128,8 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
user), user);
featureGroup.setVersion(version);
+
+
return getFeatureGroup(featureGroup);
}
@@ -130,6 +137,19 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
VersioningUtil
.validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
+ if(retrieved.getManufacturerReferenceNumber() == null){
+ Object[] entitlementPoolIdsList = retrieved.getEntitlementPoolIds().toArray();
+ if(entitlementPoolIdsList != null && entitlementPoolIdsList.length > 0){
+ String entitlementPoolId = entitlementPoolIdsList[0].toString();
+ EntitlementPoolEntity entitlementPoolEntity = new EntitlementPoolEntity(retrieved.getVendorLicenseModelId(),
+ retrieved.getVersion(), entitlementPoolId);
+ entitlementPoolEntity = entitlementPoolDao.get(entitlementPoolEntity);
+ retrieved.setManufacturerReferenceNumber(entitlementPoolDao.getManufacturerReferenceNumber(
+ entitlementPoolEntity));
+ featureGroupDao.update(retrieved);
+ }
+ }
+
return retrieved;
}
@@ -443,6 +463,38 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
.resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user));
}
+ @Override
+ public LimitEntity createLimit(LimitEntity limit, String user) {
+ limit.setVersion(VersioningUtil.resolveVersion(limit.getVersion(),
+ getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user));
+ //limit.setVersionUuId(CommonMethods.nextUuId());
+ limitDao.create(limit);
+ updateVlmLastModificationTime(limit.getVendorLicenseModelId(),
+ limit.getVersion());
+ return limit;
+ }
+
+ @Override
+ public Collection<LimitEntity> listLimits(String vlmId, Version version, String epLkgId,
+ String user) {
+ return limitDao.list(new LimitEntity(vlmId, VersioningUtil
+ .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
+ epLkgId, null));
+
+ }
+
+ @Override
+ public void updateLimit(LimitEntity limit, String user) {
+ limit.setVersion(VersioningUtil.resolveVersion(limit.getVersion(),
+ getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
+ user), user));
+ //limit.setVersionUuId(CommonMethods.nextUuId());
+ limitDao.update(limit);
+ updateVlmLastModificationTime(limit.getVendorLicenseModelId(),
+ limit.getVersion());
+ }
+
private LicenseAgreementEntity getLicenseAgreement(String vlmId, String licenseAgreementId,
Version version) {
LicenseAgreementEntity input = new LicenseAgreementEntity(vlmId, version, licenseAgreementId);
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 580fc6c0e5..d91a5107af 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
@@ -28,6 +28,7 @@ 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;
@@ -37,6 +38,7 @@ import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.VnfLicenseArt
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils;
import org.openecomp.sdc.versioning.dao.types.Version;
+import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -64,19 +66,29 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
artifact.setVspId(vspId);
artifact.setVendorName(vendorName);
- for (String featureGroupId : featureGroups) {
- FeatureGroupModel featureGroupModel = vendorLicenseFacade
- .getFeatureGroupModel(new FeatureGroupEntity(vlmId, vlmVersion, featureGroupId), user);
- Set<EntitlementPoolEntity> entitlementPoolEntities = featureGroupModel.getEntitlementPools();
- Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups();
-
- featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map(
- entitlementPoolEntity -> (EntitlementPoolEntity) healingService
- .heal(entitlementPoolEntity, user)).collect(Collectors.toSet()));
- featureGroupModel.setLicenseKeyGroups(licenseKeyGroupEntities.stream().map(
- licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
- .heal(licenseKeyGroupEntity, user)).collect(Collectors.toSet()));
- artifact.getFeatureGroups().add(featureGroupModel);
+ 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){
+ entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
+ entitlementPoolEntity.getId(), user));
+ }
+ Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups();
+ for(LicenseKeyGroupEntity licenseKeyGroupEntity : licenseKeyGroupEntities){
+ licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
+ licenseKeyGroupEntity.getId(), user));
+ }
+
+ featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map(
+ entitlementPoolEntity -> (EntitlementPoolEntity) healingService
+ .heal(entitlementPoolEntity, user)).collect(Collectors.toSet()));
+ featureGroupModel.setLicenseKeyGroups(licenseKeyGroupEntities.stream().map(
+ licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
+ .heal(licenseKeyGroupEntity, user)).collect(Collectors.toSet()));
+ artifact.getFeatureGroups().add(featureGroupModel);
+ }
}
mdcDataDebugMessage.debugExitMessage("VLM name", vendorName);
@@ -95,13 +107,23 @@ public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifacts
List<Version> finalVersions = VendorLicenseArtifactsServiceUtils.getFinalVersionsForVlm(vlmId);
for (Version finalVersion : finalVersions) {
- entitlementPoolEntities
- .addAll(vendorLicenseFacade.listEntitlementPools(vlmId, finalVersion, user));
- licenseKeyGroupEntities
- .addAll(vendorLicenseFacade.listLicenseKeyGroups(vlmId, finalVersion, user));
+ Collection<EntitlementPoolEntity> coll = vendorLicenseFacade.listEntitlementPools(vlmId,
+ finalVersion, user);
+ for(EntitlementPoolEntity entitlementPoolEntity : coll){
+ entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
+ entitlementPoolEntity.getId(), user));
+ }
+ entitlementPoolEntities.addAll(coll);
+
+ Collection<LicenseKeyGroupEntity> coll2 = vendorLicenseFacade.listLicenseKeyGroups(vlmId,
+ finalVersion, user);
+ for(LicenseKeyGroupEntity licenseKeyGroupEntity : coll2){
+ licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
+ licenseKeyGroupEntity.getId(), user));
+ }
+ licenseKeyGroupEntities.addAll(coll2);
}
-
entitlementPoolEntities = VendorLicenseArtifactsServiceUtils
.healEPs(user,
VendorLicenseArtifactsServiceUtils.filterChangedEntities(entitlementPoolEntities));
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/types/FeatureGroupForArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/FeatureGroupForArtifact.java
index 6dddb9ac69..61eb474736 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/FeatureGroupForArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/FeatureGroupForArtifact.java
@@ -32,6 +32,7 @@ public class FeatureGroupForArtifact {
private String name;
private String description;
private String partNumber;
+ private String manufacturerReferenceNumber;
private String id;
public String getName() {
@@ -46,6 +47,10 @@ public class FeatureGroupForArtifact {
return partNumber;
}
+ public String getManufacturerReferenceNumber(){
+ return manufacturerReferenceNumber;
+ }
+
public String getId() {
return id;
}
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/types/VendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VendorLicenseArtifact.java
index 589b7fa668..afc1d3151b 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VendorLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VendorLicenseArtifact.java
@@ -26,8 +26,10 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinEntitlementPoolEntityForVendorLicenseArtifact;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinLicenseKeyGroupEntityForVendorLicenseArtifact;
+import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinLimitArtifact;
import java.util.Collection;
@@ -76,5 +78,6 @@ public class VendorLicenseArtifact extends XmlArtifact {
MixinEntitlementPoolEntityForVendorLicenseArtifact.class);
xmlMapper.addMixIn(LicenseKeyGroupEntity.class,
MixinLicenseKeyGroupEntityForVendorLicenseArtifact.class);
+ xmlMapper.addMixIn(LimitXml.class, MixinLimitArtifact.class);
}
}
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/types/VnfLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java
index f1da629960..b2cb710eec 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java
@@ -32,15 +32,17 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinEntitlementPoolEntityForVnfArtifact;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinFeatureGroupModel;
import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinLicenseKeyGroupEntityForVnfArtifact;
+import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinLimitArtifact;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
@JacksonXmlRootElement(localName = "vf-license-model",
namespace = "http://xmlns.openecomp.org/asdc/license-model/1.0")
@@ -93,5 +95,6 @@ public class VnfLicenseArtifact extends XmlArtifact {
xmlMapper.addMixIn(EntitlementPoolEntity.class, MixinEntitlementPoolEntityForVnfArtifact.class);
xmlMapper.addMixIn(LicenseKeyGroupEntity.class, MixinLicenseKeyGroupEntityForVnfArtifact.class);
xmlMapper.addMixIn(FeatureGroupModel.class, MixinFeatureGroupModel.class);
+ xmlMapper.addMixIn(LimitXml.class, MixinLimitArtifact.class);
}
}
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/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
index 020316f019..936f4da2a7 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
@@ -21,6 +21,7 @@
package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
@@ -28,13 +29,16 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import java.util.Collection;
import java.util.Set;
@JsonPropertyOrder({ "entitlement-pool-invariant-uuid", "entitlement-pool-uuid" })
@@ -60,6 +64,12 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact {
@JsonProperty(value = "version")
abstract String getVersionForArtifact();
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ abstract String getStartDate();
+
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ abstract String getExpiryDate();
+
@JsonIgnore
abstract String getVendorLicenseModelId();
@@ -90,7 +100,6 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact {
@JsonIgnore
abstract ChoiceOrOther<OperationalScope> getOperationalScope();
-
@JsonProperty(value = "entitlement-metric")
abstract EntitlementMetricForXml getEntitlementMetricForArtifact();
@@ -101,4 +110,12 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact {
@JsonProperty(value = "aggregation-function")
abstract AggregationFunctionForXml getAggregationFunctionForArtifact();
+ @JsonProperty(value = "sp-limits")
+ abstract LimitForXml getSPLimits();
+
+ @JsonProperty(value = "vendor-limits")
+ abstract LimitForXml getVendorLimits();
+
+ @JsonIgnore
+ abstract Collection<LimitEntity> getLimits();
}
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/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
index 064d17b8fa..1a29d5b2c9 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
@@ -21,6 +21,7 @@
package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
@@ -28,12 +29,15 @@ import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import java.util.Collection;
import java.util.Set;
public abstract class MixinEntitlementPoolEntityForVnfArtifact {
@@ -70,6 +74,12 @@ public abstract class MixinEntitlementPoolEntityForVnfArtifact {
@JsonIgnore
abstract float getThresholdValue();
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ abstract String getStartDate();
+
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ abstract String getExpiryDate();
+
@JsonIgnore
abstract ChoiceOrOther<EntitlementMetric> getEntitlementMetric();
@@ -100,4 +110,13 @@ public abstract class MixinEntitlementPoolEntityForVnfArtifact {
@JsonProperty(value = "aggregation-function")
abstract AggregationFunctionForXml getAggregationFunctionForArtifact();
+ @JsonProperty(value = "sp-limits")
+ abstract LimitForXml getSPLimits();
+
+ @JsonProperty(value = "vendor-limits")
+ abstract LimitForXml getVendorLimits();
+
+ @JsonIgnore
+ abstract Collection<LimitEntity> getLimits();
+
}
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/types/mixins/MixinFeatureGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupEntity.java
index be6bd61357..61751b111b 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupEntity.java
@@ -50,6 +50,9 @@ public abstract class MixinFeatureGroupEntity {
abstract String getPartNumber();
@JsonIgnore
+ abstract String getManufacturerReferenceNumber();
+
+ @JsonIgnore
abstract Set<String> getLicenseKeyGroupIds();
@JsonIgnore
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/types/mixins/MixinFeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
index f5eb5f0bad..75beee4c6a 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
@@ -41,6 +41,9 @@ public abstract class MixinFeatureGroupModel {
@JacksonXmlProperty(isAttribute = false, localName = "part-number")
abstract String getEntityPartNumber();
+ @JacksonXmlProperty(isAttribute = false, localName = "manufacturer-reference-number")
+ abstract String getManufacturerReferenceNumber();
+
@JacksonXmlProperty(isAttribute = false, localName = "feature-group-uuid")
abstract String getEntityId();
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/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
index b5fb2f4549..6238988ece 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
@@ -25,9 +25,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import java.util.Collection;
import java.util.Set;
public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact {
@@ -68,5 +71,13 @@ public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact {
@JsonIgnore
abstract String getVersionableId();
+ @JsonProperty(value = "sp-limits")
+ abstract LimitForXml getSPLimits();
+
+ @JsonProperty(value = "vendor-limits")
+ abstract LimitForXml getVendorLimits();
+
+ @JsonIgnore
+ abstract Collection<LimitEntity> getLimits();
}
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/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
index ed171c6a4b..80ae054db0 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
@@ -25,9 +25,12 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
+import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import java.util.Collection;
import java.util.Set;
public abstract class MixinLicenseKeyGroupEntityForVnfArtifact {
@@ -71,5 +74,13 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact {
@JsonIgnore
abstract String getVersionableId();
+ @JsonProperty(value = "sp-limits")
+ abstract LimitForXml getSPLimits();
+
+ @JsonProperty(value = "vendor-limits")
+ abstract LimitForXml getVendorLimits();
+
+ @JsonIgnore
+ abstract Collection<LimitEntity> getLimits();
}
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/types/mixins/MixinLimitArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLimitArtifact.java
new file mode 100644
index 0000000000..1a15a6e557
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLimitArtifact.java
@@ -0,0 +1,42 @@
+/*-
+ * ============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.vendorlicense.licenseartifacts.impl.types.mixins;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
+
+public abstract class MixinLimitArtifact {
+
+ @JsonIgnore
+ abstract String getTime();
+
+ @JsonIgnore
+ abstract String getAggregationFunction();
+
+ @JsonProperty(value = "aggregation-function")
+ abstract AggregationFunctionForXml getAggregationFunctionForArtifact();
+
+ @JsonProperty(value = "time")
+ abstract EntitlementTimeForXml getTimeForArtifact();
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..0b6ebb62d8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup
@@ -0,0 +1,23 @@
+<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>
+
+ <name>openecomp-sdc-vendor-license-lib</name>
+ <artifactId>openecomp-sdc-vendor-license-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-vendor-license-api</module>
+ <module>openecomp-sdc-vendor-license-core</module>
+ </modules>
+
+ <dependencies>
+
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..67f6a45c0d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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-vendor-software-product-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-core-lib</artifactId>
+ <type>pom</type>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-translator-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-enrichment-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.25-incubating</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+</project> \ No newline at end of file
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/VendorSoftwareProductConstants.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
index 8b2470a525..42dd0086c7 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
@@ -7,9 +7,9 @@
* 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.
@@ -37,8 +37,10 @@ public final class VendorSoftwareProductConstants {
public static final String NETWORK_NAME = "Network name";
public static final String COMPONENT_NAME = "ComponentData name";
public static final String NIC_NAME = "NIC name";
+ public static final String COMPUTE_NAME = "Compute name";
public static final String ORCHESTRATION_CANDIDATE_NAME = "Orchestration Candidate name";
//public static final String COMPONENT_ARTIFACT_NAME = "ComponentArtifact name";
-
+ public static final String DEPLOYMENT_FLAVOR_NAME = "Deployment Flavor name";
+ public static final String IMAGE_NAME = "Image name";
}
}
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/MibDao.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/ComponentArtifactDao.java
index 1efd21ccbf..88b5964114 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/MibDao.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/ComponentArtifactDao.java
@@ -20,24 +20,25 @@
package org.openecomp.sdc.vendorsoftwareproduct.dao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.versioning.dao.VersionableDao;
import java.util.Collection;
import java.util.Optional;
-public interface MibDao extends VersionableDao {
+public interface ComponentArtifactDao extends VersionableDao {
- Optional<MibEntity> getByType(MibEntity entity);
+ Optional<ComponentMonitoringUploadEntity> getByType(ComponentMonitoringUploadEntity entity);
- void create(MibEntity entity);
+ void create(ComponentMonitoringUploadEntity entity);
- void delete(MibEntity entity);
+ void delete(ComponentMonitoringUploadEntity entity);
- Collection<MibEntity> list(MibEntity entity);
+ Collection<ComponentMonitoringUploadEntity> list(ComponentMonitoringUploadEntity entity);
- void deleteAll(MibEntity entity);
+ void deleteAll(ComponentMonitoringUploadEntity entity);
- Collection<MibEntity> listArtifacts(MibEntity entity);
+ Collection<ComponentMonitoringUploadEntity> listArtifacts(
+ ComponentMonitoringUploadEntity entity);
}
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/ComputeDao.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/ComputeDao.java
new file mode 100644
index 0000000000..46a7f0d155
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ComputeDao.java
@@ -0,0 +1,21 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.versioning.dao.VersionableDao;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+
+public interface ComputeDao extends VersionableDao, BaseDao<ComputeEntity> {
+
+ Collection<ComputeEntity> listByVsp(String vspId, Version version);
+
+
+ void updateQuestionnaireData(String vspId, Version version, String componentId, String computeId,
+ String questionnaireData);
+ void deleteAll(String vspId, Version version);
+
+ ComputeEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId);
+}
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/ComputeDaoFactory.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/ComputeDaoFactory.java
new file mode 100644
index 0000000000..daf04f17df
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ComputeDaoFactory.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ComputeDaoFactory extends AbstractComponentFactory<ComputeDao> {
+
+
+ public static ComputeDaoFactory getInstance() {
+ return AbstractFactory.getInstance(ComputeDaoFactory.class);
+ }
+}
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/DeploymentFlavorDao.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/DeploymentFlavorDao.java
new file mode 100644
index 0000000000..e27bddb881
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/DeploymentFlavorDao.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.versioning.dao.VersionableDao;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+public interface DeploymentFlavorDao extends VersionableDao, BaseDao<DeploymentFlavorEntity> {
+ void deleteAll(String vspId, Version version);
+}
+
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/DeploymentFlavorDaoFactory.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/DeploymentFlavorDaoFactory.java
new file mode 100644
index 0000000000..796aa97457
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/DeploymentFlavorDaoFactory.java
@@ -0,0 +1,11 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class DeploymentFlavorDaoFactory extends AbstractComponentFactory<DeploymentFlavorDao> {
+ public static DeploymentFlavorDaoFactory getInstance() {
+ return AbstractFactory.getInstance(DeploymentFlavorDaoFactory.class);
+ }
+}
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/ImageDao.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/ImageDao.java
new file mode 100644
index 0000000000..90e591918a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ImageDao.java
@@ -0,0 +1,23 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+
+import org.openecomp.core.dao.BaseDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.versioning.dao.VersionableDao;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.util.Collection;
+
+public interface ImageDao extends VersionableDao, BaseDao<ImageEntity> {
+
+ void updateQuestionnaireData(String vspId, Version version, String componentId, String imageId,
+ String questionnaireData);
+
+
+ void deleteByVspId(String vspId, Version version);
+
+ Collection<ImageEntity> listByVsp(String vspId, Version version);
+
+ ImageEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String imageId);
+}
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/ImageDaoFactory.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/ImageDaoFactory.java
new file mode 100644
index 0000000000..503d44b14f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ImageDaoFactory.java
@@ -0,0 +1,11 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao;
+
+import org.openecomp.core.factory.api.AbstractComponentFactory;
+import org.openecomp.core.factory.api.AbstractFactory;
+
+public abstract class ImageDaoFactory extends AbstractComponentFactory<ImageDao> {
+
+ public static ImageDaoFactory getInstance() {
+ return AbstractFactory.getInstance(ImageDaoFactory.class);
+ }
+}
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/MibDaoFactory.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/MonitoringUploadDaoFactory.java
index 52c610caa6..b70b1a5245 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/MibDaoFactory.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/MonitoringUploadDaoFactory.java
@@ -23,10 +23,10 @@ package org.openecomp.sdc.vendorsoftwareproduct.dao;
import org.openecomp.core.factory.api.AbstractComponentFactory;
import org.openecomp.core.factory.api.AbstractFactory;
-public abstract class MibDaoFactory
- extends AbstractComponentFactory<MibDao> {
+public abstract class MonitoringUploadDaoFactory
+ extends AbstractComponentFactory<ComponentArtifactDao> {
- public static MibDaoFactory getInstance() {
- return AbstractFactory.getInstance(MibDaoFactory.class);
+ public static MonitoringUploadDaoFactory getInstance() {
+ return AbstractFactory.getInstance(MonitoringUploadDaoFactory.class);
}
}
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/VendorSoftwareProductDao.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/VendorSoftwareProductDao.java
index 85262db208..48d1e1606a 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/VendorSoftwareProductDao.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/VendorSoftwareProductDao.java
@@ -22,8 +22,12 @@ package org.openecomp.sdc.vendorsoftwareproduct.dao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
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.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.versioning.dao.VersionableDao;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -33,6 +37,7 @@ import java.util.List;
public interface VendorSoftwareProductDao extends VersionableDao {
+ //VspDetails getVendorSoftwareProductInfo(VspDetails vspDetails);
Collection<ComponentEntity> listComponents(String vspId, Version version);
@@ -77,4 +82,46 @@ public interface VendorSoftwareProductDao extends VersionableDao {
Collection<ComponentDependencyModelEntity> listComponentDependencies(String vspId,Version
version);
+ void createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavor);
+
+ Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version);
+
+ DeploymentFlavorEntity getDeploymentFlavor(String vspId, Version version, String
+ deploymentFlavorId);
+ void deleteDeploymentFlavor(String vspId, Version version, String deploymentFlavorId);
+
+
+ void createImage(ImageEntity imageEntity);
+
+ Collection<ImageEntity> listImages(String vspId, Version version, String componentId);
+
+ ImageEntity getImage(String vspId, Version version, String componentId, String imageId);
+
+ Collection<ImageEntity> listImagesByVsp(String vspId, Version version);
+
+ void createCompute(ComputeEntity computeEntity);
+
+ Collection<ComputeEntity> listComputes(String vspId, Version version, String componentId);
+
+ Collection<ComputeEntity> listComputesByVsp(String vspId, Version version);
+
+ ComputeEntity getCompute(String vspId, Version version, String componentId, String
+ computeFlavorId);
+
+ void deleteImage(String vspId, Version version, String componentId, String imageId);
+
+ void updateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity);
+
+ void updateImage(ImageEntity imageEntity);
+
+ void updateImageQuestionnaire(String vspId, Version activeVersion, String componentId,
+ String imageId, String questionnaireData);
+
+ void updateComputeQuestionnaire(String vspId, Version activeVersion, String componentId,
+ String computeId, String questionnaireData);
+
+ void updateCompute(ComputeEntity compute);
+
+ void deleteCompute(String vspId, Version version, String componentId, String computeFlavorId);
+
}
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/VendorSoftwareProductInfoDao.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/VendorSoftwareProductInfoDao.java
index ffb0d5eca7..0481829ebd 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/VendorSoftwareProductInfoDao.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/VendorSoftwareProductInfoDao.java
@@ -37,4 +37,6 @@ public interface VendorSoftwareProductInfoDao extends VersionableDao, BaseDao<Vs
VspQuestionnaireEntity getQuestionnaire(String vspId, Version version);
void deleteAll(String vspId, Version version);
+
+ boolean isManual(String vspId, Version version);
}
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/ComponentEntity.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/ComponentEntity.java
index 602fd6d15c..3e4f44328a 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/ComponentEntity.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/ComponentEntity.java
@@ -7,9 +7,9 @@
* 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.
@@ -38,7 +38,7 @@ import java.util.List;
@Table(keyspace = "dox", name = "vsp_component")
public class ComponentEntity implements CompositionEntity {
- private static final String ENTITY_TYPE = "Vendor Software Product Component";
+ public static final String ENTITY_TYPE = "Vendor Software Product Component";
@PartitionKey
@Column(name = "vsp_id")
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/MibEntity.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/ComponentMonitoringUploadEntity.java
index f057c1745a..2517b9bfab 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/MibEntity.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/ComponentMonitoringUploadEntity.java
@@ -25,7 +25,7 @@ import com.datastax.driver.mapping.annotations.Column;
import com.datastax.driver.mapping.annotations.Frozen;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
-import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
@@ -33,7 +33,7 @@ import java.io.Serializable;
import java.nio.ByteBuffer;
@Table(keyspace = "dox", name = "vsp_component_artifact")
-public class MibEntity implements VersionableEntity, Serializable {
+public class ComponentMonitoringUploadEntity implements VersionableEntity, Serializable {
public static final String ENTITY_TYPE = "Vendor Software Product Component Artifact";
@PartitionKey
@Column(name = "vsp_id")
@@ -46,7 +46,7 @@ public class MibEntity implements VersionableEntity, Serializable {
private String componentId;
@ClusteringColumn(value = 1)
@Column(name = "artifact_type")
- private ArtifactType type;
+ private MonitoringUploadType type;
@ClusteringColumn(value = 2)
@Column(name = "artifact_id")
private String id;
@@ -54,7 +54,7 @@ public class MibEntity implements VersionableEntity, Serializable {
private String artifactName;
private ByteBuffer artifact;
- public MibEntity() {
+ public ComponentMonitoringUploadEntity() {
}
@@ -66,7 +66,8 @@ public class MibEntity implements VersionableEntity, Serializable {
* @param componentId the component id
* @param id the id
*/
- public MibEntity(String vspId, Version version, String componentId, String id) {
+ public ComponentMonitoringUploadEntity(String vspId, Version version, String componentId,
+ String id) {
this.vspId = vspId;
this.version = version;
this.componentId = componentId;
@@ -131,17 +132,17 @@ public class MibEntity implements VersionableEntity, Serializable {
this.artifact = artifact;
}
- public ArtifactType getType() {
+ public MonitoringUploadType getType() {
return type;
}
- public void setType(ArtifactType type) {
+ public void setType(MonitoringUploadType type) {
this.type = type;
}
@Override
public String toString() {
- return "MibEntity{" +
+ return "ComponentMonitoringUploadEntity{" +
"vspId='" + vspId + '\'' +
", version=" + version +
", componentId='" + componentId + '\'' +
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/ComputeEntity.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/ComputeEntity.java
new file mode 100644
index 0000000000..e16aad22ed
--- /dev/null
+++ 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/ComputeEntity.java
@@ -0,0 +1,132 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.type;
+
+import com.datastax.driver.mapping.annotations.ClusteringColumn;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.Frozen;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+@Table(keyspace = "dox", name = "vsp_component_compute")
+public class ComputeEntity implements CompositionEntity {
+ public static final String ENTITY_TYPE = "Vendor Software Product Component Compute Flavor";
+
+ @PartitionKey
+ @Column(name = "vsp_id")
+ private String vspId;
+ @PartitionKey(value = 1)
+ @Frozen
+ private Version version;
+ @ClusteringColumn
+ @Column(name = "component_id")
+ private String componentId;
+ @ClusteringColumn(value = 1)
+ @Column(name = "compute_id")
+ private String id;
+ @Column(name = "composition_data")
+ private String compositionData;
+ @Column(name = "questionnaire_data")
+ private String questionnaireData;
+
+ public ComputeEntity(String vspId, Version version, String componentId, String id) {
+ this.vspId = vspId;
+ this.version = version;
+ this.componentId = componentId;
+ this.id = id;
+ }
+
+ public ComputeEntity() {
+ }
+
+ @Override
+ public String getEntityType() {
+ return ENTITY_TYPE;
+ }
+
+ @Override
+ public String getFirstClassCitizenId() {
+ return getVspId();
+ }
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public Version getVersion() {
+ return version;
+ }
+
+ @Override
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+
+ @Override
+ public CompositionEntityType getType() {
+ return CompositionEntityType.compute;
+ }
+
+ @Override
+ public CompositionEntityId getCompositionEntityId() {
+ return new CompositionEntityId(getId(),
+ new CompositionEntityId(getComponentId(), new CompositionEntityId(getVspId(), null)));
+ }
+
+ @Override
+ public String getCompositionData() {
+ return compositionData;
+ }
+
+ @Override
+ public void setCompositionData(String compositionData) {
+ this.compositionData = compositionData;
+ }
+
+ @Override
+ public String getQuestionnaireData() {
+ return questionnaireData;
+ }
+
+ @Override
+ public void setQuestionnaireData(String questionnaireData) {
+ this.questionnaireData = questionnaireData;
+ }
+
+ public String getVspId() {
+ return vspId;
+ }
+
+ public void setVspId(String vspId) {
+ this.vspId = vspId;
+ }
+
+ public String getComponentId() {
+ return componentId;
+ }
+
+ public void setComponentId(String componentId) {
+ this.componentId = componentId;
+ }
+
+ public ComputeData getComputeCompositionData() {
+ return compositionData == null ? null
+ : JsonUtil.json2Object(compositionData, ComputeData.class);
+ }
+
+ public void setComputeCompositionData(ComputeData computeData){
+ this.compositionData = computeData == null ? null : JsonUtil.object2Json(computeData);
+ }
+
+
+}
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/DeploymentFlavorEntity.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/DeploymentFlavorEntity.java
new file mode 100644
index 0000000000..b20e11077f
--- /dev/null
+++ 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/DeploymentFlavorEntity.java
@@ -0,0 +1,159 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.type;
+
+import com.datastax.driver.mapping.annotations.*;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+@Table(keyspace = "dox", name = "vsp_deployment_flavor")
+public class DeploymentFlavorEntity implements CompositionEntity{
+ private static final String ENTITY_TYPE = "Vendor Software Product Deployment Flavor";
+
+ @PartitionKey
+ @Column(name = "vsp_id")
+ private String vspId;
+ @PartitionKey(value = 1)
+ @Frozen
+ private Version version;
+ @ClusteringColumn
+ @Column(name = "deployment_flavor_id")
+ private String id;
+ @Column(name = "composition_data")
+ private String compositionData;
+ @Column(name = "questionnaire_data")
+ private String questionnaireData;
+
+
+ public DeploymentFlavorEntity(){
+
+ }
+
+ /**
+ * Instantiates a new DeploymentFlavor entity.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param id the id
+ */
+ public DeploymentFlavorEntity(String vspId, Version version, String id) {
+ this.vspId = vspId;
+ this.version = version;
+ this.id = id;
+ }
+ @Override
+ public CompositionEntityType getType() {
+ return CompositionEntityType.deployment;
+ }
+
+ @Override
+ public CompositionEntityId getCompositionEntityId() {
+ return new CompositionEntityId(getId(), new CompositionEntityId(getVspId(), null));
+ }
+
+ @Override
+ public String getCompositionData() {
+ return compositionData;
+ }
+
+ @Override
+ public void setCompositionData(String compositionData) {
+ this.compositionData = compositionData;
+ }
+
+ @Override
+ public String getQuestionnaireData() {
+ return questionnaireData;
+ }
+
+ @Override
+ public void setQuestionnaireData(String questionnaireData) {
+ this.questionnaireData = questionnaireData;
+ }
+
+ public String getVspId() {
+ return vspId;
+ }
+
+ public void setVspId(String vspId) {
+ this.vspId = vspId;
+ }
+
+ @Override
+ public String getEntityType() {
+ return ENTITY_TYPE;
+ }
+
+ @Override
+ public String getFirstClassCitizenId() {
+ return getVspId();
+ }
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public Version getVersion() {
+ return version;
+ }
+
+ @Override
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+
+ public DeploymentFlavor getDeploymentFlavorCompositionData() {
+ return compositionData == null ? null : JsonUtil.json2Object(compositionData, DeploymentFlavor.class);
+ }
+
+ public void setDeploymentFlavorCompositionData(DeploymentFlavor deploymentFlavor) {
+ this.compositionData = deploymentFlavor == null ? null : JsonUtil.object2Json(deploymentFlavor);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = vspId != null ? vspId.hashCode() : 0;
+ result = 31 * result + (version != null ? version.hashCode() : 0);
+ result = 31 * result + (id != null ? id.hashCode() : 0);
+ result = 31 * result + (compositionData != null ? compositionData.hashCode() : 0);
+ result = 31 * result + (questionnaireData != null ? questionnaireData.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (this == object) {
+ return true;
+ }
+ if (object == null || getClass() != object.getClass()) {
+ return false;
+ }
+
+ DeploymentFlavorEntity that = (DeploymentFlavorEntity) object;
+
+ if (vspId != null ? !vspId.equals(that.vspId) : that.vspId != null) {
+ return false;
+ }
+ if (version != null ? !version.equals(that.version) : that.version != null) {
+ return false;
+ }
+ if (id != null ? !id.equals(that.id) : that.id != null) {
+ return false;
+ }
+ if (compositionData != null ? !compositionData.equals(that.compositionData)
+ : that.compositionData != null) {
+ return false;
+ }
+ return questionnaireData != null ? questionnaireData.equals(that.questionnaireData)
+ : that.questionnaireData == null;
+
+ }
+} \ No newline at end of file
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/ImageEntity.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/ImageEntity.java
new file mode 100644
index 0000000000..4950229486
--- /dev/null
+++ 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/ImageEntity.java
@@ -0,0 +1,175 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.type;
+
+import com.datastax.driver.mapping.annotations.ClusteringColumn;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.Frozen;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+@Table(keyspace = "dox", name = "vsp_component_image")
+public class ImageEntity implements CompositionEntity {
+
+ private static final String ENTITY_TYPE = "Vendor Software Product Component Image";
+
+ @PartitionKey
+ @Column(name = "vsp_id")
+ private String vspId;
+ @PartitionKey(value = 1)
+ @Frozen
+ private Version version;
+ @ClusteringColumn
+ @Column(name = "component_id")
+ private String componentId;
+ @ClusteringColumn(value = 1)
+ @Column(name = "image_id")
+ private String id;
+ @Column(name = "composition_data")
+ private String compositionData;
+ @Column(name = "questionnaire_data")
+ private String questionnaireData;
+
+
+ public ImageEntity() {
+ }
+
+ /**
+ * Instantiates a new Image entity.
+ *
+ * @param vspId the vsp id
+ * @param version the version
+ * @param id the id
+ */
+ public ImageEntity(String vspId, Version version, String componentId, String id) {
+ this.vspId = vspId;
+ this.version = version;
+ this.componentId = componentId;
+ this.id = id;
+ }
+
+ public String getVspId() {
+ return vspId;
+ }
+
+ public void setVspId(String vspId) {
+ this.vspId = vspId;
+ }
+
+ public Version getVersion() {
+ return version;
+ }
+
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+
+ public String getComponentId() {
+ return componentId;
+ }
+
+ public void setComponentId(String componentId) {
+ this.componentId = componentId;
+ }
+
+ @Override
+ public String getEntityType() {
+ return ENTITY_TYPE;
+ }
+
+ @Override
+ public String getFirstClassCitizenId() {
+ return getVspId();
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getQuestionnaireData() {
+ return questionnaireData;
+ }
+
+ public void setQuestionnaireData(String questionnaireData) {
+ this.questionnaireData = questionnaireData;
+ }
+
+ @Override
+ public CompositionEntityType getType() {
+ return CompositionEntityType.image;
+ }
+
+ @Override
+ public CompositionEntityId getCompositionEntityId() {
+ return new CompositionEntityId(getId(),
+ new CompositionEntityId(getComponentId(), new CompositionEntityId(getVspId(), null)));
+ }
+
+ public String getCompositionData() {
+ return compositionData;
+ }
+
+ public void setCompositionData(String compositionData) {
+ this.compositionData = compositionData;
+ }
+
+ public Image getImageCompositionData() {
+ return compositionData == null ? null : JsonUtil.json2Object(compositionData, Image.class);
+ }
+
+ public void setImageCompositionData(Image image) {
+ this.compositionData = image == null ? null : JsonUtil.object2Json(image);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = vspId != null ? vspId.hashCode() : 0;
+ result = 31 * result + (version != null ? version.hashCode() : 0);
+ result = 31 * result + (componentId != null ? componentId.hashCode() : 0);
+ result = 31 * result + (id != null ? id.hashCode() : 0);
+ result = 31 * result + (compositionData != null ? compositionData.hashCode() : 0);
+ result = 31 * result + (questionnaireData != null ? questionnaireData.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (this == object) {
+ return true;
+ }
+ if (object == null || getClass() != object.getClass()) {
+ return false;
+ }
+
+ ImageEntity imageEntity = (ImageEntity) object;
+
+ if (vspId != null ? !vspId.equals(imageEntity.vspId) : imageEntity.vspId != null) {
+ return false;
+ }
+ if (version != null ? !version.equals(imageEntity.version) : imageEntity.version != null) {
+ return false;
+ }
+ if (componentId != null ? !componentId.equals(imageEntity.componentId)
+ : imageEntity.componentId != null) {
+ return false;
+ }
+ if (id != null ? !id.equals(imageEntity.id) : imageEntity.id != null) {
+ return false;
+ }
+ if (compositionData != null ? !compositionData.equals(imageEntity.compositionData)
+ : imageEntity.compositionData != null) {
+ return false;
+ }
+ return questionnaireData != null ? questionnaireData.equals(imageEntity.questionnaireData)
+ : imageEntity.questionnaireData == null;
+
+ }
+}
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/NicEntity.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/NicEntity.java
index 656693c14d..a954ada570 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/NicEntity.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/NicEntity.java
@@ -7,9 +7,9 @@
* 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.
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 0019bce477..2758e3dfe9 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
@@ -7,9 +7,9 @@
* 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.
@@ -60,6 +60,7 @@ public class VspDetails implements VersionableEntity {
private Long writetimeMicroSeconds;
+ private String onboardingMethod;
public VspDetails() {
}
@@ -214,6 +215,12 @@ public class VspDetails implements VersionableEntity {
this.oldVersion = oldVersion;
}
+ public String getOnboardingMethod() {
+ return onboardingMethod;
+ }
+ public void setOnboardingMethod(String onboardingMethod) {
+ this.onboardingMethod = onboardingMethod;
+ }
@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/composition/CompositionEntityDataManager.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/composition/CompositionEntityDataManager.java
index 5bde801188..6c636fddf0 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/composition/CompositionEntityDataManager.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/composition/CompositionEntityDataManager.java
@@ -22,6 +22,9 @@ package org.openecomp.sdc.vendorsoftwareproduct.services.composition;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.CompositionEntity;
+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;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
@@ -74,4 +77,17 @@ public interface CompositionEntityDataManager {
NicEntity createNic(NicEntity nic);
+ public ComputeEntity createCompute(ComputeEntity compute);
+
+ public DeploymentFlavorEntity createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavor);
+
+ public ImageEntity createImage(ImageEntity image);
+
+ public void saveComputesFlavorByComponent(String vspId, Version version, Component component, String
+ componentId);
+ public void saveImagesByComponent(String vspId, Version version, Component component, String
+ componentId);
+ public void saveDeploymentFlavors(String vspId, Version version,
+ CompositionData compositionData);
+
}
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/impl/HeatFileAnalyzerRowDataImpl.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/impl/HeatFileAnalyzerRowDataImpl.java
index d26942219f..f7ca6463cb 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/impl/HeatFileAnalyzerRowDataImpl.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/impl/HeatFileAnalyzerRowDataImpl.java
@@ -108,6 +108,9 @@ public class HeatFileAnalyzerRowDataImpl implements HeatFileAnalyzer {
}
analyzedZipHeatFiles.addNestedFiles(fetchFileNamesToReturn(nestedFilesNames,
foundHeatIdentifier));
+ if (Objects.nonNull(bfReader)) {
+ bfReader.close();
+ }
}
}
return analyzedZipHeatFiles;
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/types/composition/Component.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Component.java
index b112ee2216..1e30144be3 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Component.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Component.java
@@ -25,6 +25,8 @@ import java.util.List;
public class Component {
private ComponentData data;
private List<Nic> nics;
+ private List<Image> images;
+ private List<ComputeData> compute;
public ComponentData getData() {
return data;
@@ -41,4 +43,21 @@ public class Component {
public void setNics(List<Nic> nics) {
this.nics = nics;
}
+
+ public List<Image> getImages() {
+ return images;
+ }
+
+ public void setImages(List<Image> images) {
+ this.images = images;
+ }
+
+ public List<ComputeData> getCompute() {
+ return compute;
+ }
+
+ public void setCompute(
+ List<ComputeData> compute) {
+ this.compute = compute;
+ }
}
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/types/composition/ComponentComputeAssociation.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComponentComputeAssociation.java
new file mode 100644
index 0000000000..35e9bad9bd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComponentComputeAssociation.java
@@ -0,0 +1,22 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+
+public class ComponentComputeAssociation {
+ private String componentId;
+ private String computeFlavorId;
+
+ public String getComponentId() {
+ return componentId;
+ }
+ public void setComponentId(String componentId) {
+ this.componentId = componentId;
+ }
+ public String getComputeFlavorId() {
+ return computeFlavorId;
+ }
+
+ public void setComputeFlavorId(String computeFlavorId) {
+ this.computeFlavorId = computeFlavorId;
+ }
+
+}
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/types/composition/ComponentData.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComponentData.java
index 28d187ec69..ba06d42fea 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComponentData.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComponentData.java
@@ -25,6 +25,8 @@ public class ComponentData implements CompositionDataEntity {
private String description;
private String displayName;
private String vfcCode;
+ private String nfcCode;
+ private String nfcFunction;
public String getName() {
return name;
@@ -50,6 +52,22 @@ public class ComponentData implements CompositionDataEntity {
this.displayName = displayName;
}
+ public String getNfcCode() {
+ return nfcCode;
+ }
+
+ public void setNfcCode(String nfcCode) {
+ this.nfcCode = nfcCode;
+ }
+
+ public String getNfcFunction() {
+ return nfcFunction;
+ }
+
+ public void setNfcFunction(String nfcFunction) {
+ this.nfcFunction = nfcFunction;
+ }
+
@Override
public int hashCode() {
int result = name.hashCode();
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/types/composition/CompositionEntityType.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/CompositionEntityType.java
index 4695210de5..2b1ea16889 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/CompositionEntityType.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/CompositionEntityType.java
@@ -25,5 +25,8 @@ public enum CompositionEntityType {
vsp,
network,
component,
- nic
+ deployment,
+ image,
+ nic,
+ compute
}
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/types/composition/ComputeData.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComputeData.java
new file mode 100644
index 0000000000..20ae5438de
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ComputeData.java
@@ -0,0 +1,52 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+public class ComputeData implements CompositionDataEntity {
+ private String name;
+ private String description;
+
+ public ComputeData(){}
+
+ public ComputeData(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = name.hashCode();
+ result = 31 * result + (description != null ? description.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (this == object) {
+ return true;
+ }
+ if (!(object instanceof ComputeData)) {
+ return false;
+ }
+
+ ComputeData that = (ComputeData) object;
+
+ if (!name.equals(that.name)) {
+ return false;
+ }
+ return description != null ? description.equals(that.description): that.description == null;
+ }
+}
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/types/composition/DeploymentFlavor.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/DeploymentFlavor.java
new file mode 100644
index 0000000000..1c84db3cf8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/DeploymentFlavor.java
@@ -0,0 +1,44 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+
+import java.util.List;
+
+public class DeploymentFlavor implements CompositionDataEntity {
+ private String model;
+ private String description;
+ private String featureGroupId;
+ private List<ComponentComputeAssociation> componentComputeAssociations;
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getFeatureGroupId() {
+ return featureGroupId;
+ }
+
+ public void setFeatureGroupId(String featureGroupId) {
+ this.featureGroupId = featureGroupId;
+ }
+
+ public List<ComponentComputeAssociation> getComponentComputeAssociations() {
+ return componentComputeAssociations;
+ }
+
+ public void setComponentComputeAssociations(List<ComponentComputeAssociation> componentComputeAssociations) {
+ this.componentComputeAssociations = componentComputeAssociations;
+ }
+
+}
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/types/composition/ExtractCompositionDataContext.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ExtractCompositionDataContext.java
index 6736512cee..3fce395f44 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ExtractCompositionDataContext.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ExtractCompositionDataContext.java
@@ -20,10 +20,6 @@
package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -35,6 +31,8 @@ public class ExtractCompositionDataContext {
private List<Network> networks = new ArrayList<>();
private List<Component> components = new ArrayList<>();
private Map<String, Nic> nics = new HashMap<>();
+ private Map<String, Image> images = new HashMap<>();
+ private Map<String, ComputeData> computes = new HashMap<>();
private Set<String> handledServiceTemplates = new HashSet<>();
private Set<String> createdComponents = new HashSet<>();
@@ -130,5 +128,29 @@ public class ExtractCompositionDataContext {
this.nics.put(nicId, nic);
}
+ public Map<String, Image> getImages() {
+ return images;
+ }
+
+ public void setImages(Map<String, Image> images) {
+ this.images = images;
+ }
+
+ public void addImage(String imageId, Image image) {
+ this.images.put(imageId, image);
+ }
+
+
+ public Map<String, ComputeData> getComputes() {
+ return computes;
+ }
+
+ public void setComputes(
+ Map<String, ComputeData> computes) {
+ this.computes = computes;
+ }
+ public void addCompute(String computeId, ComputeData computedata ){
+ this.computes.put(computeId,computedata);
+ }
}
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/types/composition/Image.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Image.java
new file mode 100644
index 0000000000..d35501c7d1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Image.java
@@ -0,0 +1,68 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+
+public class Image implements CompositionDataEntity {
+
+ private String fileName;
+ private String description;
+ /*private String version;
+ private String format;
+ private String md5;
+ //private String providedBy;*/
+
+ public Image(){
+ }
+
+ public Image(String fileName){
+ this.fileName=fileName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /*public String getMd5() {
+ return md5;
+ }
+
+ public void setMd5(String md5) {
+ this.md5 = md5;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(String format) {
+ this.format = format;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }*/
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ /*public String getProvidedBy() {
+ return providedBy;
+ }
+
+ public void setProvidedBy(String providedBy) {
+ this.providedBy = providedBy;
+ }*/
+
+}
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/types/composition/ImageData.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ImageData.java
new file mode 100644
index 0000000000..beb60f8767
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ImageData.java
@@ -0,0 +1,32 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+public class ImageData implements CompositionDataEntity {
+
+ private String fileName;
+ private String description;
+
+ public ImageData(){
+
+ }
+
+ public ImageData(String fileName, String description) {
+ this.fileName = fileName;
+ this.description = description;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
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/types/composition/ImageFormat.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ImageFormat.java
new file mode 100644
index 0000000000..6e408170cd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/ImageFormat.java
@@ -0,0 +1,13 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+public enum ImageFormat {
+ aki,
+ ami,
+ ari,
+ iso,
+ qcow2,
+ raw,
+ vdi,
+ vhd,
+ vmdk
+}
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/types/composition/Nic.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Nic.java
index 24832951a8..f7c3911772 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Nic.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/Nic.java
@@ -20,12 +20,14 @@
package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
public class Nic implements CompositionDataEntity {
private String name;
private String description;
private String networkId;
private String networkName;
private NetworkType networkType;
+ private String networkDescription;
public String getName() {
return name;
@@ -67,12 +69,21 @@ public class Nic implements CompositionDataEntity {
this.networkType = networkType;
}
+ public String getNetworkDescription(){
+ return networkDescription;
+ }
+
+ public void setNetworkDescription(String networkDescription){
+ this.networkDescription=networkDescription;
+ }
+
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (networkId != null ? networkId.hashCode() : 0);
result = 31 * result + (networkType != null ? networkType.hashCode() : 0);
+ result = 31 * result + (networkDescription != null ? networkDescription.hashCode() : 0);
return result;
}
@@ -96,6 +107,12 @@ public class Nic implements CompositionDataEntity {
if (networkId != null ? !networkId.equals(nic.networkId) : nic.networkId != null) {
return false;
}
+ if (networkType != null ? !networkType.equals(nic.networkType) : nic.networkType != null) {
+ return false;
+ }
+ if (networkDescription != null ? !networkDescription.equals(nic.networkDescription) : nic.networkDescription != null) {
+ return false;
+ }
return networkType == nic.networkType;
}
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/types/composition/VmSizing.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/VmSizing.java
new file mode 100644
index 0000000000..b28469fcd4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/composition/VmSizing.java
@@ -0,0 +1,58 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.composition;
+
+public class VmSizing {
+ private int numOfCPUs;
+ private int fileSystemSizeGB;
+ private int persistentStorageVolumeSize;
+ private int ioOperationsPerSec;
+ private String cpuOverSubscriptionRatio;
+ private String memoryRAM;
+
+ public int getNumOfCPUs() {
+ return numOfCPUs;
+ }
+
+ public void setNumOfCPUs(int numOfCPUs) {
+ this.numOfCPUs = numOfCPUs;
+ }
+
+ public int getFileSystemSizeGB() {
+ return fileSystemSizeGB;
+ }
+
+ public void setFileSystemSizeGB(int fileSystemSizeGB) {
+ this.fileSystemSizeGB = fileSystemSizeGB;
+ }
+
+ public int getPersistentStorageVolumeSize() {
+ return persistentStorageVolumeSize;
+ }
+
+ public void setPersistentStorageVolumeSize(int persistentStorageVolumeSize) {
+ this.persistentStorageVolumeSize = persistentStorageVolumeSize;
+ }
+
+ public int getIoOperationsPerSec() {
+ return ioOperationsPerSec;
+ }
+
+ public void setIoOperationsPerSec(int ioOperationsPerSec) {
+ this.ioOperationsPerSec = ioOperationsPerSec;
+ }
+
+ public String getCpuOverSubscriptionRatio() {
+ return cpuOverSubscriptionRatio;
+ }
+
+ public void setCpuOverSubscriptionRatio(String cpuOverSubscriptionRatio) {
+ this.cpuOverSubscriptionRatio = cpuOverSubscriptionRatio;
+ }
+
+ public String getMemoryRAM() {
+ return memoryRAM;
+ }
+
+ public void setMemoryRAM(String memoryRAM) {
+ this.memoryRAM = memoryRAM;
+ }
+}
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/types/questionnaire/component/compute/VmSizing.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/questionnaire/component/compute/VmSizing.java
index 2ae7f48f33..fb4aaa61f1 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/questionnaire/component/compute/VmSizing.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/questionnaire/component/compute/VmSizing.java
@@ -20,14 +20,13 @@
package org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute;
-/**
- * Created by TALIO on 11/22/2016.
- */
public class VmSizing {
private int numOfCPUs;
- private int fileSystemSizeGB;
+ private String fileSystemSizeGB;
private int persistentStorageVolumeSize;
private int IOOperationsPerSec;
+ private String cpuOverSubscriptionRatio;
+ private String memoryRAM;
public int getNumOfCPUs() {
return numOfCPUs;
@@ -37,11 +36,11 @@ public class VmSizing {
this.numOfCPUs = numOfCPUs;
}
- public int getFileSystemSizeGB() {
+ public String getFileSystemSizeGB() {
return fileSystemSizeGB;
}
- public void setFileSystemSizeGB(int fileSystemSizeGB) {
+ public void setFileSystemSizeGB(String fileSystemSizeGB) {
this.fileSystemSizeGB = fileSystemSizeGB;
}
@@ -60,4 +59,20 @@ public class VmSizing {
public void setIOOperationsPerSec(int IOOperationsPerSec) {
this.IOOperationsPerSec = IOOperationsPerSec;
}
+
+ public String getCpuOverSubscriptionRatio() {
+ return cpuOverSubscriptionRatio;
+ }
+
+ public void setCpuOverSubscriptionRatio(String cpuOverSubscriptionRatio) {
+ this.cpuOverSubscriptionRatio = cpuOverSubscriptionRatio;
+ }
+
+ public String getMemoryRAM() {
+ return memoryRAM;
+ }
+
+ public void setMemoryRAM(String memoryRAM) {
+ this.memoryRAM = memoryRAM;
+ }
}
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/types/questionnaire/component/image/ImageDetails.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/questionnaire/component/image/ImageDetails.java
new file mode 100644
index 0000000000..d051370add
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/questionnaire/component/image/ImageDetails.java
@@ -0,0 +1,33 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.image;
+
+
+public class ImageDetails {
+
+ private String version;
+ private String format;
+ private String md5;
+
+ public String getMd5() {
+ return md5;
+ }
+
+ public void setMd5(String md5) {
+ this.md5 = md5;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(String format) {
+ this.format = format;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+}
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/types/schemagenerator/ComputeCompositionSchemaInput.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/ComputeCompositionSchemaInput.java
new file mode 100644
index 0000000000..4988ec92bf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/ComputeCompositionSchemaInput.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+
+public class ComputeCompositionSchemaInput implements SchemaTemplateInput {
+
+ private boolean manual;
+ private ComputeData compute;
+
+ public boolean isManual() {
+ return manual;
+ }
+
+ public void setManual(boolean manual) {
+ this.manual = manual;
+ }
+
+ public ComputeData getCompute() {
+ return compute;
+ }
+
+ public void setCompute(ComputeData compute) {
+ this.compute = compute;
+ }
+}
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/types/schemagenerator/DeploymentFlavorCompositionSchemaInput.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/DeploymentFlavorCompositionSchemaInput.java
new file mode 100644
index 0000000000..a82685e68a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/DeploymentFlavorCompositionSchemaInput.java
@@ -0,0 +1,39 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator;
+
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+
+import java.util.Collection;
+
+public class DeploymentFlavorCompositionSchemaInput implements SchemaTemplateInput {
+
+ private boolean manual;
+ private DeploymentFlavor deploymentFlavor;
+ private Collection<String> featureGroupIds;
+
+ public boolean isManual() {
+ return manual;
+ }
+
+ public void setManual(boolean manual) {
+ this.manual = manual;
+ }
+
+ public DeploymentFlavor getDeploymentFlavor() {
+ return deploymentFlavor;
+ }
+
+ public void setDeploymentFlavor(
+ DeploymentFlavor deploymentFlavor) {
+ this.deploymentFlavor = deploymentFlavor;
+ }
+
+ public Collection<String> getFeatureGroupIds() {
+ return featureGroupIds;
+ }
+
+ public void setFeatureGroupIds(Collection<String> featureGroupIds) {
+ this.featureGroupIds = featureGroupIds;
+ }
+
+}
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/types/schemagenerator/ImageCompositionSchemaInput.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/ImageCompositionSchemaInput.java
new file mode 100644
index 0000000000..add08a7020
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/types/schemagenerator/ImageCompositionSchemaInput.java
@@ -0,0 +1,18 @@
+package org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator;
+
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
+
+public class ImageCompositionSchemaInput implements SchemaTemplateInput {
+
+ public Image getImage() {
+ return image;
+ }
+
+ public void setImage(Image image) {
+ this.image = image;
+ }
+
+ private Image image;
+
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/resources/factoryConfiguration.json b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/resources/factoryConfiguration.json
index 85177c42c1..52c6119ae6 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/resources/factoryConfiguration.json
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/resources/factoryConfiguration.json
@@ -8,16 +8,19 @@
"org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.PackageInfoDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.NetworkDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ComponentDaoFactoryImpl",
- "org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.MibDaoFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.MonitoringUploadDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.NicDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.VspQuestionnaireDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.VspQuestionnaireDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ProcessDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessArtifactDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ProcessArtifactDaoFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ImageDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.QuestionnnaireDataServiceFactory": "org.openecomp.sdc.vendorsoftwareproduct.factory.QuestionnaireDataServiceFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.InformationArtifactGeneratorFactory":"org.openecomp.sdc.vendorsoftwareproduct.factory.InformationArtifactGeneratorFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.CandidateServiceFactory": "org.openecomp.sdc.vendorsoftwareproduct.factory.impl.CandidateServiceFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionDataExtractorFactory": "org.openecomp.sdc.vendorsoftwareproduct.factory.impl.CompositionDataExtractorFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory": "org.openecomp.sdc.vendorsoftwareproduct.factory.impl.CompositionEntityDataManagerFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.factory.ManifestCreatorFactory": "org.openecomp.sdc.vendorsoftwareproduct.factory.impl.ManifestCreatorFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.DeploymentFlavorDaoFactoryImpl",
+ "org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ComputeDaoFactoryImpl",
"org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory": "org.openecomp.sdc.vendorsoftwareproduct.dao.impl.ComponentDependencyModelDaoFactoryImpl"
} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
index 1d6530b455..343f4aef62 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
@@ -14,6 +14,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.openecomp.sdc</groupId>
<artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
<version>${project.version}</version>
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..634e0874ac
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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-vendor-software-product-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-api</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.23</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>${testng.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-config-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-model-impl</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>fop</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>2.7.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>1707.0.0-SNAPSHOT</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-configuration-management-api</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project> \ No newline at end of file
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/ComputeDaoCassandraImpl.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/ComputeDaoCassandraImpl.java
new file mode 100644
index 0000000000..ba878c661e
--- /dev/null
+++ 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/ComputeDaoCassandraImpl.java
@@ -0,0 +1,120 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.UDTValue;
+import com.datastax.driver.mapping.Mapper;
+import com.datastax.driver.mapping.Result;
+import com.datastax.driver.mapping.UDTMapper;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.core.dao.impl.CassandraBaseDao;
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.versioning.VersioningManagerFactory;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.UniqueValueMetadata;
+import org.openecomp.sdc.versioning.types.VersionableEntityMetadata;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+public class ComputeDaoCassandraImpl extends CassandraBaseDao<ComputeEntity> implements
+ ComputeDao {
+
+ private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
+ private static final Mapper<ComputeEntity> mapper =
+ noSqlDb.getMappingManager().mapper(ComputeEntity.class);
+ private static final ComputeAccessor accessor =
+ noSqlDb.getMappingManager().createAccessor(ComputeDaoCassandraImpl.ComputeAccessor.class);
+ private static final UDTMapper<Version> versionMapper =
+ noSqlDb.getMappingManager().udtMapper(Version.class);
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+ VersionableEntityMetadata metadata = new VersionableEntityMetadata(
+ mapper.getTableMetadata().getName(),
+ mapper.getTableMetadata().getPartitionKey().get(0).getName(),
+ mapper.getTableMetadata().getPartitionKey().get(1).getName());
+
+
+ metadata.setUniqueValuesMetadata(Collections.singletonList(new UniqueValueMetadata(
+ VendorSoftwareProductConstants.UniqueValues.COMPUTE_NAME,
+ Arrays.asList("vsp_id", "version", "component_id", "name"))));
+
+ VersioningManagerFactory.getInstance().createInterface()
+ .register(versionableEntityType, metadata);
+ }
+
+ @Override
+ public Collection<ComputeEntity> list(ComputeEntity entity) {
+ return accessor.listByComponentId(entity.getVspId(),
+ versionMapper.toUDT(entity.getVersion()), entity.getComponentId()).all();
+ }
+
+ @Override
+ protected Mapper<ComputeEntity> getMapper() {
+ return mapper;
+ }
+
+ @Override
+ protected Object[] getKeys(ComputeEntity entity) {
+ return new Object[]{entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
+ entity.getComponentId(), entity.getId()};
+ }
+
+ @Override
+ public Collection<ComputeEntity> listByVsp(String vspId, Version version) {
+ return accessor.listByVspId(vspId, versionMapper.toUDT(version)).all();
+ }
+
+ @Override
+ public void update(ComputeEntity entity) {
+ accessor.updateCompositionData(entity.getCompositionData(), entity.getVspId(), versionMapper
+ .toUDT(entity.getVersion()), entity.getComponentId(), entity.getId());
+ }
+
+ @Override
+ public void updateQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId, String questionnaireData) {
+ accessor.updateQuestionnaireData(questionnaireData, vspId, versionMapper.toUDT(version),
+ componentId, computeId);
+ }
+
+ @Override
+ public void deleteAll(String vspId, Version version) {
+ accessor.deleteAll(vspId, version);
+ }
+
+ @Override
+ public ComputeEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId) {
+ return null;
+ }
+
+ @Accessor
+ interface ComputeAccessor {
+
+ @Query("select * from vsp_component_compute where vsp_id=? and version=? and component_id=?")
+ Result<ComputeEntity> listByComponentId(String vspId, UDTValue version, String componentId);
+
+ @Query("select * from vsp_component_compute where vsp_id=? and version=?")
+ Result<ComputeEntity> listByVspId(String vspId, UDTValue version);
+
+ @Query("update vsp_component_compute set composition_data=? where vsp_id=? and version=?"
+ + " and component_id=? and compute_id=?")
+ ResultSet updateCompositionData(String compositionData, String vspId, UDTValue version,
+ String componentId, String computeId);
+
+ @Query("update vsp_component_compute set questionnaire_data=? where vsp_id=? and version=?"
+ + " and component_id=? and compute_id=?")
+ ResultSet updateQuestionnaireData(String questionnaireData, String vspId, UDTValue version,
+ String componentId, String computeId);
+
+ @Query("delete from vsp_component_compute where vsp_id=? and version=?")
+ ResultSet deleteAll(String vspId, Version version);
+ }
+}
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/ComputeDaoFactoryImpl.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/ComputeDaoFactoryImpl.java
new file mode 100644
index 0000000000..8221de3152
--- /dev/null
+++ 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/ComputeDaoFactoryImpl.java
@@ -0,0 +1,16 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.ComputeDaoZusammenImpl;
+
+public class ComputeDaoFactoryImpl extends ComputeDaoFactory {
+ private static final ComputeDao INSTANCE = new ComputeDaoZusammenImpl(
+ ZusammenAdaptorFactory.getInstance().createInterface());
+
+ @Override
+ public ComputeDao createInterface() {
+ return INSTANCE;
+ }
+}
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/DeploymentFlavorDaoCassandraImpl.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/DeploymentFlavorDaoCassandraImpl.java
new file mode 100644
index 0000000000..5831b582fc
--- /dev/null
+++ 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/DeploymentFlavorDaoCassandraImpl.java
@@ -0,0 +1,93 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.UDTValue;
+import com.datastax.driver.mapping.Mapper;
+import com.datastax.driver.mapping.Result;
+import com.datastax.driver.mapping.UDTMapper;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.core.dao.impl.CassandraBaseDao;
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.versioning.VersioningManagerFactory;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.UniqueValueMetadata;
+import org.openecomp.sdc.versioning.types.VersionableEntityMetadata;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+
+public class DeploymentFlavorDaoCassandraImpl extends CassandraBaseDao<DeploymentFlavorEntity> implements DeploymentFlavorDao {
+ private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
+ private static final Mapper<DeploymentFlavorEntity> mapper = noSqlDb.getMappingManager().mapper(DeploymentFlavorEntity.class);
+ private static final DeploymentFlavorAccessor accessor =
+ noSqlDb.getMappingManager().createAccessor(DeploymentFlavorAccessor.class);
+ private static final UDTMapper<Version> versionMapper =
+ noSqlDb.getMappingManager().udtMapper(Version.class);
+ @Override
+ protected Mapper<DeploymentFlavorEntity> getMapper() {
+ return mapper;
+ }
+
+ @Override
+ protected Object[] getKeys(DeploymentFlavorEntity entity) {
+ return new Object[]{entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
+ entity.getId()};
+ }
+
+ @Override
+ public Collection<DeploymentFlavorEntity> list(DeploymentFlavorEntity entity) {
+ return accessor.list(entity.getVspId(), versionMapper.toUDT(entity.getVersion())).all();
+ }
+
+ @Override
+ public void update(DeploymentFlavorEntity entity) {
+ accessor.updateCompositionData(entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
+ entity.getId(), entity.getCompositionData());
+ }
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+ VersionableEntityMetadata metadata = new VersionableEntityMetadata(
+ mapper.getTableMetadata().getName(),
+ mapper.getTableMetadata().getPartitionKey().get(0).getName(),
+ mapper.getTableMetadata().getPartitionKey().get(1).getName());
+
+
+ metadata.setUniqueValuesMetadata(Collections.singletonList(new UniqueValueMetadata(
+ VendorSoftwareProductConstants.UniqueValues.DEPLOYMENT_FLAVOR_NAME,
+ Arrays.asList(mapper.getTableMetadata().getPartitionKey().get(0).getName(),
+ mapper.getTableMetadata().getPartitionKey().get(1).getName(), "name"))));
+
+ VersioningManagerFactory.getInstance().createInterface()
+ .register(versionableEntityType, metadata);
+ }
+
+ @Override
+ public void deleteAll(String vspId, Version version) {
+ accessor.deleteAll(vspId, version);
+ }
+
+ @Accessor
+ interface DeploymentFlavorAccessor {
+ @Query(
+ "select vsp_id, version, deployment_flavor_id, composition_data from vsp_deployment_flavor where vsp_id=?"
+ + " and version=?")
+ Result<DeploymentFlavorEntity> list(String vspId, UDTValue version);
+
+ @Query(
+ "insert into vsp_deployment_flavor (vsp_id, version, deployment_flavor_id, composition_data) values (?,?,?,?)")
+ ResultSet updateCompositionData(String vspId, UDTValue version, String id,
+ String compositionData);
+
+ @Query("delete from vsp_deployment_flavor where vsp_id=? and version=?")
+ ResultSet deleteAll(String vspId, Version version);
+
+ }
+}
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/DeploymentFlavorDaoFactoryImpl.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/DeploymentFlavorDaoFactoryImpl.java
new file mode 100644
index 0000000000..60a9e5e13e
--- /dev/null
+++ 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/DeploymentFlavorDaoFactoryImpl.java
@@ -0,0 +1,17 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.DeploymentFlavorDaoZusammenImpl;
+
+
+public class DeploymentFlavorDaoFactoryImpl extends DeploymentFlavorDaoFactory{
+ private static final DeploymentFlavorDao INSTANCE = new DeploymentFlavorDaoZusammenImpl(
+ ZusammenAdaptorFactory.getInstance().createInterface());
+
+ @Override
+ public DeploymentFlavorDao createInterface() {
+ return INSTANCE;
+ }
+}
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/ImageDaoFactoryImpl.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/ImageDaoFactoryImpl.java
new file mode 100644
index 0000000000..e4f13b3ee1
--- /dev/null
+++ 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/ImageDaoFactoryImpl.java
@@ -0,0 +1,18 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.ImageDaoZusammenImpl;
+
+public class ImageDaoFactoryImpl extends ImageDaoFactory {
+
+ private static final ImageDao INSTANCE = new ImageDaoZusammenImpl(
+ ZusammenAdaptorFactory.getInstance().createInterface());
+
+ @Override
+ public ImageDao createInterface() {
+ return INSTANCE;
+ }
+}
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/ImageDaoImpl.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/ImageDaoImpl.java
new file mode 100644
index 0000000000..24217830e4
--- /dev/null
+++ 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/ImageDaoImpl.java
@@ -0,0 +1,129 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.UDTValue;
+import com.datastax.driver.mapping.Mapper;
+import com.datastax.driver.mapping.Result;
+import com.datastax.driver.mapping.UDTMapper;
+import com.datastax.driver.mapping.annotations.Accessor;
+import com.datastax.driver.mapping.annotations.Query;
+import org.openecomp.core.dao.impl.CassandraBaseDao;
+import org.openecomp.core.nosqldb.api.NoSqlDb;
+import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.versioning.VersioningManagerFactory;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.UniqueValueMetadata;
+import org.openecomp.sdc.versioning.types.VersionableEntityMetadata;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+public class ImageDaoImpl extends CassandraBaseDao<ImageEntity> implements ImageDao {
+
+ private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
+ private static final Mapper<ImageEntity> mapper =
+ noSqlDb.getMappingManager().mapper(ImageEntity.class);
+ private static final ImageAccessor accessor =
+ noSqlDb.getMappingManager().createAccessor(ImageAccessor.class);
+ private static final UDTMapper<Version> versionMapper =
+ noSqlDb.getMappingManager().udtMapper(Version.class);
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+
+ VersionableEntityMetadata metadata = new VersionableEntityMetadata(
+ mapper.getTableMetadata().getName(),
+ mapper.getTableMetadata().getPartitionKey().get(0).getName(),
+ mapper.getTableMetadata().getPartitionKey().get(1).getName());
+
+
+ metadata.setUniqueValuesMetadata(Collections.singletonList(new UniqueValueMetadata(
+ VendorSoftwareProductConstants.UniqueValues.IMAGE_NAME,
+ Arrays.asList("vsp_id", "version", "component_id", "name"))));
+
+ VersioningManagerFactory.getInstance().createInterface()
+ .register(versionableEntityType, metadata);
+ }
+
+ @Override
+ protected Mapper<ImageEntity> getMapper() {
+ return mapper;
+ }
+
+ @Override
+ protected Object[] getKeys(ImageEntity entity) {
+ return new Object[]{entity.getVspId(),
+ versionMapper.toUDT(entity.getVersion()), entity.getComponentId(), entity.getId() };
+ }
+
+ @Override
+ public Collection<ImageEntity> list(ImageEntity entity) {
+ return accessor.list(entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
+ entity.getComponentId()).all();
+ }
+
+ @Override
+ public void update(ImageEntity entity) {
+ accessor.updateCompositionData(entity.getVspId(), versionMapper.toUDT(entity.getVersion()),
+ entity.getComponentId(), entity.getId(), entity.getCompositionData());
+ }
+
+ @Override
+ public void updateQuestionnaireData(String vspId, Version version, String componentId,
+ String imageId, String questionnaireData) {
+ accessor.updateQuestionnaireData(questionnaireData, vspId, versionMapper.toUDT(version),
+ componentId, imageId);
+ }
+
+ @Override
+ public void delete(ImageEntity entity) {
+ super.delete(entity);
+ }
+
+ @Override
+ public void deleteByVspId(String vspId, Version version) {
+ accessor.deleteByVspId(vspId, versionMapper.toUDT(version));
+ }
+
+ @Override
+ public Collection<ImageEntity> listByVsp(String vspId, Version version) {
+ return accessor.listByVspId(vspId, versionMapper.toUDT(version)).all();
+ }
+
+ @Override
+ public ImageEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId) {
+ return null;
+ }
+
+ @Accessor
+ interface ImageAccessor {
+
+ @Query("select vsp_id, version, component_id, image_id, composition_data from "
+ + "vsp_component_image where vsp_id=? and version=? and component_id=?")
+ Result<ImageEntity> list(String vspId, UDTValue version, String componentId);
+
+ @Query(
+ "insert into vsp_component_image (vsp_id, version, component_id, image_id, "
+ + "composition_data) values (?,?,?,?,?)")
+ ResultSet updateCompositionData(String vspId, UDTValue version, String componentId, String id,
+ String compositionData);
+
+ @Query("update vsp_component_image set questionnaire_data=? where vsp_id=? and version=?"
+ + " and component_id=? and image_id=?")
+ ResultSet updateQuestionnaireData(String questionnaireData, String vspId, UDTValue version,
+ String componentId, String computeId);
+
+ @Query("delete from vsp_component_image where vsp_id=? and version=?")
+ ResultSet deleteByVspId(String vspId, UDTValue version);
+
+ @Query("select * from vsp_component_image where vsp_id=? and version=?")
+ Result<ImageEntity> listByVspId(String vspId, UDTValue version);
+
+ }
+
+}
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/MibDaoFactoryImpl.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/MonitoringUploadDaoFactoryImpl.java
index 923744bae7..fa6a0cbfc2 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/MibDaoFactoryImpl.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/MonitoringUploadDaoFactoryImpl.java
@@ -21,16 +21,16 @@
package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.MibDaoZusammenImpl;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.MonitoringUploadDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.ComponentArtifactDaoZusammenImpl;
-public class MibDaoFactoryImpl extends MibDaoFactory {
- private static final MibDao INSTANCE = new MibDaoZusammenImpl(
+public class MonitoringUploadDaoFactoryImpl extends MonitoringUploadDaoFactory {
+ private static final ComponentArtifactDao INSTANCE = new ComponentArtifactDaoZusammenImpl(
ZusammenAdaptorFactory.getInstance().createInterface());
@Override
- public MibDao createInterface() {
+ public ComponentArtifactDao createInterface() {
return INSTANCE;
}
}
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/VendorSoftwareProductDaoImpl.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/VendorSoftwareProductDaoImpl.java
index 2251c2700e..bdd6677738 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/VendorSoftwareProductDaoImpl.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/VendorSoftwareProductDaoImpl.java
@@ -35,8 +35,12 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
@@ -52,6 +56,9 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
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.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
@@ -73,8 +80,6 @@ public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
ComponentDaoFactory.getInstance().createInterface();
private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface();
private static final ProcessDao processDao = ProcessDaoFactory.getInstance().createInterface();
- private static final MibDao
- MIB_DAO = MibDaoFactory.getInstance().createInterface();
private static final ServiceArtifactDaoInter
artifactDao = ServiceArtifactDaoFactory.getInstance().createInterface();
public static final ServiceTemplateDaoInter
@@ -87,6 +92,11 @@ public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
ServiceModelDaoFactory.getInstance().createInterface();
private static final ComponentDependencyModelDao componentDependencyModelDao =
ComponentDependencyModelDaoFactory.getInstance().createInterface();
+ private static final DeploymentFlavorDao
+ deploymentFlavorDao = DeploymentFlavorDaoFactory.getInstance().createInterface();
+ private static final ImageDao imageDao = ImageDaoFactory.getInstance().createInterface();
+ private static final ComputeDao computeDao = ComputeDaoFactory.getInstance().createInterface();
+
@Override
public void registerVersioning(String versionableEntityType) {
@@ -97,6 +107,9 @@ public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
processDao.registerVersioning(versionableEntityType);
orchestrationTemplateCandidateDataDao.registerVersioning(versionableEntityType);
componentDependencyModelDao.registerVersioning(versionableEntityType);
+ computeDao.registerVersioning(versionableEntityType);
+ deploymentFlavorDao.registerVersioning(versionableEntityType);
+ imageDao.registerVersioning(versionableEntityType);
}
@Override
@@ -226,4 +239,106 @@ public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version,
null));
}
+
+ @Override
+ public void createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavor) {
+ deploymentFlavorDao.create(deploymentFlavor);
+ }
+
+ @Override
+ public Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version) {
+ return deploymentFlavorDao.list(new DeploymentFlavorEntity(vspId, version, null));
+ }
+
+ @Override
+ public DeploymentFlavorEntity getDeploymentFlavor(String vspId, Version version,
+ String deploymentFlavorId) {
+ return deploymentFlavorDao.get(new DeploymentFlavorEntity(vspId, version, deploymentFlavorId));
+ }
+
+ @Override
+ public void deleteDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) {
+ deploymentFlavorDao.delete(new DeploymentFlavorEntity(vspId,version,
+ deploymentFlavorId));
+ }
+
+ @Override
+ public void createImage(ImageEntity imageEntity) {
+ imageDao.create(imageEntity);
+ }
+
+ @Override
+ public Collection<ImageEntity> listImages(String vspId, Version version, String componentId) {
+ return imageDao.list(new ImageEntity(vspId, version, componentId, null));
+ }
+
+ @Override
+ public ImageEntity getImage(String vspId, Version version, String componentId, String imageId) {
+ return imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
+ }
+
+ @Override
+ public Collection<ImageEntity> listImagesByVsp(String vspId, Version version) {
+ return imageDao.listByVsp(vspId, version);
+ }
+
+ @Override
+ public void createCompute(ComputeEntity computeEntity) {
+ computeDao.create(computeEntity);
+ }
+
+ @Override
+ public Collection<ComputeEntity> listComputes(String vspId, Version version, String componentId) {
+ return computeDao.list(new ComputeEntity(vspId, version, componentId, null));
+ }
+
+ @Override
+ public Collection<ComputeEntity> listComputesByVsp(String vspId, Version version) {
+ return computeDao.listByVsp(vspId, version);
+ }
+
+ @Override
+ public ComputeEntity getCompute(String vspId, Version version, String componentId,
+ String computeFlavorId) {
+ return computeDao.get(new ComputeEntity(vspId, version, componentId, computeFlavorId));
+ }
+
+ @Override
+ public void deleteImage(String vspId, Version version, String componentId, String imageId) {
+ ImageEntity imageEntity = new ImageEntity(vspId, version, componentId, imageId);
+ imageDao.delete(imageEntity);
+ }
+
+ @Override
+ public void updateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity) {
+ deploymentFlavorDao.update(deploymentFlavorEntity);
+ }
+
+ @Override
+ public void updateImage(ImageEntity imageEntity) {
+ imageDao.update(imageEntity);
+ }
+
+ @Override
+ public void updateImageQuestionnaire(String vspId, Version version, String componentId,
+ String imageId, String questionnaireData) {
+ imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
+ }
+
+ @Override
+ public void updateComputeQuestionnaire(String vspId, Version version, String componentId,
+ String computeId, String questionnaireData) {
+ computeDao.updateQuestionnaireData(vspId, version, componentId, computeId, questionnaireData);
+ }
+
+ @Override
+ public void updateCompute(ComputeEntity compute) {
+ computeDao.update(compute);
+ }
+
+ @Override
+ public void deleteCompute(String vspId, Version version, String componentId, String
+ computeFlavorId) {
+ computeDao.delete(new ComputeEntity(vspId, version, componentId, computeFlavorId));
+ }
}
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/VendorSoftwareProductInfoDaoImpl.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/VendorSoftwareProductInfoDaoImpl.java
index 5a8635cf98..d9b629cc60 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/VendorSoftwareProductInfoDaoImpl.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/VendorSoftwareProductInfoDaoImpl.java
@@ -98,6 +98,11 @@ public class VendorSoftwareProductInfoDaoImpl extends CassandraBaseDao<VspDetail
}
+ @Override
+ public boolean isManual(String vspId, Version version) {
+ return false;
+ }
+
@Accessor
interface VendorSoftwareProductInfoAccessor {
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/MibDaoZusammenImpl.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/ComponentArtifactDaoZusammenImpl.java
index d56db41cee..517f2fd19b 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/MibDaoZusammenImpl.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/ComponentArtifactDaoZusammenImpl.java
@@ -7,12 +7,12 @@ import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.item.Action;
import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.zusammen.api.ZusammenAdaptor;
import org.openecomp.core.zusammen.api.ZusammenUtil;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.versioning.dao.types.Version;
import java.io.ByteArrayInputStream;
@@ -25,13 +25,13 @@ import java.util.stream.Collectors;
* @author Avrahamg.
* @since March 21, 2017
*/
-public class MibDaoZusammenImpl implements MibDao {
+public class ComponentArtifactDaoZusammenImpl implements ComponentArtifactDao {
private static final String ARTIFACT_NAME = "name";
private ZusammenAdaptor zusammenAdaptor;
- public MibDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+ public ComponentArtifactDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
this.zusammenAdaptor = zusammenAdaptor;
}
@@ -41,25 +41,30 @@ public class MibDaoZusammenImpl implements MibDao {
}
@Override
- public Optional<MibEntity> getByType(MibEntity mibEntity) {
+ public Optional<ComponentMonitoringUploadEntity> getByType(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
SessionContext context = ZusammenUtil.createSessionContext();
- Id itemId = new Id(mibEntity.getVspId());
+ Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
ElementContext elementContext = new ElementContext(itemId,
VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
- VspZusammenUtil.getVersionTag(mibEntity.getVersion()));
-
+ VspZusammenUtil.getVersionTag(componentMonitoringUploadEntity.getVersion()));
Optional<Element> mibsElement =
- zusammenAdaptor.getElementByName(context, elementContext, new Id(mibEntity
+ zusammenAdaptor.getElementByName(context, elementContext, new Id(
+ componentMonitoringUploadEntity
.getComponentId()), StructureElement.Mibs.toString());
if (mibsElement.isPresent()) {
- Optional<Element> mibElement = zusammenAdaptor
+ Optional<Element> monitoringElement = zusammenAdaptor
.getElementByName(context, elementContext, mibsElement.get().getElementId(),
- getMibStructuralElement(mibEntity.getType()).toString());
- if (mibElement.isPresent()) {
- mibEntity.setId(mibElement.get().getElementId().getValue());
- mibEntity.setArtifactName((String) mibElement.get().getInfo().getProperties().get(ARTIFACT_NAME));
- mibEntity.setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(mibElement.get().getData())));
- return Optional.of(mibEntity);
+ getMonitoringStructuralElement(componentMonitoringUploadEntity.getType())
+ .toString());
+ if (monitoringElement.isPresent()) {
+ componentMonitoringUploadEntity.setId(monitoringElement.get().getElementId().getValue());
+ componentMonitoringUploadEntity
+ .setArtifactName(
+ (String) monitoringElement.get().getInfo().getProperties().get(ARTIFACT_NAME));
+ componentMonitoringUploadEntity
+ .setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(monitoringElement.get().getData())));
+ return Optional.of(componentMonitoringUploadEntity);
}
}
@@ -67,44 +72,44 @@ public class MibDaoZusammenImpl implements MibDao {
}
@Override
- public void create(MibEntity mibEntity) {
- ZusammenElement mibElement = buildMibElement(mibEntity);
+ public void create(ComponentMonitoringUploadEntity entity) {
+ ZusammenElement mibElement = buildMibElement(entity);
ZusammenElement mibsElement =
VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, null);
- ZusammenElement componentElement = buildComponentElement(mibEntity);
+ ZusammenElement componentElement = buildComponentElement(entity);
SessionContext context = ZusammenUtil.createSessionContext();
- Id itemId = new Id(mibEntity.getVspId());
+ Id itemId = new Id(entity.getVspId());
ElementContext elementContext = new ElementContext(itemId,
VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
Optional<Element> savedElement = zusammenAdaptor.saveElement(context, elementContext,
VspZusammenUtil.aggregateElements(componentElement, mibsElement, mibElement),
- "Create mib");
+ "Create monitoring upload");
savedElement.ifPresent(element ->
- mibEntity.setId(element.getSubElements().iterator().next()
+ entity.setId(element.getSubElements().iterator().next()
.getSubElements().iterator().next().getElementId().getValue()));
}
@Override
- public void delete(MibEntity mibEntity) {
+ public void delete(ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
ZusammenElement mibElement = new ZusammenElement();
- mibElement.setElementId(new Id(mibEntity.getId()));
+ mibElement.setElementId(new Id(componentMonitoringUploadEntity.getId()));
mibElement.setAction(Action.DELETE);
SessionContext context = ZusammenUtil.createSessionContext();
- Id itemId = new Id(mibEntity.getVspId());
+ Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
ElementContext elementContext = new ElementContext(itemId,
VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
zusammenAdaptor.saveElement(context, elementContext, mibElement,
- String.format("Delete mib with id %s", mibEntity.getId()));
+ String.format("Delete mib with id %s", componentMonitoringUploadEntity.getId()));
}
@Override
- public Collection<MibEntity> list(MibEntity mib) {
+ public Collection<ComponentMonitoringUploadEntity> list(ComponentMonitoringUploadEntity mib) {
SessionContext context = ZusammenUtil.createSessionContext();
Id itemId = new Id(mib.getVspId());
ElementContext elementContext = new ElementContext(itemId,
@@ -120,14 +125,14 @@ public class MibDaoZusammenImpl implements MibDao {
}
@Override
- public void deleteAll(MibEntity mibEntity) {
+ public void deleteAll(ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
ZusammenElement mibsElement =
VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, Action.DELETE);
- ZusammenElement componentElement = buildComponentElement(mibEntity);
+ ZusammenElement componentElement = buildComponentElement(componentMonitoringUploadEntity);
SessionContext context = ZusammenUtil.createSessionContext();
- Id itemId = new Id(mibEntity.getVspId());
+ Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
ElementContext elementContext = new ElementContext(itemId,
VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
@@ -136,15 +141,17 @@ public class MibDaoZusammenImpl implements MibDao {
}
@Override
- public Collection<MibEntity> listArtifacts(MibEntity mib) {
+ public Collection<ComponentMonitoringUploadEntity> listArtifacts(
+ ComponentMonitoringUploadEntity monitoringUploadEntity) {
SessionContext context = ZusammenUtil.createSessionContext();
- Id itemId = new Id(mib.getVspId());
+ Id itemId = new Id(monitoringUploadEntity.getVspId());
ElementContext elementContext = new ElementContext(itemId,
VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
- VspZusammenUtil.getVersionTag(mib.getVersion()));
+ VspZusammenUtil.getVersionTag(monitoringUploadEntity.getVersion()));
final Optional<Element> elementByName =
- zusammenAdaptor.getElementByName(context, elementContext, new Id(mib.getComponentId()
+ zusammenAdaptor.getElementByName(context, elementContext,
+ new Id(monitoringUploadEntity.getComponentId()
), StructureElement.Mibs.name());
if(!elementByName.isPresent())
@@ -153,49 +160,65 @@ public class MibDaoZusammenImpl implements MibDao {
final Id elementId = elementByName.get().getElementId();
return zusammenAdaptor.listElementData(context, elementContext, elementId).stream()
.map(element ->
- buildMibEntity(element,mib)
+ buildMibEntity(element, monitoringUploadEntity)
).collect(Collectors.toList());
}
}
- private MibEntity buildMibEntity (Element element, MibEntity mib) {
- MibEntity createdMib = new MibEntity(mib.getVspId(), mib.getVersion(), mib.getComponentId(),
+ private ComponentMonitoringUploadEntity buildMibEntity(Element element,
+ ComponentMonitoringUploadEntity monitoringUploadEntity) {
+ final String componentId = monitoringUploadEntity.getComponentId();
+ ComponentMonitoringUploadEntity
+ createdMib = new ComponentMonitoringUploadEntity(monitoringUploadEntity.getVspId(),
+ monitoringUploadEntity.getVersion(),
+ componentId,
null);
createdMib.setArtifactName((String) element.getInfo().getProperties().get(ARTIFACT_NAME));
createdMib.setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(element.getData())));
- createdMib.setType( ArtifactType.valueOf(element.getInfo().getName()));
+ createdMib.setType(MonitoringUploadType.valueOf(element.getInfo().getName()));
return createdMib;
}
- private ZusammenElement buildComponentElement(MibEntity mibEntity) {
+ private ZusammenElement buildComponentElement(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
ZusammenElement componentElement = new ZusammenElement();
- componentElement.setElementId(new Id(mibEntity.getComponentId()));
+ componentElement.setElementId(new Id(componentMonitoringUploadEntity.getComponentId()));
componentElement.setAction(Action.IGNORE);
return componentElement;
}
- private ZusammenElement buildMibElement(MibEntity mib) {
- ZusammenElement mibElement = VspZusammenUtil
- .buildStructuralElement(getMibStructuralElement(mib.getType()), Action.UPDATE);
- mibElement.getInfo().getProperties().put(ARTIFACT_NAME, mib.getArtifactName());
- mibElement.setData(new ByteArrayInputStream(mib.getArtifact().array()));
- return mibElement;
+ private ZusammenElement buildMibElement(ComponentMonitoringUploadEntity monitoringUploadEntity) {
+ ZusammenElement monitoringElement = VspZusammenUtil
+ .buildStructuralElement(getMonitoringStructuralElement(monitoringUploadEntity.getType()),
+ Action.UPDATE);
+ monitoringElement.getInfo().getProperties()
+ .put(ARTIFACT_NAME, monitoringUploadEntity.getArtifactName());
+ monitoringElement
+ .setData(new ByteArrayInputStream(monitoringUploadEntity.getArtifact().array()));
+ return monitoringElement;
}
- private MibEntity mapElementInfoToMib(String vspId, Version version, String componentId,
- ElementInfo elementInfo) {
- MibEntity mib = new MibEntity(vspId, version, componentId, elementInfo.getId().getValue());
- mib.setArtifactName((String) elementInfo.getInfo().getProperties().get(ARTIFACT_NAME));
- mib.setType(ArtifactType.valueOf(elementInfo.getInfo().getName()));
- return mib;
+ private ComponentMonitoringUploadEntity mapElementInfoToMib(String vspId, Version version,
+ String componentId,
+ ElementInfo elementInfo) {
+ ComponentMonitoringUploadEntity
+ monitoringUploadEntity = new ComponentMonitoringUploadEntity(vspId, version, componentId,
+ elementInfo.getId().getValue());
+ monitoringUploadEntity
+ .setArtifactName((String) elementInfo.getInfo().getProperties().get(ARTIFACT_NAME));
+ monitoringUploadEntity.setType(MonitoringUploadType.valueOf(elementInfo.getInfo().getName()));
+ return monitoringUploadEntity;
}
- private StructureElement getMibStructuralElement(ArtifactType type) {
+ private StructureElement getMonitoringStructuralElement(MonitoringUploadType type)
+ throws IllegalArgumentException {
switch (type) {
case SNMP_POLL:
return StructureElement.SNMP_POLL;
case SNMP_TRAP:
return StructureElement.SNMP_TRAP;
+ case VES_EVENTS:
+ return StructureElement.VES_EVENTS;
default:
throw new IllegalArgumentException();
}
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/ComponentDaoZusammenImpl.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/ComponentDaoZusammenImpl.java
index 8ef09ada7b..ed6a13d2a1 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/ComponentDaoZusammenImpl.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/ComponentDaoZusammenImpl.java
@@ -215,7 +215,11 @@ public class ComponentDaoZusammenImpl implements ComponentDao {
componentQuestionnaireToZusammen(component.getQuestionnaireData(), Action.CREATE),
VspZusammenUtil.buildStructuralElement(StructureElement.Nics, Action.CREATE),
VspZusammenUtil.buildStructuralElement(StructureElement.Processes, Action.CREATE),
- VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, Action.CREATE)));
+ VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, Action.CREATE),
+ VspZusammenUtil.buildStructuralElement(StructureElement.Computes, Action.CREATE),
+ VspZusammenUtil.buildStructuralElement(StructureElement.Images, Action.CREATE)));
+
+
}
return componentElement;
}
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/ComponentDependencyModelPropertyName.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/ComponentDependencyModelPropertyName.java
new file mode 100644
index 0000000000..426bb52452
--- /dev/null
+++ 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/ComponentDependencyModelPropertyName.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
+
+/**
+ * Created by ayalaben on 5/16/2017
+ */
+public enum ComponentDependencyModelPropertyName {
+ id,
+ relation,
+ sourcecomponent_id,
+ targetcomponent_id,
+
+}
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/ComputeDaoZusammenImpl.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/ComputeDaoZusammenImpl.java
new file mode 100644
index 0000000000..aa4bab67df
--- /dev/null
+++ 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/ComputeDaoZusammenImpl.java
@@ -0,0 +1,251 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
+
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.core.zusammen.api.ZusammenUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.ByteArrayInputStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class ComputeDaoZusammenImpl implements ComputeDao {
+
+ private ZusammenAdaptor zusammenAdaptor;
+
+ public ComputeDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+ this.zusammenAdaptor = zusammenAdaptor;
+ }
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+ }
+
+ @Override
+ public Collection<ComputeEntity> list(ComputeEntity compute) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(compute.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(compute.getVersion()));
+
+ return listComputes(context, elementContext, compute);
+ }
+
+ private Collection<ComputeEntity> listComputes(SessionContext context,
+ ElementContext elementContext, ComputeEntity compute) {
+ return zusammenAdaptor
+ .listElementsByName(context, elementContext, new Id(compute.getComponentId()),
+ StructureElement.Computes.name())
+ .stream().map(elementInfo -> mapElementInfoToCompute(
+ compute.getVspId(), compute.getVersion(), compute.getComponentId(), elementInfo))
+ .collect(Collectors.toList());
+ }
+
+ private static ComputeEntity mapElementInfoToCompute(String vspId, Version version,
+ String componentId, ElementInfo elementInfo) {
+ ComputeEntity componentEntity =
+ new ComputeEntity(vspId, version, componentId, elementInfo.getId().getValue());
+ componentEntity.setCompositionData(
+ elementInfo.getInfo().getProperty(ElementPropertyName.compositionData.name()));
+ return componentEntity;
+ }
+
+ @Override
+ public void create(ComputeEntity compute) {
+ ZusammenElement computeElement = computeToZusammen(compute, Action.CREATE);
+
+ ZusammenElement computesElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Computes, null);
+ computesElement.setSubElements(Collections.singletonList(computeElement));
+
+ ZusammenElement componentElement = new ZusammenElement();
+ componentElement.setElementId(new Id(compute.getComponentId()));
+ componentElement.setAction(Action.IGNORE);
+ componentElement.setSubElements(Collections.singletonList(computesElement));
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(compute.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+
+ Optional<Element> savedElement =
+ zusammenAdaptor.saveElement(context, elementContext, componentElement, "Create compute");
+ savedElement.ifPresent(element ->
+ compute.setId(element.getSubElements().iterator().next()
+ .getSubElements().iterator().next().getElementId().getValue()));
+ }
+
+ @Override
+ public void update(ComputeEntity compute) {
+ ZusammenElement computeElement = computeToZusammen(compute, Action.UPDATE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(compute.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, computeElement,
+ String.format("Update compute with id %s", compute.getId()));
+ }
+
+ @Override
+ public ComputeEntity get(ComputeEntity compute) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(compute.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(compute.getVersion()));
+ Optional<Element> element = zusammenAdaptor.getElement(context, elementContext, compute.getId());
+
+ if (element.isPresent()) {
+ compute.setCompositionData(new String(FileUtils.toByteArray(element.get().getData())));
+ return compute;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public void delete(ComputeEntity compute) {
+ ZusammenElement computeElement = new ZusammenElement();
+ computeElement.setElementId(new Id(compute.getId()));
+ computeElement.setAction(Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(compute.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, computeElement,
+ String.format("Delete compute with id %s", compute.getId()));
+ }
+
+ @Override
+ public ComputeEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(version));
+
+ return getQuestionnaire(context, elementContext,
+ new ComputeEntity(vspId, version, componentId, computeId));
+ }
+
+ private ComputeEntity getQuestionnaire(SessionContext context, ElementContext elementContext,
+ ComputeEntity compute) {
+ Optional<Element> questionnaireElement = zusammenAdaptor
+ .getElementByName(context, elementContext, new Id(compute.getId()),
+ StructureElement.Questionnaire.name());
+ return questionnaireElement.map(
+ element -> element.getData() == null
+ ? null
+ : new String(FileUtils.toByteArray(element.getData())))
+ .map(questionnaireData -> {
+ compute.setQuestionnaireData(questionnaireData);
+ return compute;
+ })
+ .orElse(null);
+ }
+
+ @Override
+ public void updateQuestionnaireData(String vspId, Version version, String componentId,
+ String computeId, String questionnaireData) {
+ ZusammenElement questionnaireElement =
+ computeQuestionnaireToZusammen(questionnaireData, Action.UPDATE);
+
+ ZusammenElement computeElement = new ZusammenElement();
+ computeElement.setAction(Action.IGNORE);
+ computeElement.setElementId(new Id(computeId));
+ computeElement.setSubElements(Collections.singletonList(questionnaireElement));
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, computeElement, "Update compute "
+ + "questionnaire");
+ }
+
+ @Override
+ public Collection<ComputeEntity> listByVsp(String vspId, Version version) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(version));
+
+ Collection<ComponentEntity> components = ComponentDaoZusammenImpl
+ .listComponents(zusammenAdaptor, context, elementContext, vspId, version);
+
+ return components.stream()
+ .map(component ->
+ listComputes(context, elementContext,
+ new ComputeEntity(vspId, version, component.getId(), null)).stream()
+ .map(compute -> getQuestionnaire(context, elementContext, compute))
+ .collect(Collectors.toList()))
+ .flatMap(Collection::stream)
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public void deleteAll(String vspId, Version version) {
+ ZusammenElement computesElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Computes, Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ computesElement, "Delete all computes");
+ }
+
+ private ZusammenElement computeToZusammen(ComputeEntity compute, Action action) {
+ ZusammenElement computeElement = buildComputeElement(compute, action);
+ if (action == Action.CREATE) {
+ computeElement.setSubElements(Collections.singletonList(
+ computeQuestionnaireToZusammen(compute.getQuestionnaireData(), Action.CREATE)));
+ }
+ return computeElement;
+ }
+
+ private ZusammenElement computeQuestionnaireToZusammen(String questionnaireData,
+ Action action) {
+ ZusammenElement questionnaireElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Questionnaire, action);
+ questionnaireElement.setData(new ByteArrayInputStream(questionnaireData.getBytes()));
+ return questionnaireElement;
+ }
+
+ private ZusammenElement buildComputeElement(ComputeEntity compute, Action action) {
+ ZusammenElement computeElement = new ZusammenElement();
+ computeElement.setAction(action);
+ if (compute.getId() != null) {
+ computeElement.setElementId(new Id(compute.getId()));
+ }
+ Info info = new Info();
+ info.addProperty(ElementPropertyName.type.name(), ElementType.Compute);
+ info.addProperty(ElementPropertyName.compositionData.name(), compute.getCompositionData());
+ computeElement.setInfo(info);
+ computeElement.setData(new ByteArrayInputStream(compute.getCompositionData().getBytes()));
+ return computeElement;
+ }
+
+
+
+}
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/DeploymentFlavorDaoZusammenImpl.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/DeploymentFlavorDaoZusammenImpl.java
new file mode 100644
index 0000000000..947bcc27e5
--- /dev/null
+++ 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/DeploymentFlavorDaoZusammenImpl.java
@@ -0,0 +1,179 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.core.zusammen.api.ZusammenUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.ByteArrayInputStream;
+import java.util.Collection;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class DeploymentFlavorDaoZusammenImpl implements DeploymentFlavorDao {
+
+ private ZusammenAdaptor zusammenAdaptor;
+
+ public DeploymentFlavorDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+ this.zusammenAdaptor = zusammenAdaptor;
+ }
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+ }
+
+ @Override
+ public Collection<DeploymentFlavorEntity> list(DeploymentFlavorEntity deploymentFlavor) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(deploymentFlavor.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(deploymentFlavor.getVersion()));
+
+ return listDeploymentFlavor(zusammenAdaptor, context, elementContext, deploymentFlavor.getVspId(),
+ deploymentFlavor.getVersion());
+ }
+
+ static Collection<DeploymentFlavorEntity> listDeploymentFlavor(ZusammenAdaptor zusammenAdaptor,
+ SessionContext context,
+ ElementContext elementContext,
+ String vspId, Version version) {
+ return zusammenAdaptor
+ .listElementsByName(context, elementContext, null, StructureElement.DeploymentFlavors.name())
+ .stream().map(elementInfo -> mapElementInfoToComponent(vspId, version, elementInfo))
+ .collect(Collectors.toList());
+ }
+
+ private static DeploymentFlavorEntity mapElementInfoToComponent(String vspId, Version version,
+ ElementInfo elementInfo) {
+ DeploymentFlavorEntity deploymentFlavorEntity =
+ new DeploymentFlavorEntity(vspId, version, elementInfo.getId().getValue());
+ deploymentFlavorEntity.setCompositionData(
+ elementInfo.getInfo().getProperty(ElementPropertyName.compositionData.name()));
+ return deploymentFlavorEntity;
+ }
+
+ @Override
+ public void create(DeploymentFlavorEntity deploymentFlavor) {
+ ZusammenElement deploymentFlavorElement = deploymentFlavorToZusammen(deploymentFlavor,
+ Action.CREATE);
+ ZusammenElement deploymentFlavorElements =
+ VspZusammenUtil.buildStructuralElement(StructureElement.DeploymentFlavors, null);
+ deploymentFlavorElements.getSubElements().add(deploymentFlavorElement);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(deploymentFlavor.getVspId());
+ Optional<Element> savedElement = zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ deploymentFlavorElements, "Create deloymentFlavor");
+ savedElement.ifPresent(element ->
+ deploymentFlavor.setId(element.getSubElements().iterator().next().getElementId()
+ .getValue()));
+ }
+
+ @Override
+ public void update(DeploymentFlavorEntity deploymentFlavor) {
+ ZusammenElement deploymentFlavorElement = deploymentFlavorToZusammen(deploymentFlavor,
+ Action.UPDATE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(deploymentFlavor.getVspId());
+ zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ deploymentFlavorElement, String.format("Update deloymentFlavor with id %s",
+ deploymentFlavor.getId()));
+ }
+
+ @Override
+ public DeploymentFlavorEntity get(DeploymentFlavorEntity deploymentFlavor) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(deploymentFlavor.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(deploymentFlavor.getVersion()));
+
+ Optional<Element> element =
+ zusammenAdaptor.getElement(context, elementContext, deploymentFlavor.getId());
+
+ if (element.isPresent()) {
+ deploymentFlavor.setCompositionData(new String(FileUtils.toByteArray(element.get()
+ .getData())));
+ return deploymentFlavor;
+ }
+ return null;
+ }
+
+ @Override
+ public void delete(DeploymentFlavorEntity deploymentFlavor) {
+ ZusammenElement componentElement = new ZusammenElement();
+ componentElement.setElementId(new Id(deploymentFlavor.getId()));
+ componentElement.setAction(Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(deploymentFlavor.getVspId());
+ zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ componentElement, String.format("Delete deloymentFlavor with id %s",
+ deploymentFlavor.getId()));
+ }
+
+ @Override
+ public void deleteAll(String vspId, Version version) {
+ ZusammenElement deploymentFlavorsElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.DeploymentFlavors, Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ deploymentFlavorsElement, "Delete all deploymentFlavors");
+ }
+
+ private ZusammenElement deploymentFlavorToZusammen(DeploymentFlavorEntity deploymentFlavor,
+ Action action) {
+ ZusammenElement deploymentFlavorElement = buildDeploymentFlavorElement
+ (deploymentFlavor, action);
+
+ return deploymentFlavorElement;
+ }
+
+ /*private ZusammenElement deplymentFlavorQuestionnaireToZusammen(String questionnaireData,
+ Action action) {
+ ZusammenElement questionnaireElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Questionnaire, action);
+ questionnaireElement.setData(new ByteArrayInputStream(questionnaireData.getBytes()));
+ return questionnaireElement;
+ }*/
+
+ private ZusammenElement buildDeploymentFlavorElement(DeploymentFlavorEntity deploymentFlavor,
+ Action action) {
+ ZusammenElement deploymentFlavorElement = new ZusammenElement();
+ deploymentFlavorElement.setAction(action);
+ if (deploymentFlavor.getId() != null) {
+ deploymentFlavorElement.setElementId(new Id(deploymentFlavor.getId()));
+ }
+ Info info = new Info();
+ info.addProperty(ElementPropertyName.type.name(), ElementType.DeploymentFlavor);
+ info.addProperty(ElementPropertyName.compositionData.name(), deploymentFlavor
+ .getCompositionData());
+ deploymentFlavorElement.setInfo(info);
+ deploymentFlavorElement.setData(new ByteArrayInputStream(deploymentFlavor.getCompositionData()
+ .getBytes()));
+ return deploymentFlavorElement;
+ }
+
+}
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/ElementType.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/ElementType.java
index b0313f5b14..9da0780f73 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/ElementType.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/ElementType.java
@@ -5,5 +5,9 @@ public enum ElementType {
Component,
Nic,
Process,
- LKG
+ Mib,
+ LKG,
+ Compute,
+ DeploymentFlavor,
+ Image
}
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/ImageDaoZusammenImpl.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/ImageDaoZusammenImpl.java
new file mode 100644
index 0000000000..d913b18956
--- /dev/null
+++ 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/ImageDaoZusammenImpl.java
@@ -0,0 +1,252 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
+
+
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.item.Action;
+import com.amdocs.zusammen.datatypes.item.ElementContext;
+import com.amdocs.zusammen.datatypes.item.Info;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.zusammen.api.ZusammenAdaptor;
+import org.openecomp.core.zusammen.api.ZusammenUtil;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
+import org.openecomp.sdc.versioning.dao.types.Version;
+
+import java.io.ByteArrayInputStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+public class ImageDaoZusammenImpl implements ImageDao {
+
+ private ZusammenAdaptor zusammenAdaptor;
+
+ public ImageDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+ this.zusammenAdaptor = zusammenAdaptor;
+ }
+
+ @Override
+ public void registerVersioning(String versionableEntityType) {
+ }
+
+ @Override
+ public Collection<ImageEntity> list(ImageEntity image) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(image.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(image.getVersion()));
+
+ return listImages(context, elementContext, image);
+ }
+
+ private Collection<ImageEntity> listImages(SessionContext context,
+ ElementContext elementContext, ImageEntity image) {
+ return zusammenAdaptor
+ .listElementsByName(context, elementContext, new Id(image.getComponentId()),
+ StructureElement.Images.name())
+ .stream().map(elementInfo -> mapElementInfoToImage(
+ image.getVspId(), image.getVersion(), image.getComponentId(), elementInfo))
+ .collect(Collectors.toList());
+ }
+
+ private static ImageEntity mapElementInfoToImage(String vspId, Version version,
+ String componentId, ElementInfo elementInfo) {
+ ImageEntity imageEntity =
+ new ImageEntity(vspId, version, componentId, elementInfo.getId().getValue());
+ imageEntity.setCompositionData(
+ elementInfo.getInfo().getProperty(ElementPropertyName.compositionData.name()));
+ return imageEntity;
+ }
+
+ @Override
+ public void create(ImageEntity image) {
+ ZusammenElement imageElement = imageToZusammen(image, Action.CREATE);
+
+ ZusammenElement imagesElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Images, null);
+ imagesElement.setSubElements(Collections.singletonList(imageElement));
+
+ ZusammenElement componentElement = new ZusammenElement();
+ componentElement.setElementId(new Id(image.getComponentId()));
+ componentElement.setAction(Action.IGNORE);
+ componentElement.setSubElements(Collections.singletonList(imagesElement));
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(image.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+
+ Optional<Element> savedElement =
+ zusammenAdaptor.saveElement(context, elementContext, componentElement, "Create image");
+ savedElement.ifPresent(element ->
+ image.setId(element.getSubElements().iterator().next()
+ .getSubElements().iterator().next().getElementId().getValue()));
+ }
+
+ @Override
+ public void update(ImageEntity image) {
+ ZusammenElement imageElement = imageToZusammen(image, Action.UPDATE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(image.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, imageElement,
+ String.format("Update image with id %s", image.getId()));
+ }
+
+ @Override
+ public ImageEntity get(ImageEntity image) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(image.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(image.getVersion()));
+ Optional<Element> element = zusammenAdaptor.getElement(context, elementContext, image.getId());
+
+ if (element.isPresent()) {
+ image.setCompositionData(new String(FileUtils.toByteArray(element.get().getData())));
+ return image;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public void delete(ImageEntity image) {
+ ZusammenElement imageElement = new ZusammenElement();
+ imageElement.setElementId(new Id(image.getId()));
+ imageElement.setAction(Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(image.getVspId());
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, imageElement,
+ String.format("Delete image with id %s", image.getId()));
+ }
+
+ @Override
+ public void deleteByVspId(String vspId, Version version) {
+ ZusammenElement imagesElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Images, Action.DELETE);
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ zusammenAdaptor.saveElement(context,
+ new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)),
+ imagesElement, String.format("Delete all images with vsp id %s", vspId));
+ }
+
+ @Override
+ public Collection<ImageEntity> listByVsp(String vspId, Version version) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(version));
+
+ Collection<ComponentEntity> components = ComponentDaoZusammenImpl
+ .listComponents(zusammenAdaptor, context, elementContext, vspId, version);
+
+ return components.stream()
+ .map(component ->
+ listImages(context, elementContext,
+ new ImageEntity(vspId, version, component.getId(), null)).stream()
+ .map(image -> getQuestionnaire(context, elementContext, image))
+ .collect(Collectors.toList()))
+ .flatMap(Collection::stream)
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public ImageEntity getQuestionnaireData(String vspId, Version version, String componentId,
+ String imageId) {
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
+ VspZusammenUtil.getVersionTag(version));
+
+ return getQuestionnaire(context, elementContext,
+ new ImageEntity(vspId, version, componentId, imageId));
+ }
+
+ private ImageEntity getQuestionnaire(SessionContext context, ElementContext elementContext,
+ ImageEntity image) {
+ Optional<Element> questionnaireElement = zusammenAdaptor
+ .getElementByName(context, elementContext, new Id(image.getId()),
+ StructureElement.Questionnaire.name());
+ return questionnaireElement.map(
+ element -> element.getData() == null
+ ? null
+ : new String(FileUtils.toByteArray(element.getData())))
+ .map(questionnaireData -> {
+ image.setQuestionnaireData(questionnaireData);
+ return image;
+ })
+ .orElse(null);
+ }
+
+ @Override
+ public void updateQuestionnaireData(String vspId, Version version, String componentId,
+ String imageId, String questionnaireData) {
+ ZusammenElement questionnaireElement =
+ imageQuestionnaireToZusammen(questionnaireData, Action.UPDATE);
+
+ ZusammenElement imageElement = new ZusammenElement();
+ imageElement.setAction(Action.IGNORE);
+ imageElement.setElementId(new Id(imageId));
+ imageElement.setSubElements(Collections.singletonList(questionnaireElement));
+
+ SessionContext context = ZusammenUtil.createSessionContext();
+ Id itemId = new Id(vspId);
+ ElementContext elementContext = new ElementContext(itemId,
+ VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
+ zusammenAdaptor.saveElement(context, elementContext, imageElement, "Update image "
+ + "questionnaire");
+ }
+
+
+
+ private ZusammenElement imageToZusammen(ImageEntity image, Action action) {
+ ZusammenElement imageElement = buildImageElement(image, action);
+ if (action == Action.CREATE) {
+ imageElement.setSubElements(Collections.singletonList(
+ imageQuestionnaireToZusammen(image.getQuestionnaireData(), Action.CREATE)));
+ }
+ return imageElement;
+ }
+
+ private ZusammenElement imageQuestionnaireToZusammen(String questionnaireData,
+ Action action) {
+ ZusammenElement questionnaireElement =
+ VspZusammenUtil.buildStructuralElement(StructureElement.Questionnaire, action);
+ questionnaireElement.setData(new ByteArrayInputStream(questionnaireData.getBytes()));
+ return questionnaireElement;
+ }
+
+ private ZusammenElement buildImageElement(ImageEntity image, Action action) {
+ ZusammenElement imageElement = new ZusammenElement();
+ imageElement.setAction(action);
+ if (image.getId() != null) {
+ imageElement.setElementId(new Id(image.getId()));
+ }
+ Info info = new Info();
+ info.addProperty(ElementPropertyName.type.name(), ElementType.Image);
+ info.addProperty(ElementPropertyName.compositionData.name(), image.getCompositionData());
+ imageElement.setInfo(info);
+ imageElement.setData(new ByteArrayInputStream(image.getCompositionData().getBytes()));
+ return imageElement;
+ }
+
+
+}
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/StructureElement.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/StructureElement.java
index 5d53741ebf..6f15f5cdee 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/StructureElement.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/StructureElement.java
@@ -15,6 +15,10 @@ public enum StructureElement {
Mibs,
SNMP_TRAP,
SNMP_POLL,
+ VES_EVENTS,
Questionnaire,
ComponentDependencies,
+ Computes,
+ Images,
+ DeploymentFlavors
}
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 65a41330a7..eef90d4742 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
@@ -1,5 +1,6 @@
package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
@@ -21,6 +22,7 @@ import org.openecomp.sdc.versioning.types.VersionableEntityStoreType;
import java.io.ByteArrayInputStream;
import java.util.Collection;
import java.util.Date;
+import java.util.Optional;
import java.util.stream.Collectors;
public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareProductInfoDao {
@@ -148,6 +150,17 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
}
+ @Override
+ public boolean isManual(String vspId, Version version) {
+ final VspDetails vspDetails = get(new VspDetails(vspId, version));
+ if (vspDetails != null) {
+ if ("Manual".equals(vspDetails.getOnboardingMethod())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private Info mapVspDetailsToZusammenItemInfo(VspDetails vspDetails) {
Info info = new Info();
info.setName(vspDetails.getName());
@@ -186,6 +199,7 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
info.addProperty(InfoPropertyName.licenseAgreement.name(), vspDetails.getLicenseAgreement());
info.addProperty(InfoPropertyName.featureGroups.name(), vspDetails.getFeatureGroups());
info.addProperty(InfoPropertyName.oldVersion.name(), vspDetails.getOldVersion());
+ info.addProperty(InfoPropertyName.onboardingMethod.name(), vspDetails.getOnboardingMethod());
}
private VspDetails mapInfoToVspDetails(String vspId, Version version, Info info,
@@ -208,6 +222,8 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
//Boolean oldVersion = ind == null || "true".equals( ind.toLowerCase());
vspDetails.setOldVersion(oldVersion);
+ vspDetails.setOnboardingMethod(info.getProperty(InfoPropertyName.onboardingMethod.name()));
+
return vspDetails;
}
@@ -222,7 +238,8 @@ public class VendorSoftwareProductInfoDaoZusammenImpl implements VendorSoftwareP
vendorVersion,
licenseAgreement,
featureGroups,
- oldVersion
+ oldVersion,
+ onboardingMethod
}
}
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/errors/VendorSoftwareProductErrorCodes.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
index 2a50f33349..5284b9a74f 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
@@ -27,6 +27,7 @@ public class VendorSoftwareProductErrorCodes {
public static final String VSP_NOT_FOUND = "VSP_NOT_FOUND";
public static final String VSP_INVALID = "VSP_INVALID";
+ public static final String VFC_INVALID = "VFC_INVALID";
public static final String FAILED_TO_CREATE_VSP = "FAILED_TO_CREATE_VSP";
public static final String UPLOAD_INVALID = "UPLOAD_INVALID";
@@ -46,7 +47,7 @@ public class VendorSoftwareProductErrorCodes {
public static final String TOSCA_INVALID_SUBSTITUTE_NODE_TEMPLATE =
"TOSCA_INVALID_SUBSTITUTE_NODE_TEMPLATE";
- public static final String MIB_UPLOAD_INVALID = "MIB_UPLOAD_INVALID";
+ public static final String MONITORING_UPLOAD_INVALID = "MONITORING_UPLOAD_INVALID";
public static final String ORCHESTRATION_NOT_FOUND = "ORCHESTRATION_NOT_FOUND";
@@ -59,4 +60,65 @@ public class VendorSoftwareProductErrorCodes {
public static final String SAME_SOURCE_TARGET_COMPONENT = "SAME_SOURCE_TARGET_COMPONENT";
+ public static final String VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED =
+ "VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED";
+
+ public static final String DUPLICATE_NIC_NAME_NOT_ALLOWED = "DUPLICATE_NIC_NAME_NOT_ALLOWED";
+
+ public static final String NULL_NETWORKID_NOT_ALLOWED = "NULL_NETWORKID_NOT_ALLOWED";
+
+ public static final String NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK =
+ "NETWORKID_NOT_ALLOWED_FOR_EXTERNAL_NETWORK";
+
+ public static final String VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING =
+ "VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+ public static final String VSP_VFC_COUNT_EXCEED = "VSP_VFC_COUNT_EXCEED";
+ public static final String VSP_VFC_DUPLICATE_NAME = "VSP_VFC_DUPLICATE_NAME";
+ public static final String VSP_INVALID_ONBOARDING_METHOD = "VSP_INVALID_ONBOARDING_METHOD";
+ public static final String
+ ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING = "ADD_NIC_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+ public static final String NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK
+ = "NETWORK_DESCRIPTION_NOT_ALLOWED_FOR_INTERNAL_NETWORK";
+
+ public static final String VFC_ATTRIBUTE_UPDATE_NOT_ALLOWED =
+ "VFC_ATTRIBUTE_UPDATE_NOT_ALLOWED";
+ public static final String NETWORK_TYPE_UPDATE_NOT_ALLOWED
+ = "NETWORK_TYPE_UPDATE_NOT_ALLOWED";
+ public static final String DELETE_NIC_NOT_ALLOWED = "DELETE_NIC_NOT_ALLOWED";
+
+ public static final String CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING =
+ "CREATE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+
+ public static final String DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING =
+ "DELETE_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+
+ public static final String EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING =
+ "EDIT_DEPLOYMENT_FLAVOR_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+
+ public static final String FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR =
+ "FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR";
+
+ public static final String
+ ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING = "ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+
+ public static final String DUPLICATE_IMAGE_NAME_NOT_ALLOWED = "DUPLICATE_IMAGE_NAME_NOT_ALLOWED";
+ public static final String VFC_IMAGE_INVALID_FORMAT = "VFC_IMAGE_INVALID_FORMAT";
+ public static final String FEATURE_GROUP_NOT_EXIST_FOR_VSP = "FEATURE_GROUP_NOT_EXIST_FOR_VSP";
+
+ public static final String
+ ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING = "ADD_COMPUTE_NOT_ALLOWED_IN_HEAT_ONBOARDING";
+ public static final String VFC_COMPUTE_INVALID_FORMAT = "VFC_COMPUTE_INVALID_FORMAT";
+ public static final String UPDATE_COMPUTE_NOT_ALLOWED = "UPDATE_COMPUTE_NOT_ALLOWED";
+ public static final String
+ INVALID_COMPONENT_COMPUTE_ASSOCIATION = "INVALID_COMPONENT_COMPUTE_ASSOCIATION";
+ public static final String SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED
+ = "SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED";
+ public static final String DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED
+ = "DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED";
+ public static final String INVALID_COMPUTE_FLAVOR_ID = "INVALID_COMPUTE_FLAVOR_ID";
+ public static final String DUPLICATE_COMPUTE_NAME_NOT_ALLOWED = "DUPLICATE_COMPUTE_NAME_NOT_ALLOWED";
+
+ public static final String DELETE_IMAGE_NOT_ALLOWED = "DELETE_IMAGE_NOT_ALLOWED";
+ public static final String UPDATE_IMAGE_NOT_ALLOWED = "UPDATE_IMAGE_NOT_ALLOWED";
+
}
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/factory/impl/CompositionEntityDataManagerFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/factory/impl/CompositionEntityDataManagerFactoryImpl.java
index 9383e41a40..393325d437 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/factory/impl/CompositionEntityDataManagerFactoryImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/factory/impl/CompositionEntityDataManagerFactoryImpl.java
@@ -21,8 +21,16 @@
package org.openecomp.sdc.vendorsoftwareproduct.factory.impl;
import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.factory.CompositionEntityDataManagerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
@@ -37,6 +45,10 @@ public class CompositionEntityDataManagerFactoryImpl extends CompositionEntityDa
VendorSoftwareProductInfoDaoFactory.getInstance().createInterface(),
ComponentDaoFactory.getInstance().createInterface(),
NicDaoFactory.getInstance().createInterface(),
- NetworkDaoFactory.getInstance().createInterface());
+ NetworkDaoFactory.getInstance().createInterface(),
+ ImageDaoFactory.getInstance().createInterface() ,
+ ComputeDaoFactory.getInstance().createInterface(),
+ DeploymentFlavorDaoFactory.getInstance().createInterface(),
+ VendorSoftwareProductDaoFactory.getInstance().createInterface());
}
}
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/CompositionDataExtractorImpl.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/CompositionDataExtractorImpl.java
index d72a0dbe23..6b55ffc714 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/CompositionDataExtractorImpl.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/CompositionDataExtractorImpl.java
@@ -20,12 +20,13 @@
package org.openecomp.sdc.vendorsoftwareproduct.services.impl.composition;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
+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.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.types.LoggerConstants;
@@ -47,12 +48,14 @@ import org.openecomp.sdc.tosca.errors.ToscaMissingSubstitutionMappingForReqCapEr
import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionDataExtractor;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ExtractCompositionDataContext;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
@@ -60,7 +63,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Optional;
+import java.util.stream.Collectors;
public class CompositionDataExtractorImpl implements CompositionDataExtractor {
@@ -293,6 +298,10 @@ public class CompositionDataExtractorImpl implements CompositionDataExtractor {
if (MapUtils.isEmpty(computeNodeTemplates)) {
return;
}
+ Map<String, List<String>> imageNodeTemplates = getComponentImages(computeNodeTemplates,
+ toscaServiceModel);
+ Map<String, List<String>> computeFlavorNodeTemplates =
+ getComponentComputeFlavor(computeNodeTemplates, toscaServiceModel);
Map<String, NodeTemplate> portNodeTemplates = toscaAnalyzerService
.getNodeTemplatesByType(serviceTemplate, ToscaNodeType.NATIVE_NETWORK_PORT,
toscaServiceModel);
@@ -306,14 +315,90 @@ public class CompositionDataExtractorImpl implements CompositionDataExtractor {
.filter(nodeType ->
!context.getCreatedComponents().contains(nodeType))
.forEach(nodeType -> extractComponent(serviceTemplate, computeToPortsConnection,
- computesGroupedByType, nodeType, context));
+ computesGroupedByType, imageNodeTemplates, computeFlavorNodeTemplates, nodeType,
+ context));
mdcDataDebugMessage.debugExitMessage(null);
}
+ private Map<String,List<String>> getComponentImages(Map<String, NodeTemplate>
+ computeNodeTemplates,
+ ToscaServiceModel toscaServiceModel) {
+ Map<String,List<String>> computeImages = new HashMap<>();
+ for (String component : computeNodeTemplates.keySet()) {
+ List<String> images = new ArrayList<>();
+ Map<String,Object> properties = computeNodeTemplates.get(component).getProperties();
+
+ List<Object> imagesList = properties.entrySet()
+ .stream()
+ .filter(map -> map.getKey().equals("image"))
+ .map(map -> map.getValue())
+ .collect(Collectors.toList());
+ for (Object obj : imagesList) {
+ if (obj instanceof String) {
+ images.add((String) obj);
+ } else {
+ HashMap<String,String> objMap = new ObjectMapper().convertValue(obj,HashMap.class);
+ images.add(getInputs(toscaServiceModel,objMap.get("get_input")));
+ }
+ }
+ computeImages.put(component,images);
+ }
+ return computeImages;
+ }
+
+ private Map<String,List<String>> getComponentComputeFlavor(Map<String, NodeTemplate>
+ computeNodeTemplates,
+ ToscaServiceModel toscaServiceModel) {
+ Map<String,List<String>> componentComputeFlavor = new HashMap<>();
+ for (String component : computeNodeTemplates.keySet()) {
+ List<String> computes = new ArrayList<>();
+ Map<String,Object> properties = computeNodeTemplates.get(component).getProperties();
+
+ List<Object> computessList = properties.entrySet()
+ .stream()
+ .filter(map -> map.getKey().equals("flavor"))
+ .map(map -> map.getValue())
+ .collect(Collectors.toList());
+ for (Object obj : computessList) {
+ if (obj instanceof String) {
+ computes.add((String) obj);
+ } else {
+ HashMap<String, String> objMap = new ObjectMapper().convertValue(obj, HashMap.class);
+ computes.add(getInputs(toscaServiceModel, objMap.get("get_input")));
+ }
+ }
+ componentComputeFlavor.put(component,computes);
+ }
+ return componentComputeFlavor;
+ }
+
+ private String getInputs(ToscaServiceModel toscaServiceModel, String inputValue) {
+ String mainTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ List<ServiceTemplate> toscaServiceTemplates = toscaServiceModel.getServiceTemplates().entrySet()
+ .stream()
+ .filter(map -> map.getKey().equals(mainTemplate))
+ .map(map -> map.getValue())
+ .collect(Collectors.toList());
+ ServiceTemplate serviceTemplate = toscaServiceTemplates.get(0);
+
+ if (Objects.nonNull(serviceTemplate.getTopology_template())
+ && MapUtils.isNotEmpty(serviceTemplate.getTopology_template().getInputs())) {
+ for (Map.Entry<String, ParameterDefinition> inputEntry : serviceTemplate
+ .getTopology_template().getInputs().entrySet()) {
+ if (inputEntry.getKey().equals(inputValue)) {
+ return (String)inputEntry.getValue().get_default();
+ }
+ }
+ }
+ return inputValue;
+ }
+
private void extractComponent(ServiceTemplate serviceTemplate,
Map<String, List<String>> computeToPortsConnection,
Map<String, List<String>> computesGroupedByType,
+ Map<String, List<String>> imageList,
+ Map<String, List<String>> computeFlavorNodeTemplates,
String computeNodeType,
ExtractCompositionDataContext context) {
ComponentData component = new ComponentData();
@@ -325,14 +410,28 @@ public class CompositionDataExtractorImpl implements CompositionDataExtractor {
String computeId = computesGroupedByType.get(computeNodeType).get(0);
List<String> connectedPortIds = computeToPortsConnection.get(computeId);
+ List<String> images = imageList.get(computeId);
+ List<String> computeFlavors = computeFlavorNodeTemplates.get(computeId);
if (connectedPortIds != null) {
componentModel.setNics(new ArrayList<>());
+ componentModel.setImages(new ArrayList<>());
+ componentModel.setCompute(new ArrayList<>());
for (String portId : connectedPortIds) {
Nic port = extractPort(serviceTemplate, portId);
componentModel.getNics().add(port);
context.addNic(portId, port);
}
+ for (String image : images) {
+ Image img = new Image(image);
+ componentModel.getImages().add(img);
+ context.addImage(image, img);
+ }
+ for (String flavor : computeFlavors) {
+ ComputeData computeFlavor = new ComputeData(flavor);
+ componentModel.getCompute().add(computeFlavor);
+ context.addCompute(flavor,computeFlavor);
+ }
}
context.addComponent(componentModel);
context.getCreatedComponents().add(computeNodeType);
@@ -356,7 +455,6 @@ public class CompositionDataExtractorImpl implements CompositionDataExtractor {
}
}
-
private Map<String, List<String>> getNodeTemplatesGroupedByType(
Map<String, NodeTemplate> nodeTemplates) {
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 c33b2dd3b4..71f5fa1d41 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
@@ -22,6 +22,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.services.impl.composition;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.json.JsonSchemaDataGenerator;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.common.errors.CoreException;
@@ -31,11 +32,18 @@ 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.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+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.CompositionEntity;
+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;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
@@ -43,12 +51,17 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity;
import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionData;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
@@ -82,14 +95,25 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
private ComponentDao componentDao;
private NicDao nicDao;
private NetworkDao networkDao;
+ private ImageDao imageDao;
+ private ComputeDao computeDao;
+ private DeploymentFlavorDao deploymentFlavorDao;
+ private VendorSoftwareProductDao vendorSoftwareProductDao;
public CompositionEntityDataManagerImpl(VendorSoftwareProductInfoDao vspInfoDao,
ComponentDao componentDao,
- NicDao nicDao, NetworkDao networkDao) {
+ NicDao nicDao, NetworkDao networkDao,
+ ImageDao imageDao, ComputeDao computeDao,
+ DeploymentFlavorDao deploymentFlavorDao,
+ VendorSoftwareProductDao vendorSoftwareProductDao ) {
this.vspInfoDao = vspInfoDao;
this.componentDao = componentDao;
this.nicDao = nicDao;
this.networkDao = networkDao;
+ this.imageDao = imageDao;
+ this.computeDao = computeDao;
+ this.deploymentFlavorDao = deploymentFlavorDao;
+ this.vendorSoftwareProductDao = vendorSoftwareProductDao;
}
/**
@@ -200,6 +224,7 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
Map<String, String> networkIdByName = saveNetworks(vspId, version, compositionData);
saveComponents(vspId, version, compositionData, networkIdByName);
+ saveDeploymentFlavors(vspId, version, compositionData);
mdcDataDebugMessage.debugExitMessage(null);
}
@@ -269,6 +294,9 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
String componentId = createComponent(componentEntity).getId();
+ saveImagesByComponent(vspId, version, component, componentId);
+ saveComputesFlavorByComponent(vspId, version, component, componentId);
+
saveNicsByComponent(vspId, version, networkIdByName, component, componentId);
}
}
@@ -285,6 +313,8 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
nic.setNetworkId(networkIdByName.get(nic.getNetworkName()));
}
nic.setNetworkName(null);
+ //For heat flow set network type to be internal by default for NIC
+ nic.setNetworkType(NetworkType.Internal);
NicEntity nicEntity = new NicEntity(vspId, version, componentId, null);
nicEntity.setNicCompositionData(nic);
@@ -592,4 +622,104 @@ public class CompositionEntityDataManagerImpl implements CompositionEntityDataMa
return SchemaGenerator
.generate(schemaTemplateContext, compositionEntityType, schemaTemplateInput);
}
+
+ @Override
+ public DeploymentFlavorEntity createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavor) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ deploymentFlavor.setId(CommonMethods.nextUuId());
+ deploymentFlavorDao.create(deploymentFlavor);
+ return deploymentFlavor;
+ }
+
+ @Override
+ public ImageEntity createImage(ImageEntity image) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ image.setId(CommonMethods.nextUuId());
+
+ image.setQuestionnaireData(
+ new JsonSchemaDataGenerator(SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image, null))
+ .generateData());
+
+ imageDao.create(image);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return image;
+ }
+
+ @Override
+ public ComputeEntity createCompute(ComputeEntity compute) {
+ mdcDataDebugMessage.debugEntryMessage("VSP id, component id", compute.getVspId(),
+ compute.getComponentId());
+
+ compute.setId(CommonMethods.nextUuId());
+ compute.setQuestionnaireData(
+ new JsonSchemaDataGenerator(SchemaGenerator
+ .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.compute,
+ null)).generateData());
+
+ computeDao.create(compute);
+
+ mdcDataDebugMessage.debugExitMessage("VSP id, component id", compute.getVspId(),
+ compute.getComponentId());
+ return compute;
+ }
+
+ public void saveComputesFlavorByComponent(String vspId, Version version, Component component, String
+ componentId) {
+ if (CollectionUtils.isNotEmpty(component.getCompute())) {
+ for (ComputeData flavor : component.getCompute()) {
+ ComputeEntity computeEntity = new ComputeEntity(vspId, version, componentId, null);
+ computeEntity.setComputeCompositionData(flavor);
+ createCompute(computeEntity);
+ }
+ }
+ }
+
+ public void saveImagesByComponent(String vspId, Version version, Component component, String
+ componentId) {
+ if (CollectionUtils.isNotEmpty(component.getImages())) {
+ for (Image img : component.getImages()) {
+ ImageEntity imageEntity = new ImageEntity(vspId, version, componentId, null);
+ imageEntity.setImageCompositionData(img);
+ createImage(imageEntity);
+ }
+ }
+ }
+
+ public void saveDeploymentFlavors(String vspId, Version version,
+ CompositionData compositionData) {
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (CollectionUtils.isNotEmpty(compositionData.getComponents())) {
+ DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version,
+ null);
+ DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+ VspDetails vendorSoftwareProductInfo =
+ vspInfoDao.get(new VspDetails(vspId, version));
+ if (vendorSoftwareProductInfo.getName() != null) {
+ deploymentFlavor.setModel(vendorSoftwareProductInfo.getName());
+ List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
+ Collection<ComputeEntity> computes= vendorSoftwareProductDao.listComputesByVsp(vspId,
+ version);
+ for (ComputeEntity compute : computes) {
+ ComponentComputeAssociation componentComputeAssociation = new
+ ComponentComputeAssociation();
+ if (compute.getComponentId() != null && compute.getId() != null){
+ componentComputeAssociation.setComponentId(compute.getComponentId());
+ componentComputeAssociation.setComputeFlavorId(compute.getId());
+ componentComputeAssociationList.add(componentComputeAssociation);
+ }
+ }
+ deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
+ }
+ deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+ createDeploymentFlavor(deploymentFlavorEntity);
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, 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 e05c848452..6ccece1e76 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
@@ -71,553 +71,560 @@ import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class CandidateServiceImpl implements CandidateService {
- protected static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
- private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+ protected static final Logger logger = LoggerFactory.getLogger(CandidateServiceImpl.class);
+ private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
- private CandidateServiceValidator candidateServiceValidator = new CandidateServiceValidator();
- private ManifestCreator manifestCreator;
- private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao;
+ private CandidateServiceValidator candidateServiceValidator = new CandidateServiceValidator();
+ private ManifestCreator manifestCreator;
+ private OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao;
- public CandidateServiceImpl(ManifestCreator manifestCreator,
- OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao) {
- this.manifestCreator = manifestCreator;
- this.orchestrationTemplateCandidateDataDao = orchestrationTemplateCandidateDataDao;
+ public CandidateServiceImpl(ManifestCreator manifestCreator,
+ OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao) {
+ this.manifestCreator = manifestCreator;
+ this.orchestrationTemplateCandidateDataDao = orchestrationTemplateCandidateDataDao;
- }
+ }
- public CandidateServiceImpl() {
- }
+ public CandidateServiceImpl() {
+ }
- @Override
- public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream heatFileToUpload) {
+ @Override
+ public Optional<ErrorMessage> validateNonEmptyFileToUpload(InputStream heatFileToUpload) {
- mdcDataDebugMessage.debugEntryMessage(null);
+ mdcDataDebugMessage.debugEntryMessage(null);
- if (Objects.isNull(heatFileToUpload)) {
- return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
- } else {
- try {
- int available = heatFileToUpload.available();
- if (available == 0) {
- mdcDataDebugMessage.debugExitMessage(null);
- return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+ if (Objects.isNull(heatFileToUpload)) {
+ return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+ } else {
+ try {
+ int available = heatFileToUpload.available();
+ if (available == 0) {
+ mdcDataDebugMessage.debugExitMessage(null);
+ return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+ }
+ } catch (IOException e) {
+ mdcDataDebugMessage.debugExitMessage(null);
+ return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
+ }
}
- } catch (IOException e) {
+
mdcDataDebugMessage.debugExitMessage(null);
- return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
- }
+ return Optional.empty();
}
- mdcDataDebugMessage.debugExitMessage(null);
- return Optional.empty();
- }
-
- @Override
- public Optional<ErrorMessage> validateRawZipData(byte[] uploadedFileData) {
- if (Objects.isNull(uploadedFileData)) {
- return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
- Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
- }
- return Optional.empty();
- }
-
- private String heatStructureTreeToFileDataStructure(HeatStructureTree tree,
- FileContentHandler zipContentMap,
- Map<String, List<ErrorMessage>> uploadErrors,
- AnalyzedZipHeatFiles analyzedZipHeatFiles)
- throws Exception {
- FilesDataStructure structure = new FilesDataStructure();
- Set<String> usedEnvFiles = new HashSet<>();
- addHeatsToFileDataStructure(tree, usedEnvFiles, structure, uploadErrors,
- analyzedZipHeatFiles);
- handleOtherResources(tree, usedEnvFiles, structure);
- FilesDataStructure fileDataStructureFromManifest =
- createFileDataStructureFromManifest(zipContentMap.getFileContent
- (SdcCommon.MANIFEST_NAME));
- List<String> structureArtifacts = structure.getArtifacts();
- structureArtifacts.addAll(fileDataStructureFromManifest.getArtifacts().stream().filter
- (artifact -> !structureArtifacts.contains(artifact)).collect((Collectors.toList())));
- handleArtifactsFromTree(tree, structure);
-
- return JsonUtil.object2Json(structure);
- }
-
- @Override
- public OrchestrationTemplateCandidateData createCandidateDataEntity(
- CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
- AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception {
-
-
- mdcDataDebugMessage.debugEntryMessage(null);
-
- FileContentHandler zipContentMap = candidateDataEntityTo.getContentMap();
- FilesDataStructure filesDataStructure;
- String dataStructureJson;
-
- if (zipFileManifest != null) {
- // create data structure from manifest
- filesDataStructure = createFileDataStructureFromManifest(zipFileManifest);
- Set<String> zipFileList = zipContentMap.getFileList();
- balanceManifestFilesWithZipFiles(filesDataStructure,
- zipContentMap, analyzedZipHeatFiles);
- Set<String> filesDataStructureFiles = getFlatFileNames(filesDataStructure);
- filesDataStructure.getUnassigned().addAll(zipFileList.stream()
- .filter(fileName -> (!filesDataStructureFiles.contains(fileName) &&
- !filesDataStructure.getNested().contains(fileName) &&
- !fileName.equals(SdcCommon.MANIFEST_NAME)))
- .collect(Collectors.toList()));
- dataStructureJson = JsonUtil.object2Json(filesDataStructure);
- } else {
- // create data structure from based on naming convention
- dataStructureJson =
- heatStructureTreeToFileDataStructure(candidateDataEntityTo.getTree(), zipContentMap,
- candidateDataEntityTo.getErrors(), analyzedZipHeatFiles);
- }
-
- mdcDataDebugMessage.debugExitMessage(null);
- return new OrchestrationTemplateCandidateData(
- ByteBuffer.wrap(candidateDataEntityTo.getUploadedFileData()), dataStructureJson);
- }
-
- private void balanceManifestFilesWithZipFiles(
- FilesDataStructure filesDataStructure,
- FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles)
- throws Exception {
- Set<String> zipFileList = fileContentHandler.getFileList();
- filesDataStructure.getNested().addAll(analyzedZipHeatFiles.getNestedFiles());
- List<Module> modules = filesDataStructure.getModules();
- if (CollectionUtils.isEmpty(modules)) {
- return;
- }
-
- for (int i = 0; i < modules.size(); i++) {
- Module module = modules.get(i);
- if (!isFileExistInZipContains(zipFileList, module.getYaml())) {
- addFileToUnassigned(filesDataStructure, zipFileList, module.getEnv());
- addFileToUnassigned(filesDataStructure, zipFileList, module.getVol());
- addFileToUnassigned(filesDataStructure, zipFileList, module.getVolEnv());
- modules.remove(i--);
- } else if (Objects.nonNull(module.getVol()) && !zipFileList.contains(module.getVol())) {
- module.setVol(null);
- CollectionUtils.addIgnoreNull(filesDataStructure.getUnassigned(), module.getVolEnv());
- } else {
- if (filesDataStructure.getNested().contains(module.getYaml())) {
- moveModuleFileToNested(filesDataStructure, i--, module);
+ @Override
+ public Optional<ErrorMessage> validateRawZipData(byte[] uploadedFileData) {
+ if (Objects.isNull(uploadedFileData)) {
+ return Optional.of(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.NO_ZIP_FILE_WAS_UPLOADED_OR_ZIP_NOT_EXIST.getErrorMessage()));
}
- }
+ return Optional.empty();
}
- }
- private void addFileToUnassigned(FilesDataStructure filesDataStructure, Set<String> zipFileList,
- String fileName) {
- if (isFileExistInZipContains(zipFileList, fileName)) {
- filesDataStructure.getUnassigned().add(fileName);
+ private String heatStructureTreeToFileDataStructure(HeatStructureTree tree,
+ FileContentHandler zipContentMap,
+ Map<String, List<ErrorMessage>> uploadErrors,
+ AnalyzedZipHeatFiles analyzedZipHeatFiles)
+ throws Exception {
+ FilesDataStructure structure = new FilesDataStructure();
+ Set<String> usedEnvFiles = new HashSet<>();
+ addHeatsToFileDataStructure(tree, usedEnvFiles, structure, uploadErrors,
+ analyzedZipHeatFiles);
+ handleOtherResources(tree, usedEnvFiles, structure);
+ FilesDataStructure fileDataStructureFromManifest =
+ createFileDataStructureFromManifest(zipContentMap.getFileContent
+ (SdcCommon.MANIFEST_NAME));
+ List<String> structureArtifacts = structure.getArtifacts();
+ structureArtifacts.addAll(fileDataStructureFromManifest.getArtifacts().stream().filter
+ (artifact -> !structureArtifacts.contains(artifact)).collect((Collectors.toList())));
+ handleArtifactsFromTree(tree, structure);
+
+ return JsonUtil.object2Json(structure);
}
- }
- private boolean isFileExistInZipContains(Set<String> zipFileList, String fileName) {
- return Objects.nonNull(fileName) && zipFileList.contains(fileName);
- }
+ @Override
+ public OrchestrationTemplateCandidateData createCandidateDataEntity(
+ CandidateDataEntityTo candidateDataEntityTo, InputStream zipFileManifest,
+ AnalyzedZipHeatFiles analyzedZipHeatFiles) throws Exception {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null);
+
+ FileContentHandler zipContentMap = candidateDataEntityTo.getContentMap();
+ FilesDataStructure filesDataStructure;
+ String dataStructureJson;
+
+ if (zipFileManifest != null) {
+ // create data structure from manifest
+ filesDataStructure = createFileDataStructureFromManifest(zipFileManifest);
+ Set<String> zipFileList = zipContentMap.getFileList();
+ balanceManifestFilesWithZipFiles(filesDataStructure,
+ zipContentMap, analyzedZipHeatFiles);
+ Set<String> filesDataStructureFiles = getFlatFileNames(filesDataStructure);
+ filesDataStructure.getUnassigned().addAll(zipFileList.stream()
+ .filter(fileName -> (!filesDataStructureFiles.contains(fileName) &&
+ !filesDataStructure.getNested().contains(fileName) &&
+ !fileName.equals(SdcCommon.MANIFEST_NAME)))
+ .collect(Collectors.toList()));
+ dataStructureJson = JsonUtil.object2Json(filesDataStructure);
+ } else {
+ // create data structure from based on naming convention
+ dataStructureJson =
+ heatStructureTreeToFileDataStructure(candidateDataEntityTo.getTree(), zipContentMap,
+ candidateDataEntityTo.getErrors(), analyzedZipHeatFiles);
+ }
- private void moveModuleFileToNested(FilesDataStructure filesDataStructure, int i, Module module) {
- if (!filesDataStructure.getNested().contains(module.getYaml())) {
- filesDataStructure.getNested().add(module.getYaml());
+ mdcDataDebugMessage.debugExitMessage(null);
+ return new OrchestrationTemplateCandidateData(
+ ByteBuffer.wrap(candidateDataEntityTo.getUploadedFileData()), dataStructureJson);
}
- if (Objects.nonNull(module.getEnv())) {
- filesDataStructure.getNested().add(module.getEnv());
+
+ private void balanceManifestFilesWithZipFiles(
+ FilesDataStructure filesDataStructure,
+ FileContentHandler fileContentHandler, AnalyzedZipHeatFiles analyzedZipHeatFiles)
+ throws Exception {
+ Set<String> zipFileList = fileContentHandler.getFileList();
+ filesDataStructure.getNested().addAll(analyzedZipHeatFiles.getNestedFiles());
+ List<Module> modules = filesDataStructure.getModules();
+ if (CollectionUtils.isEmpty(modules)) {
+ return;
+ }
+
+ for (int i = 0; i < modules.size(); i++) {
+ Module module = modules.get(i);
+ if (!isFileExistInZipContains(zipFileList, module.getYaml())) {
+ addFileToUnassigned(filesDataStructure, zipFileList, module.getEnv());
+ addFileToUnassigned(filesDataStructure, zipFileList, module.getVol());
+ addFileToUnassigned(filesDataStructure, zipFileList, module.getVolEnv());
+ modules.remove(i--);
+ } else if (Objects.nonNull(module.getVol()) && !zipFileList.contains(module.getVol())) {
+ module.setVol(null);
+ CollectionUtils
+ .addIgnoreNull(filesDataStructure.getUnassigned(), module.getVolEnv());
+ } else {
+ if (filesDataStructure.getNested().contains(module.getYaml())) {
+ moveModuleFileToNested(filesDataStructure, i--, module);
+ }
+ }
+ }
}
- if (Objects.nonNull(module.getVol())) {
- filesDataStructure.getNested().add(module.getVol());
+
+ private void addFileToUnassigned(FilesDataStructure filesDataStructure, Set<String> zipFileList,
+ String fileName) {
+ if (isFileExistInZipContains(zipFileList, fileName)) {
+ filesDataStructure.getUnassigned().add(fileName);
+ }
}
- if (Objects.nonNull(module.getVolEnv())) {
- filesDataStructure.getNested().add(module.getVolEnv());
+
+ private boolean isFileExistInZipContains(Set<String> zipFileList, String fileName) {
+ return Objects.nonNull(fileName) && zipFileList.contains(fileName);
}
- filesDataStructure.getModules().remove(i);
- }
- private Set<String> getFlatFileNames(FilesDataStructure filesDataStructure) {
- Set<String> fileNames = new HashSet<>();
- if (!CollectionUtils.isEmpty(filesDataStructure.getModules())) {
- for (Module module : filesDataStructure.getModules()) {
- CollectionUtils.addIgnoreNull(fileNames, module.getEnv());
- CollectionUtils.addIgnoreNull(fileNames, module.getVol());
- CollectionUtils.addIgnoreNull(fileNames, module.getVolEnv());
- CollectionUtils.addIgnoreNull(fileNames, module.getYaml());
- }
+ private void moveModuleFileToNested(FilesDataStructure filesDataStructure, int i,
+ Module module) {
+ if (!filesDataStructure.getNested().contains(module.getYaml())) {
+ filesDataStructure.getNested().add(module.getYaml());
+ }
+ if (Objects.nonNull(module.getEnv())) {
+ filesDataStructure.getNested().add(module.getEnv());
+ }
+ if (Objects.nonNull(module.getVol())) {
+ filesDataStructure.getNested().add(module.getVol());
+ }
+ if (Objects.nonNull(module.getVolEnv())) {
+ filesDataStructure.getNested().add(module.getVolEnv());
+ }
+ filesDataStructure.getModules().remove(i);
}
- fileNames.addAll(filesDataStructure.getArtifacts().stream().collect(Collectors.toSet()));
- fileNames.addAll(filesDataStructure.getNested().stream().collect(Collectors.toSet()));
- fileNames.addAll(filesDataStructure.getUnassigned().stream().collect(Collectors.toSet()));
- return fileNames;
- }
+ private Set<String> getFlatFileNames(FilesDataStructure filesDataStructure) {
+ Set<String> fileNames = new HashSet<>();
+ if (!CollectionUtils.isEmpty(filesDataStructure.getModules())) {
+ for (Module module : filesDataStructure.getModules()) {
+ CollectionUtils.addIgnoreNull(fileNames, module.getEnv());
+ CollectionUtils.addIgnoreNull(fileNames, module.getVol());
+ CollectionUtils.addIgnoreNull(fileNames, module.getVolEnv());
+ CollectionUtils.addIgnoreNull(fileNames, module.getYaml());
+ }
+ }
+ fileNames.addAll(filesDataStructure.getArtifacts().stream().collect(Collectors.toSet()));
+ fileNames.addAll(filesDataStructure.getNested().stream().collect(Collectors.toSet()));
+ fileNames.addAll(filesDataStructure.getUnassigned().stream().collect(Collectors.toSet()));
+
+ return fileNames;
+ }
- private FilesDataStructure createFileDataStructureFromManifest(InputStream isManifestContent) {
+ private FilesDataStructure createFileDataStructureFromManifest(InputStream isManifestContent) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null);
+
+ ManifestContent manifestContent =
+ JsonUtil.json2Object(isManifestContent, ManifestContent.class);
+ FilesDataStructure structure = new FilesDataStructure();
+ for (FileData fileData : manifestContent.getData()) {
+ if (Objects.nonNull(fileData.getType()) &&
+ fileData.getType().equals(FileData.Type.HEAT)) {
+ Module module = new Module();
+ module.setYaml(fileData.getFile());
+ module.setIsBase(fileData.getBase());
+ addHeatDependenciesToModule(module, fileData.getData());
+ structure.getModules().add(module);
+ } else if (HeatFileAnalyzer.isYamlOrEnvFile(fileData.getFile()) &&
+ !FileData.Type.isArtifact(fileData.getType())) {
+ structure.getUnassigned().add(fileData.getFile());
+ } else {
+ structure.getArtifacts().add(fileData.getFile());
+ }
+ }
+ mdcDataDebugMessage.debugExitMessage(null);
+ return structure;
+ }
- mdcDataDebugMessage.debugEntryMessage(null);
+ private void addHeatDependenciesToModule(Module module, List<FileData> data) {
+ if (CollectionUtils.isEmpty(data)) {
+ return;
+ }
- ManifestContent manifestContent =
- JsonUtil.json2Object(isManifestContent, ManifestContent.class);
- FilesDataStructure structure = new FilesDataStructure();
- for (FileData fileData : manifestContent.getData()) {
- if (Objects.nonNull(fileData.getType()) && fileData.getType().equals(FileData.Type.HEAT)) {
- Module module = new Module();
- module.setYaml(fileData.getFile());
- module.setIsBase(fileData.getBase());
- addHeatDependenciesToModule(module, fileData.getData());
- structure.getModules().add(module);
- } else if (HeatFileAnalyzer.isYamlOrEnvFile(fileData.getFile()) &&
- !FileData.Type.isArtifact(fileData.getType())) {
- structure.getUnassigned().add(fileData.getFile());
- } else {
- structure.getArtifacts().add(fileData.getFile());
- }
- }
-
- mdcDataDebugMessage.debugExitMessage(null);
- return structure;
- }
-
- private void addHeatDependenciesToModule(Module module, List<FileData> data) {
- if (CollectionUtils.isEmpty(data)) {
- return;
- }
-
- for (FileData fileData : data) {
- if (fileData.getType().equals(FileData.Type.HEAT_ENV)) {
- module.setEnv(fileData.getFile());
- } else if (fileData.getType().equals(FileData.Type.HEAT_VOL))// must be volume
- {
- module.setVol(fileData.getFile());
- if (!CollectionUtils.isEmpty(fileData.getData())) {
- FileData volEnv = fileData.getData().get(0);
- if (volEnv.getType().equals(FileData.Type.HEAT_ENV)) {
- module.setVolEnv(volEnv.getFile());
- } else {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage(Messages.ILLEGAL_MANIFEST.getErrorMessage())
- .withId(Messages.ILLEGAL_MANIFEST.getErrorMessage())
- .withCategory(ErrorCategory.APPLICATION).build());
- }
+ for (FileData fileData : data) {
+ if (fileData.getType().equals(FileData.Type.HEAT_ENV)) {
+ module.setEnv(fileData.getFile());
+ } else if (fileData.getType().equals(FileData.Type.HEAT_VOL))// must be volume
+ {
+ module.setVol(fileData.getFile());
+ if (!CollectionUtils.isEmpty(fileData.getData())) {
+ FileData volEnv = fileData.getData().get(0);
+ if (volEnv.getType().equals(FileData.Type.HEAT_ENV)) {
+ module.setVolEnv(volEnv.getFile());
+ } else {
+ throw new CoreException((new ErrorCode.ErrorCodeBuilder())
+ .withMessage(Messages.ILLEGAL_MANIFEST.getErrorMessage())
+ .withId(Messages.ILLEGAL_MANIFEST.getErrorMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
+ }
+ }
+ } else {
+ throw new CoreException((new ErrorCode.ErrorCodeBuilder())
+ .withMessage(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
+ .withId(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
+ .withCategory(ErrorCategory.APPLICATION).build());
+ }
}
- } else {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
- .withId(Messages.FILE_TYPE_NOT_LEGAL.getErrorMessage())
- .withCategory(ErrorCategory.APPLICATION).build());
- }
}
- }
- @Override
- public void updateCandidateUploadData(OrchestrationTemplateCandidateData uploadData,
- String itemId) {
- mdcDataDebugMessage.debugEntryMessage(null);
+ @Override
+ public void updateCandidateUploadData(OrchestrationTemplateCandidateData uploadData,
+ String itemId) {
+ mdcDataDebugMessage.debugEntryMessage(null);
- //vendorSoftwareProductDao.updateCandidateUploadData(uploadData);
- orchestrationTemplateCandidateDataDao.update(itemId, uploadData);
+ //vendorSoftwareProductDao.updateCandidateUploadData(uploadData);
+ orchestrationTemplateCandidateDataDao.update(itemId, uploadData);
- mdcDataDebugMessage.debugExitMessage(null);
- }
+ mdcDataDebugMessage.debugExitMessage(null);
+ }
- @Override
- public Optional<FilesDataStructure> getOrchestrationTemplateCandidateFileDataStructure(
- String vspId, Version version) {
+ @Override
+ public Optional<FilesDataStructure> getOrchestrationTemplateCandidateFileDataStructure(
+ String vspId, Version version) {
- mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
+ mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
- Optional<String> jsonFileDataStructure =
- orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
+ Optional<String> jsonFileDataStructure =
+ orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
- if (jsonFileDataStructure.isPresent()) {
- mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
- return Optional
- .of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));
- } else {
- mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
- return Optional.empty();
+ if (jsonFileDataStructure.isPresent()) {
+ mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+ return Optional
+ .of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));
+ } else {
+ mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+ return Optional.empty();
+ }
}
- }
- @Override
- public void updateOrchestrationTemplateCandidateFileDataStructure(String vspId, Version version,
- FilesDataStructure fileDataStructure) {
- OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()
- .updateStructure(vspId, version, fileDataStructure);
- }
+ @Override
+ public void updateOrchestrationTemplateCandidateFileDataStructure(String vspId, Version version,
+ FilesDataStructure fileDataStructure) {
+ OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface()
+ .updateStructure(vspId, version, fileDataStructure);
+ }
- @Override
- public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
- Version version) {
- mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
- mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
+ @Override
+ public OrchestrationTemplateCandidateData getOrchestrationTemplateCandidate(String vspId,
+ Version version) {
+ mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
+ mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
- return orchestrationTemplateCandidateDataDao.get(vspId, version);
- }
+ return orchestrationTemplateCandidateDataDao.get(vspId, version);
+ }
@Override
public String createManifest(VspDetails vspDetails, FilesDataStructure structure) {
- mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
+ mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
- Optional<ManifestContent> manifest = manifestCreator.createManifest(vspDetails, structure);
- if (!manifest.isPresent()) {
- throw new RuntimeException(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
+ Optional<ManifestContent> manifest = manifestCreator.createManifest(vspDetails, structure);
+ if (!manifest.isPresent()) {
+ throw new RuntimeException(Messages.CREATE_MANIFEST_FROM_ZIP.getErrorMessage());
+ }
+
+ mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
+ return JsonUtil.object2Json(manifest.get());
}
- mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
- return JsonUtil.object2Json(manifest.get());
- }
+ @Override
+ public Optional<ManifestContent> createManifest(VspDetails vspDetails,
+ FileContentHandler fileContentHandler,
+ AnalyzedZipHeatFiles analyzedZipHeatFiles) {
- @Override
- public Optional<ManifestContent> createManifest(VspDetails vspDetails,
- FileContentHandler fileContentHandler,
- AnalyzedZipHeatFiles analyzedZipHeatFiles) {
+ mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
- mdcDataDebugMessage.debugEntryMessage("VSP Id", vspDetails.getId());
+ mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
+ return manifestCreator.createManifest(vspDetails, fileContentHandler, analyzedZipHeatFiles);
+ }
- mdcDataDebugMessage.debugExitMessage("VSP Id", vspDetails.getId());
- return manifestCreator.createManifest(vspDetails, fileContentHandler, analyzedZipHeatFiles);
- }
+ @Override
+ public Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
+ OrchestrationTemplateCandidateData candidateDataEntity,
+ String manifest,
+ Map<String, List<ErrorMessage>> uploadErrors) {
+ byte[] file;
+ ByteArrayInputStream byteArrayInputStream = null;
+ try {
+ file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId);
+ byteArrayInputStream = new ByteArrayInputStream(
+ Objects.isNull(file) ? candidateDataEntity.getContentData().array()
+ : file);
+ } catch (IOException e) {
+ ErrorMessage errorMessage =
+ new ErrorMessage(ErrorLevel.ERROR,
+ Messages.CANDIDATE_PROCESS_FAILED.getErrorMessage());
+ logger.error(errorMessage.getMessage(), e);
+ ErrorsUtil
+ .addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE, errorMessage, uploadErrors);
+ }
+ return Optional.ofNullable(byteArrayInputStream);
+ }
- @Override
- public Optional<ByteArrayInputStream> fetchZipFileByteArrayInputStream(String vspId,
- OrchestrationTemplateCandidateData candidateDataEntity,
- String manifest,
- Map<String, List<ErrorMessage>> uploadErrors) {
- byte[] file;
- ByteArrayInputStream byteArrayInputStream = null;
- try {
- file = replaceManifestInZip(candidateDataEntity.getContentData(), manifest, vspId);
- byteArrayInputStream = new ByteArrayInputStream(
- Objects.isNull(file) ? candidateDataEntity.getContentData().array()
- : file);
- } catch (IOException e) {
- ErrorMessage errorMessage =
- new ErrorMessage(ErrorLevel.ERROR, Messages.CANDIDATE_PROCESS_FAILED.getErrorMessage());
- logger.error(errorMessage.getMessage(), e);
- ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE, errorMessage, uploadErrors);
- }
- return Optional.ofNullable(byteArrayInputStream);
- }
+ @Override
+ public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
+ throws IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ try (final ZipOutputStream zos = new ZipOutputStream(baos);
+ ZipInputStream zipStream = new ZipInputStream(
+ new ByteArrayInputStream(contentData.array()))) {
+ ZipEntry zipEntry;
+ boolean manifestWritten = false;
+ while ((zipEntry = zipStream.getNextEntry()) != null) {
+ if (!zipEntry.getName().equalsIgnoreCase(SdcCommon.MANIFEST_NAME)) {
+ ZipEntry loc_ze = new ZipEntry(zipEntry.getName());
+ zos.putNextEntry(loc_ze);
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = zipStream.read(buf)) > 0) {
+ zos.write(buf, 0, (len < buf.length) ? len : buf.length);
+ }
+ } else {
+ manifestWritten = true;
+ writeManifest(manifest, zos);
+ }
+ zos.closeEntry();
+ }
+ if (!manifestWritten) {
+ writeManifest(manifest, zos);
+ zos.closeEntry();
+ }
+ }
+ return baos.toByteArray();
+ }
- @Override
- public byte[] replaceManifestInZip(ByteBuffer contentData, String manifest, String vspId)
- throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- try (final ZipOutputStream zos = new ZipOutputStream(baos);
- ZipInputStream zipStream = new ZipInputStream(
- new ByteArrayInputStream(contentData.array()))) {
- ZipEntry zipEntry;
- boolean manifestWritten = false;
- while ((zipEntry = zipStream.getNextEntry()) != null) {
- if (!zipEntry.getName().equalsIgnoreCase(SdcCommon.MANIFEST_NAME)) {
- ZipEntry loc_ze = new ZipEntry(zipEntry.getName());
- zos.putNextEntry(loc_ze);
- byte[] buf = new byte[1024];
- int len;
- while ((len = zipStream.read(buf)) > 0) {
- zos.write(buf, 0, (len < buf.length) ? len : buf.length);
- }
- } else {
- manifestWritten = true;
- writeManifest(manifest, zos);
+ @Override
+ public Optional<List<ErrorMessage>> validateFileDataStructure(
+ FilesDataStructure filesDataStructure) {
+ return candidateServiceValidator.validateFileDataStructure(filesDataStructure);
+ }
+
+ private void writeManifest(String manifest, ZipOutputStream zos) throws IOException {
+ zos.putNextEntry(new ZipEntry(SdcCommon.MANIFEST_NAME));
+ try (InputStream manifestStream = new ByteArrayInputStream(
+ manifest.getBytes(StandardCharsets.UTF_8))) {
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = (manifestStream.read(buf))) > 0) {
+ zos.write(buf, 0, (len < buf.length) ? len : buf.length);
+ }
}
- zos.closeEntry();
- }
- if (!manifestWritten) {
- writeManifest(manifest, zos);
- zos.closeEntry();
- }
}
- return baos.toByteArray();
- }
- @Override
- public Optional<List<ErrorMessage>> validateFileDataStructure(
- FilesDataStructure filesDataStructure) {
- return candidateServiceValidator.validateFileDataStructure(filesDataStructure);
- }
-
- private void writeManifest(String manifest, ZipOutputStream zos) throws IOException {
- zos.putNextEntry(new ZipEntry(SdcCommon.MANIFEST_NAME));
- try (InputStream manifestStream = new ByteArrayInputStream(
- manifest.getBytes(StandardCharsets.UTF_8))) {
- byte[] buf = new byte[1024];
- int len;
- while ((len = (manifestStream.read(buf))) > 0) {
- zos.write(buf, 0, (len < buf.length) ? len : buf.length);
- }
- }
- }
-
- private void handleArtifactsFromTree(HeatStructureTree tree, FilesDataStructure structure) {
-
- if (Objects.isNull(tree) || Objects.isNull(tree.getArtifacts())) {
- return;
- }
-
- if (CollectionUtils.isNotEmpty(tree.getArtifacts())) {
- structure.getArtifacts().addAll(
- tree.getArtifacts()
- .stream()
- .map(Artifact::getFileName)
- .filter(fileName -> !structure.getArtifacts().contains(fileName))
- .collect(Collectors.toList()));
- }
- }
-
- private void handleOtherResources(HeatStructureTree tree, Set<String> usedEnvFiles,
- FilesDataStructure structure) {
- Set<HeatStructureTree> others = tree.getOther();
- if (Objects.isNull(others)) {
- return;
- }
-
- List<String> artifacts = new ArrayList<>();
- List<String> unassigned = new ArrayList<>();
- for (HeatStructureTree other : others) {
- if (HeatFileAnalyzer.isYamlOrEnvFile(other.getFileName())) {
- if (isEnvFileUsedByHeatFile(usedEnvFiles, other)) {
- continue;
+ private void handleArtifactsFromTree(HeatStructureTree tree, FilesDataStructure structure) {
+
+ if (Objects.isNull(tree) || Objects.isNull(tree.getArtifacts())) {
+ return;
+ }
+
+ if (CollectionUtils.isNotEmpty(tree.getArtifacts())) {
+ structure.getArtifacts().addAll(
+ tree.getArtifacts()
+ .stream()
+ .map(Artifact::getFileName)
+ .filter(fileName -> !structure.getArtifacts().contains(fileName))
+ .collect(Collectors.toList()));
}
- unassigned.add(other.getFileName());
- } else {
- artifacts.add(other.getFileName());
- }
- handleArtifactsFromTree(other, structure);
- }
- structure.getArtifacts().addAll(artifacts);
- structure.getUnassigned().addAll(unassigned);
- }
-
- private boolean isEnvFileUsedByHeatFile(Set<String> usedEnvFiles, HeatStructureTree other) {
- if (HeatFileAnalyzer.isEnvFile(other.getFileName())) {
- if (usedEnvFiles.contains(other.getFileName())) {
- return true;
- }
- }
- return false;
- }
-
- private void addHeatsToFileDataStructure(HeatStructureTree tree, Set<String> usedEnvFiles,
- FilesDataStructure structure,
- Map<String, List<ErrorMessage>> uploadErrors,
- AnalyzedZipHeatFiles analyzedZipHeatFiles)
- throws Exception {
- List<Module> modules = new ArrayList<>();
- Set<HeatStructureTree> heatsSet = tree.getHeat();
- if (Objects.isNull(heatsSet)) {
- return;
- }
- for (HeatStructureTree heat : heatsSet) {
- if (isFileBaseFile(heat.getFileName())) {
- handleSingleHeat(structure, modules, heat, uploadErrors);
- } else if (isFileModuleFile(heat.getFileName(), analyzedZipHeatFiles.getModuleFiles())) {
- handleSingleHeat(structure, modules, heat, uploadErrors);
- } else {
- structure.getUnassigned().add(heat.getFileName());
- addNestedToFileDataStructure(heat, structure);
- }
- if (!Objects.isNull(heat.getEnv())) {
- usedEnvFiles.add(heat.getEnv() == null ? null : heat.getEnv().getFileName());
- }
}
- structure.setModules(modules);
- }
+ private void handleOtherResources(HeatStructureTree tree, Set<String> usedEnvFiles,
+ FilesDataStructure structure) {
+ Set<HeatStructureTree> others = tree.getOther();
+ if (Objects.isNull(others)) {
+ return;
+ }
- private boolean isFileModuleFile(String fileName, Set<String> modulesFileNames) {
- return modulesFileNames.contains(fileName);
- }
+ List<String> artifacts = new ArrayList<>();
+ List<String> unassigned = new ArrayList<>();
+ for (HeatStructureTree other : others) {
+ if (HeatFileAnalyzer.isYamlOrEnvFile(other.getFileName())) {
+ if (isEnvFileUsedByHeatFile(usedEnvFiles, other)) {
+ continue;
+ }
+ unassigned.add(other.getFileName());
+ } else {
+ artifacts.add(other.getFileName());
+ }
+ handleArtifactsFromTree(other, structure);
+ }
+ structure.getArtifacts().addAll(artifacts);
+ structure.getUnassigned().addAll(unassigned);
+ }
- private boolean isFileBaseFile(String fileName) {
- return manifestCreator.isFileBaseFile(fileName);
- }
+ private boolean isEnvFileUsedByHeatFile(Set<String> usedEnvFiles, HeatStructureTree other) {
+ if (HeatFileAnalyzer.isEnvFile(other.getFileName())) {
+ if (usedEnvFiles.contains(other.getFileName())) {
+ return true;
+ }
+ }
+ return false;
+ }
- private void handleSingleHeat(FilesDataStructure structure, List<Module> modules,
- HeatStructureTree heat,
- Map<String, List<ErrorMessage>> uploadErrors) {
+ private void addHeatsToFileDataStructure(HeatStructureTree tree, Set<String> usedEnvFiles,
+ FilesDataStructure structure,
+ Map<String, List<ErrorMessage>> uploadErrors,
+ AnalyzedZipHeatFiles analyzedZipHeatFiles)
+ throws Exception {
+ List<Module> modules = new ArrayList<>();
+ Set<HeatStructureTree> heatsSet = tree.getHeat();
+ if (Objects.isNull(heatsSet)) {
+ return;
+ }
+ for (HeatStructureTree heat : heatsSet) {
+ if (isFileBaseFile(heat.getFileName())) {
+ handleSingleHeat(structure, modules, heat, uploadErrors);
+ } else if (isFileModuleFile(heat.getFileName(),
+ analyzedZipHeatFiles.getModuleFiles())) {
+ handleSingleHeat(structure, modules, heat, uploadErrors);
+ } else {
+ structure.getUnassigned().add(heat.getFileName());
+ addNestedToFileDataStructure(heat, structure);
+ }
+ if (!Objects.isNull(heat.getEnv())) {
+ usedEnvFiles.add(heat.getEnv() == null ? null : heat.getEnv().getFileName());
+ }
+ }
+ structure.setModules(modules);
+ }
- mdcDataDebugMessage.debugEntryMessage(null);
+ private boolean isFileModuleFile(String fileName, Set<String> modulesFileNames) {
+ return modulesFileNames.contains(fileName);
+ }
- Module module = new Module();
- module.setYaml(heat.getFileName());
- module.setIsBase(heat.getBase());
- addNestedToFileDataStructure(heat, structure);
- Set<HeatStructureTree> volumeSet = heat.getVolume();
- int inx = 0;
- if (Objects.nonNull(volumeSet)) {
- handleVolumes(module, volumeSet, structure, inx, uploadErrors);
+ private boolean isFileBaseFile(String fileName) {
+ return manifestCreator.isFileBaseFile(fileName);
}
- handleEnv(module, heat, false, structure);
- modules.add(module);
- mdcDataDebugMessage.debugExitMessage(null);
- }
+ private void handleSingleHeat(FilesDataStructure structure, List<Module> modules,
+ HeatStructureTree heat,
+ Map<String, List<ErrorMessage>> uploadErrors) {
- private void handleVolumes(Module module, Set<HeatStructureTree> volumeSet,
- FilesDataStructure structure, int inx,
- Map<String, List<ErrorMessage>> uploadErrors) {
+ mdcDataDebugMessage.debugEntryMessage(null);
- mdcDataDebugMessage.debugEntryMessage(null);
+ Module module = new Module();
+ module.setYaml(heat.getFileName());
+ module.setIsBase(heat.getBase());
+ addNestedToFileDataStructure(heat, structure);
+ Set<HeatStructureTree> volumeSet = heat.getVolume();
+ int inx = 0;
+ if (Objects.nonNull(volumeSet)) {
+ handleVolumes(module, volumeSet, structure, inx, uploadErrors);
+ }
+ handleEnv(module, heat, false, structure);
+ modules.add(module);
- for (HeatStructureTree volume : volumeSet) {
- if (inx++ > 0) {
- ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE,
- new ErrorMessage(ErrorLevel.WARNING,
- Messages.MORE_THEN_ONE_VOL_FOR_HEAT.getErrorMessage()), uploadErrors);
- break;
- }
- handleArtifactsFromTree(volume, structure);
- module.setVol(volume.getFileName());
- handleEnv(module, volume, true, structure);
+ mdcDataDebugMessage.debugExitMessage(null);
}
- mdcDataDebugMessage.debugExitMessage(null);
- }
+ private void handleVolumes(Module module, Set<HeatStructureTree> volumeSet,
+ FilesDataStructure structure, int inx,
+ Map<String, List<ErrorMessage>> uploadErrors) {
- private void handleEnv(Module module, HeatStructureTree tree, boolean isVolEnv,
- FilesDataStructure structure) {
+ mdcDataDebugMessage.debugEntryMessage(null);
- mdcDataDebugMessage.debugEntryMessage(null);
+ for (HeatStructureTree volume : volumeSet) {
+ if (inx++ > 0) {
+ ErrorsUtil.addStructureErrorToErrorMap(SdcCommon.UPLOAD_FILE,
+ new ErrorMessage(ErrorLevel.WARNING,
+ Messages.MORE_THEN_ONE_VOL_FOR_HEAT.getErrorMessage()), uploadErrors);
+ break;
+ }
+ handleArtifactsFromTree(volume, structure);
+ module.setVol(volume.getFileName());
+ handleEnv(module, volume, true, structure);
+ }
- if (Objects.nonNull(tree.getEnv())) {
- if (isVolEnv) {
- module.setVolEnv(tree.getEnv().getFileName());
- } else {
- module.setEnv(tree.getEnv().getFileName());
- }
- handleArtifactsFromTree(tree.getEnv(), structure);
+ mdcDataDebugMessage.debugExitMessage(null);
}
- mdcDataDebugMessage.debugExitMessage(null);
- }
+ private void handleEnv(Module module, HeatStructureTree tree, boolean isVolEnv,
+ FilesDataStructure structure) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null);
+
+ if (Objects.nonNull(tree.getEnv())) {
+ if (isVolEnv) {
+ module.setVolEnv(tree.getEnv().getFileName());
+ } else {
+ module.setEnv(tree.getEnv().getFileName());
+ }
+ handleArtifactsFromTree(tree.getEnv(), structure);
+ }
- private void addNestedToFileDataStructure(HeatStructureTree heat, FilesDataStructure structure) {
- Set<HeatStructureTree> nestedSet = heat.getNested();
- if (Objects.isNull(nestedSet)) {
- return;
+ mdcDataDebugMessage.debugExitMessage(null);
}
- for (HeatStructureTree nested : nestedSet) {
- if (structure.getNested().contains(nested.getFileName())) {
- continue;
- }
- structure.getNested().add(nested.getFileName());
- if (CollectionUtils.isNotEmpty(nested.getArtifacts())) {
- handleArtifactsFromTree(nested, structure);
- }
- addNestedToFileDataStructure(nested, structure);
+
+ private void addNestedToFileDataStructure(HeatStructureTree heat,
+ FilesDataStructure structure) {
+ Set<HeatStructureTree> nestedSet = heat.getNested();
+ if (Objects.isNull(nestedSet)) {
+ return;
+ }
+ for (HeatStructureTree nested : nestedSet) {
+ if (structure.getNested().contains(nested.getFileName())) {
+ continue;
+ }
+ structure.getNested().add(nested.getFileName());
+ if (CollectionUtils.isNotEmpty(nested.getArtifacts())) {
+ handleArtifactsFromTree(nested, structure);
+ }
+ addNestedToFileDataStructure(nested, structure);
+ }
}
- }
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java
index 5cfe33ba90..fe42f6ccd3 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/dao/ServiceModelDaoFactoryTest.java
@@ -23,6 +23,7 @@ package org.openecomp.sdc.vendorsoftwareproduct.dao;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.datatypes.UserInfo;
@@ -32,15 +33,14 @@ import com.amdocs.zusammen.datatypes.item.Item;
import com.amdocs.zusammen.datatypes.item.ItemVersion;
import com.amdocs.zusammen.datatypes.item.ItemVersionData;
import com.amdocs.zusammen.datatypes.itemversion.Tag;
-import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.core.zusammen.api.ZusammenAdaptor;
import org.openecomp.sdc.model.impl.zusammen.ServiceModelDaoZusammenImpl;
import org.openecomp.sdc.model.impl.zusammen.StructureElement;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -239,6 +239,11 @@ public class ServiceModelDaoFactoryTest {
}
@Override
+ public Collection<HealthInfo> checkHealth(SessionContext context) {
+ return null;
+ }
+
+ @Override
public Id createItem(SessionContext context, Info info) {
return null;
}
@@ -278,6 +283,11 @@ public class ServiceModelDaoFactoryTest {
}
@Override
+ public String getVersion(SessionContext sessionContext) {
+ return null;
+ }
+
+ @Override
public Collection<Item> listItems(SessionContext context) {
return null;
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationArtifact/impl/TxtInformationArtifactGeneratorImplTest.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationArtifact/impl/TxtInformationArtifactGeneratorImplTest.java
index 6652c271ac..17064b3230 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationArtifact/impl/TxtInformationArtifactGeneratorImplTest.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/informationArtifact/impl/TxtInformationArtifactGeneratorImplTest.java
@@ -60,12 +60,6 @@ import static org.mockito.Matchers.anyString;
import static org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl.TxtInformationArtifactConstants.HEADER;
import static org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.impl.TxtInformationArtifactConstants.VFC_COMPUTE_CPU_OVER_SUBSCRIPTION;
-
-/**
- * @author KATYR
- * @since December 07, 2016
- */
-
public class TxtInformationArtifactGeneratorImplTest {
private static final String NETWORK_DESC = "\"network desc\"";
@@ -246,6 +240,7 @@ public class TxtInformationArtifactGeneratorImplTest {
featureGroups.add("one too many feature group");
featureGroups.add("the very last feature group");
vspDetails.setFeatureGroups(featureGroups);
+ vspDetails.setOnboardingMethod("HEAT");
return vspDetails;
}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..a1ee8d3985
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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-vendor-software-product-lib</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <modules>
+ <module>openecomp-sdc-vendor-software-product-api</module>
+ <module>openecomp-sdc-vendor-software-product-core</module>
+ </modules>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
index 2b13ad4566..38bfffe7b6 100644
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
@@ -65,7 +65,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup
new file mode 100644
index 0000000000..3c9a34a189
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup
@@ -0,0 +1,75 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-versioning-api</name>
+ <artifactId>openecomp-sdc-versioning-api</artifactId>
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-facade-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-nosqldb-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>${hibernate.validator.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.web</groupId>
+ <artifactId>javax.el</artifactId>
+ <version>2.2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
index 7a9477fa53..98057d6d28 100644
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
@@ -53,7 +53,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
- <version>4.11</version>
+ <version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup
new file mode 100644
index 0000000000..ce41a59e20
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup
@@ -0,0 +1,54 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-versioning-core</name>
+ <artifactId>openecomp-sdc-versioning-core</artifactId>
+
+
+ <parent>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-versioning-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ <version>1.10.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <version>6.8.5</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>snakeyaml</artifactId>
+ <groupId>org.yaml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ <version>4.11</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..7804ebfabc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup
@@ -0,0 +1,24 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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>
+
+ <name>openecomp-sdc-versioning-lib</name>
+ <artifactId>openecomp-sdc-versioning-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-sdc-versioning-api</module>
+ <module>openecomp-sdc-versioning-core</module>
+ </modules>
+
+ <dependencies>
+
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/pom.xml b/openecomp-be/lib/openecomp-tosca-lib/pom.xml
index 256c24f42c..4b42562708 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-tosca-lib/pom.xml
@@ -16,6 +16,11 @@
<dependencies>
<dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>${openecomp.sdc.common.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
diff --git a/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..be3c3509ad
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup
@@ -0,0 +1,87 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ 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.core</groupId>
+ <name>openecomp-tosca-lib</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-utilities-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-datatypes-lib</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc</groupId>
+ <artifactId>openecomp-sdc-logging-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-configuration-management-core</artifactId>
+ <version>1707.0.0-SNAPSHOT</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-configuration-management-api</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.common</groupId>
+ <artifactId>openecomp-tosca-datatype</artifactId>
+ <version>1707.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <artifactId>openecomp-tosca-lib</artifactId>
+
+ <parent>
+ <artifactId>openecomp-sdc-lib</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+</project> \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
index 22658c8b1c..b5b3e172fe 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
@@ -39,6 +39,8 @@ public class ToscaNodeType {
config.getAsString(ConfigConstants.NAMESPACE, ConfigConstants.PREFIX_NODE_TYPE_ABSTARCT);
public static String RULE_NODE_TYPE_PREFIX =
config.getAsString(ConfigConstants.NAMESPACE, ConfigConstants.PREFIX_NODE_TYPE_RULE);
+ public static String NODE_TYPE_PREFIX =
+ config.getAsString(ConfigConstants.NAMESPACE, ConfigConstants.PREFIX);
//TOSCA native types
public static String NATIVE_COMPUTE = "tosca.nodes.Compute";
@@ -80,6 +82,11 @@ public class ToscaNodeType {
public static String VFC_ABSTRACT_SUBSTITUTE = ABSTRACT_NODE_TYPE_PREFIX + "VFC";
public static String CONTRAIL_ABSTRACT_SUBSTITUTE =
ABSTRACT_NODE_TYPE_PREFIX + "contrail.AbstractSubstitute";
-
+ public static String COMPLEX_VFC_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX + "ComplexVFC";
+ //Questionnaire to Tosca Types
+ public static String VNF_CONFIG_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX + "VnfConfiguration";
+ public static String MULTIFLAVOR_VFC_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX + "MultiFlavorVFC";
+ public static String MULTIDEPLOYMENTFLAVOR_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX
+ + "MultiDeploymentFlavor";
}
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 573ce395d5..0fcaafa1c2 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
@@ -23,6 +23,7 @@ package org.openecomp.sdc.tosca.datatypes;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.datatypes.model.AsdcModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
import java.util.Collections;
import java.util.Map;
@@ -35,6 +36,9 @@ public class ToscaServiceModel implements AsdcModel {
private Map<String, ServiceTemplate> serviceTemplates;
private String entryDefinitionServiceTemplate;
+ public ToscaServiceModel() {
+ }
+
/**
* Instantiates a new Tosca service model.
*
@@ -60,6 +64,9 @@ public class ToscaServiceModel implements AsdcModel {
return artifactFiles;
}
+ public void setArtifactFiles(FileContentHandler artifactFiles) {
+ this.artifactFiles = artifactFiles;
+ }
/**
* Gets service templates.
@@ -96,4 +103,14 @@ public class ToscaServiceModel implements AsdcModel {
public void setEntryDefinitionServiceTemplate(String entryDefinitionServiceTemplate) {
this.entryDefinitionServiceTemplate = entryDefinitionServiceTemplate;
}
+
+ /**
+ * Gets cloned service model.
+ *
+ * @param toscaServiceModel the tosca service model
+ * @return the cloned service model
+ */
+ public static ToscaServiceModel getClonedServiceModel(ToscaServiceModel toscaServiceModel) {
+ return ToscaServiceModel.class.cast(DataModelUtil.getClonedObject(toscaServiceModel));
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
index df6eb195d8..0e4bc22c37 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ConfigConstants.java
@@ -25,24 +25,19 @@ public class ConfigConstants {
public static final String NAMESPACE = "ToscaModel";
//keys
- public static final String PREFIX_CAPABILITY_TYPE =
- "tosca.entity.namespace.prefix.capabilityType";
- public static final String PREFIX_DATA_TYPE = "tosca.entity.namespace.prefix.dataType";
- public static final String PREFIX_GROUP_TYPE = "tosca.entity.namespace.prefix.groupType";
- public static final String PREFIX_POLICY_TYPE = "tosca.entity.namespace.prefix.policyType";
- public static final String PREFIX_ARTIFACT_TYPE = "tosca.entity.namespace.prefix.artifactType";
- public static final String PREFIX_RELATIONSHIP_TYPE =
- "tosca.entity.namespace.prefix.relationshipType";
-
- public static final String PREFIX_NODE_TYPE_VFC = "tosca.entity.namespace.prefix.nodeType.vfc";
- public static final String PREFIX_NODE_TYPE_NETWORK =
- "tosca.entity.namespace.prefix.nodeType.network";
- public static final String PREFIX_NODE_TYPE_CP =
- "tosca.entity.namespace.prefix.nodeType.connectionPoint";
- public static final String PREFIX_NODE_TYPE_ABSTARCT =
- "tosca.entity.namespace.prefix.nodeType.abstract";
- public static final String PREFIX_NODE_TYPE_RULE = "tosca.entity.namespace.prefix.nodeType.rule";
+ public static final String PREFIX = "tosca.entity.namespace.prefix";
+ public static final String PREFIX_CAPABILITY_TYPE = PREFIX + ".capabilityType";
+ public static final String PREFIX_DATA_TYPE = PREFIX + ".dataType";
+ public static final String PREFIX_GROUP_TYPE = PREFIX + ".groupType";
+ public static final String PREFIX_POLICY_TYPE = PREFIX + ".policyType";
+ public static final String PREFIX_ARTIFACT_TYPE = PREFIX + ".artifactType";
+ public static final String PREFIX_RELATIONSHIP_TYPE = PREFIX + ".relationshipType";
+ public static final String PREFIX_NODE_TYPE_VFC = PREFIX + ".nodeType.vfc";
+ public static final String PREFIX_NODE_TYPE_NETWORK = PREFIX + ".nodeType.network";
+ public static final String PREFIX_NODE_TYPE_CP = PREFIX + ".nodeType.connectionPoint";
+ public static final String PREFIX_NODE_TYPE_ABSTARCT = PREFIX + ".nodeType.abstract";
+ public static final String PREFIX_NODE_TYPE_RULE = PREFIX + ".nodeType.rule";
private ConfigConstants() {
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
index 49ea45e8c8..d908b2cf74 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java
@@ -23,7 +23,6 @@ package org.openecomp.sdc.tosca.services;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
@@ -32,7 +31,9 @@ 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 org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
+import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityType;
@@ -56,8 +57,13 @@ import org.openecomp.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt
import org.openecomp.sdc.tosca.errors.InvalidAddActionNullEntityErrorBuilder;
import org.openecomp.sdc.tosca.errors.InvalidRequirementAssignmentErrorBuilder;
import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.NotSerializableException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -1365,6 +1371,26 @@ public class DataModelUtil {
}
/**
+ * Gets substitution mappings in a service template.
+ *
+ * @param serviceTemplate the service template
+ * @return the substitution mappings
+ */
+ public static SubstitutionMapping getSubstitutionMappings(ServiceTemplate serviceTemplate) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (serviceTemplate == null
+ || serviceTemplate.getTopology_template() == null
+ || serviceTemplate.getTopology_template().getSubstitution_mappings() == null) {
+ return null;
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return serviceTemplate.getTopology_template().getSubstitution_mappings();
+ }
+
+
+ /**
* Compare two requirement assignment objects for equality.
*
* @param first the first requirement assignement object
@@ -1380,4 +1406,173 @@ public class DataModelUtil {
}
return false;
}
+
+ /**
+ * Gets a deep copy clone of the input object.
+ *
+ * @param <T> the type parameter
+ * @param objectValue the object value
+ * @param clazz the clazz
+ * @return the cloned object
+ */
+ public static <T> Object getClonedObject(Object objectValue, Class<T> clazz) {
+ YamlUtil yamlUtil = new ToscaExtensionYamlUtil();
+ Object clonedObjectValue;
+ String objectToYaml = yamlUtil.objectToYaml(objectValue);
+ clonedObjectValue = yamlUtil.yamlToObject(objectToYaml, clazz);
+ return clonedObjectValue;
+ }
+
+ /**
+ * Gets a deep copy clone of the input object.
+ *
+ * @param obj the object to be cloned
+ * @return the cloned object
+ */
+ public static Object getClonedObject(Object obj) {
+ Object clonedObjectValue;
+ try {
+ //Serialize object
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
+ objectOutputStream.writeObject(obj);
+ //Deserialize object
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream
+ .toByteArray());
+ ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
+ clonedObjectValue = objectInputStream.readObject();
+ } catch (NotSerializableException ex) {
+ return getClonedObject(obj, obj.getClass());
+ } catch (IOException | ClassNotFoundException ex) {
+ return null;
+ }
+ return clonedObjectValue;
+ }
+
+ /**
+ * Add substitution filtering property.
+ *
+ * @param templateName the substitution service template name
+ * @param nodeTemplate the node template
+ * @param count the count
+ */
+ public static void addSubstitutionFilteringProperty(String templateName,
+ NodeTemplate nodeTemplate, int count) {
+ Map<String, Object> serviceTemplateFilterPropertyValue = new HashMap<>();
+ Map<String, Object> properties = nodeTemplate.getProperties();
+ serviceTemplateFilterPropertyValue.put(ToscaConstants
+ .SUBSTITUTE_SERVICE_TEMPLATE_PROPERTY_NAME, templateName);
+ serviceTemplateFilterPropertyValue.put(ToscaConstants.COUNT_PROPERTY_NAME, count);
+ properties.put(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME,
+ serviceTemplateFilterPropertyValue);
+ nodeTemplate.setProperties(properties);
+ }
+
+ /**
+ * Adding binding requirement from port node template to compute node template.
+ *
+ * @param computeNodeTemplateId compute node template id
+ * @param portNodeTemplate port node template
+ */
+ public static void addBindingReqFromPortToCompute(String computeNodeTemplateId,
+ NodeTemplate portNodeTemplate) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ RequirementAssignment requirementAssignment = new RequirementAssignment();
+ requirementAssignment.setCapability(ToscaCapabilityType.NATIVE_NETWORK_BINDABLE);
+ requirementAssignment.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_BINDS_TO);
+ requirementAssignment.setNode(computeNodeTemplateId);
+ addRequirementAssignment(portNodeTemplate, ToscaConstants.BINDING_REQUIREMENT_ID,
+ requirementAssignment);
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
+
+ public static SubstitutionMapping createSubstitutionTemplateSubMapping(
+ String nodeTypeKey,
+ NodeType substitutionNodeType,
+ Map<String, Map<String, List<String>>> mapping) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+ SubstitutionMapping substitutionMapping = new SubstitutionMapping();
+ substitutionMapping.setNode_type(nodeTypeKey);
+ substitutionMapping.setCapabilities(
+ manageCapabilityMapping(substitutionNodeType.getCapabilities(), mapping.get("capability")));
+ substitutionMapping.setRequirements(
+ manageRequirementMapping(substitutionNodeType.getRequirements(),
+ mapping.get("requirement")));
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return substitutionMapping;
+ }
+
+ private static Map<String, List<String>> manageRequirementMapping(
+ List<Map<String, RequirementDefinition>> requirementList,
+ Map<String, List<String>> requirementSubstitutionMapping) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (requirementList == null) {
+ return null;
+ }
+ Map<String, List<String>> requirementMapping = new HashMap<>();
+ String requirementKey;
+ List<String> requirementMap;
+ for (Map<String, RequirementDefinition> requirementDefMap : requirementList) {
+ for (Map.Entry<String, RequirementDefinition> entry : requirementDefMap.entrySet()) {
+ requirementKey = entry.getKey();
+ requirementMap = requirementSubstitutionMapping.get(requirementKey);
+ requirementMapping.put(requirementKey, requirementMap);
+ }
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return requirementMapping;
+ }
+
+ private static Map<String, List<String>> manageCapabilityMapping(
+ Map<String, CapabilityDefinition> capabilities,
+ Map<String, List<String>> capabilitySubstitutionMapping) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (capabilities == null) {
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return null;
+ }
+
+ Map<String, List<String>> capabilityMapping = new HashMap<>();
+ String capabilityKey;
+ List<String> capabilityMap;
+ for (Map.Entry<String, CapabilityDefinition> entry : capabilities.entrySet()) {
+ capabilityKey = entry.getKey();
+ capabilityMap = capabilitySubstitutionMapping.get(capabilityKey);
+ capabilityMapping.put(capabilityKey, capabilityMap);
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return capabilityMapping;
+ }
+
+ public static void addSubstitutionNodeTypeRequirements(NodeType substitutionNodeType,
+ List<Map<String, RequirementDefinition>>
+ requirementsList,
+ String templateName) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (requirementsList == null || requirementsList.size() == 0) {
+ return;
+ }
+
+ if (substitutionNodeType.getRequirements() == null) {
+ substitutionNodeType.setRequirements(new ArrayList<>());
+ }
+
+ for (Map<String, RequirementDefinition> requirementDef : requirementsList) {
+ for (Map.Entry<String, RequirementDefinition> entry : requirementDef.entrySet()) {
+ Map<String, RequirementDefinition> requirementMap = new HashMap<>();
+ requirementMap.put(entry.getKey() + "_" + templateName, entry.getValue().clone());
+ substitutionNodeType.getRequirements().add(requirementMap);
+ }
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
index ac7cab6c51..c4c154efb4 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaAnalyzerService.java
@@ -22,10 +22,12 @@ package org.openecomp.sdc.tosca.services;
import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
import org.openecomp.sdc.tosca.datatypes.model.NodeType;
import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
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 java.util.Collection;
@@ -80,4 +82,12 @@ public interface ToscaAnalyzerService {
public Map<String, PropertyDefinition> manageSubstitutionNodeTypeProperties(
ServiceTemplate substitutionServiceTemplate);
+
+ public Map<String, CapabilityDefinition> calculateExposedCapabilities(
+ Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
+ Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap);
+
+ public List<Map<String, RequirementDefinition>> calculateExposedRequirements(
+ List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
+ Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment);
}
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 eaf3fb492f..dc2ed6c76b 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
@@ -25,6 +25,7 @@ import org.apache.commons.collections4.MapUtils;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
@@ -34,6 +35,7 @@ import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityType;
import org.openecomp.sdc.tosca.datatypes.model.Import;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
@@ -42,6 +44,7 @@ import org.openecomp.sdc.tosca.datatypes.model.ParameterDefinition;
import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
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.errors.ToscaInvalidEntryNotFoundErrorBuilder;
import org.openecomp.sdc.tosca.errors.ToscaInvalidSubstituteNodeTemplatePropertiesErrorBuilder;
@@ -51,7 +54,7 @@ import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.openecomp.sdc.tosca.services.ToscaUtil;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import java.util.ArrayList;
import java.util.Collection;
@@ -64,9 +67,133 @@ import java.util.Optional;
import java.util.Set;
public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
+
+ protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+
+ public List<Map<String, RequirementDefinition>> calculateExposedRequirements(
+ List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
+ Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment) {
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ if (nodeTypeRequirementsDefinitionList == null) {
+ return null;
+ }
+ for (Map.Entry<String, RequirementAssignment> entry : nodeTemplateRequirementsAssignment
+ .entrySet()) {
+ if (entry.getValue().getNode() != null) {
+ Optional<RequirementDefinition> requirementDefinition =
+ DataModelUtil.getRequirementDefinition(nodeTypeRequirementsDefinitionList, entry
+ .getKey());
+ RequirementDefinition cloneRequirementDefinition;
+ if (requirementDefinition.isPresent()) {
+ cloneRequirementDefinition = requirementDefinition.get().clone();
+ if (!evaluateRequirementFulfillment(cloneRequirementDefinition)) {
+ CommonMethods.mergeEntryInList(entry.getKey(), cloneRequirementDefinition,
+ nodeTypeRequirementsDefinitionList);
+ } else {
+ DataModelUtil.removeRequirementsDefinition(nodeTypeRequirementsDefinitionList, entry
+ .getKey());
+ }
+ }
+ } else {
+ for (Map<String, RequirementDefinition> nodeTypeRequirementsMap :
+ nodeTypeRequirementsDefinitionList) {
+ Object max = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
+ && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
+ ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[1] : 1;
+ Object min = nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences() != null
+ && nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences().length > 0
+ ? nodeTypeRequirementsMap.get(entry.getKey()).getOccurrences()[0] : 1;
+ nodeTypeRequirementsMap.get(entry.getKey()).setOccurrences(new Object[]{min, max});
+ }
+ }
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return nodeTypeRequirementsDefinitionList;
+ }
+
+ private static boolean evaluateRequirementFulfillment(RequirementDefinition
+ requirementDefinition) {
+ Object[] occurrences = requirementDefinition.getOccurrences();
+ if (occurrences == null) {
+ requirementDefinition.setOccurrences(new Object[]{1, 1});
+ return false;
+ }
+ if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
+ return false;
+ }
+
+ if (occurrences[1].equals(1)) {
+ return true;
+ }
+ occurrences[1] = (Integer) occurrences[1] - 1;
+ return false;
+ }
+
+ public Map<String, CapabilityDefinition> calculateExposedCapabilities(
+ Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
+ Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap) {
+
+
+ mdcDataDebugMessage.debugEntryMessage(null, null);
+
+ String capabilityKey;
+ String capability;
+ String node;
+ for (Map.Entry<String, Map<String, RequirementAssignment>> entry :
+ fullFilledRequirementsDefinitionMap.entrySet()) {
+ for (Map.Entry<String, RequirementAssignment> fullFilledEntry : entry.getValue().entrySet()) {
+
+ capability = fullFilledEntry.getValue().getCapability();
+ fullFilledEntry.getValue().getOccurrences();
+ node = fullFilledEntry.getValue().getNode();
+ capabilityKey = capability + "_" + node;
+ CapabilityDefinition capabilityDefinition = nodeTypeCapabilitiesDefinition.get(
+ capabilityKey);
+ if (capabilityDefinition != null) {
+ CapabilityDefinition clonedCapabilityDefinition = capabilityDefinition.clone();
+ nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityDefinition.clone());
+ if (evaluateCapabilityFulfillment(clonedCapabilityDefinition)) {
+ nodeTypeCapabilitiesDefinition.remove(capabilityKey);
+ } else {
+ nodeTypeCapabilitiesDefinition.put(capabilityKey, clonedCapabilityDefinition);
+ }
+ }
+ }
+ }
+
+ Map<String, CapabilityDefinition> exposedCapabilitiesDefinition = new HashMap<>();
+ for (Map.Entry<String, CapabilityDefinition> entry : nodeTypeCapabilitiesDefinition
+ .entrySet()) {
+ exposedCapabilitiesDefinition.put(entry.getKey(), entry.getValue());
+ }
+
+ mdcDataDebugMessage.debugExitMessage(null, null);
+ return exposedCapabilitiesDefinition;
+ }
+
+ private static boolean evaluateCapabilityFulfillment(CapabilityDefinition capabilityDefinition) {
+
+ Object[] occurrences = capabilityDefinition.getOccurrences();
+ if (occurrences == null) {
+ capabilityDefinition.setOccurrences(new Object[]{1, ToscaConstants.UNBOUNDED});
+ return false;
+ }
+ if (occurrences[1].equals(ToscaConstants.UNBOUNDED)) {
+ return false;
+ }
+
+ if (occurrences[1].equals(1)) {
+ return true;
+ }
+ occurrences[1] = (Integer) occurrences[1] - 1;
+ return false;
+ }
+
/*
- node template with type equal to node type or derived from node type
- */
+ node template with type equal to node type or derived from node type
+ */
@Override
public Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate,
String nodeType,
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/resources/config.properties b/openecomp-be/lib/openecomp-tosca-lib/src/main/resources/config.properties
index cf7596c176..d4149dbac6 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/resources/config.properties
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/resources/config.properties
@@ -4,7 +4,7 @@ tosca.entity.namespace.prefix.dataType=${tosca.entity.namespace.prefix}datatypes
tosca.entity.namespace.prefix.groupType=${tosca.entity.namespace.prefix}groups.
tosca.entity.namespace.prefix.policyType=${tosca.entity.namespace.prefix}policies.
tosca.entity.namespace.prefix.relationshipType=${tosca.entity.namespace.prefix}relationships.
-tosca.entity.namespace.prefix.artifactType=${tosca.entity.namespace.prefix}artifacts.
+tosca.entity.namespace.prefix.monitoringUploadType=${tosca.entity.namespace.prefix}artifacts.
tosca.entity.namespace.prefix.nodeType.vfc=${tosca.entity.namespace.prefix}resource.vfc.nodes.
tosca.entity.namespace.prefix.nodeType.network=${tosca.entity.namespace.prefix}resource.vl.nodes.
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/TestUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/TestUtil.java
index 773b902182..9a90d4539e 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/TestUtil.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/TestUtil.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.tosca;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import java.io.File;
import java.io.FileInputStream;
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
index c7b0659c21..c7f4e3f6d1 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
@@ -22,7 +22,6 @@ package org.openecomp.sdc.tosca.datatypes;
import org.junit.Assert;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.sdc.tosca.datatypes.model.ArtifactType;
import org.openecomp.sdc.tosca.datatypes.model.AttributeDefinition;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityAssignment;
@@ -44,7 +43,8 @@ import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
import org.openecomp.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt;
import org.openecomp.sdc.tosca.services.DataModelUtil;
import org.openecomp.sdc.tosca.services.ToscaConstants;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.io.InputStream;
import java.util.ArrayList;
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinitionTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinitionTest.java
index 4cd76ce6ec..32e15172c1 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinitionTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/CapabilityDefinitionTest.java
@@ -22,8 +22,8 @@ package org.openecomp.sdc.tosca.datatypes.model;
import org.junit.Assert;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinitionTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinitionTest.java
index 38d8aba3ec..3620cf071a 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinitionTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/RequirementDefinitionTest.java
@@ -22,7 +22,7 @@ package org.openecomp.sdc.tosca.datatypes.model;
import org.junit.Assert;
import org.junit.Test;
-import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.services.YamlUtil;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
index 2afe6033b5..7ae91abfa5 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
@@ -48,7 +48,7 @@ import org.openecomp.sdc.tosca.datatypes.model.SubstitutionMapping;
import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
import java.io.IOException;
import java.io.InputStream;
diff --git a/openecomp-be/lib/pom.xml b/openecomp-be/lib/pom.xml
index 44594f7488..5095578db4 100644
--- a/openecomp-be/lib/pom.xml
+++ b/openecomp-be/lib/pom.xml
@@ -17,6 +17,7 @@
<module>openecomp-core-lib</module>
<module>openecomp-common-lib</module>
<module>openecomp-sdc-versioning-lib</module>
+ <module>openecomp-sdc-tosca-generator-lib</module>
<module>openecomp-sdc-vendor-license-lib</module>
<module>openecomp-sdc-vendor-software-product-lib</module>
<module>openecomp-sdc-translator-lib</module>
diff --git a/openecomp-be/lib/pom.xml.versionsBackup b/openecomp-be/lib/pom.xml.versionsBackup
new file mode 100644
index 0000000000..18594461f4
--- /dev/null
+++ b/openecomp-be/lib/pom.xml.versionsBackup
@@ -0,0 +1,33 @@
+<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>
+
+ <name>openecomp-sdc-lib</name>
+ <artifactId>openecomp-sdc-lib</artifactId>
+
+ <packaging>pom</packaging>
+ <parent>
+ <artifactId>openecomp-sdc</artifactId>
+ <groupId>org.openecomp.sdc</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <modules>
+ <module>openecomp-core-lib</module>
+ <module>openecomp-common-lib</module>
+ <module>openecomp-sdc-versioning-lib</module>
+ <module>openecomp-sdc-vendor-license-lib</module>
+ <module>openecomp-sdc-vendor-software-product-lib</module>
+ <module>openecomp-sdc-translator-lib</module>
+ <module>openecomp-sdc-model-lib</module>
+ <module>openecomp-sdc-validation-lib</module>
+ <module>openecomp-sdc-datatypes-lib</module>
+ <module>openecomp-heat-lib</module>
+ <module>openecomp-tosca-lib</module>
+ <module>openecomp-sdc-action-lib</module>
+ <module>openecomp-sdc-enrichment-lib</module>
+ <module>openecomp-logging-lib</module>
+ <module>openecomp-healing-lib</module>
+ <module>openecomp-migration-lib</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/openecomp-be/tools/build/scripts/cassandra-commands.json b/openecomp-be/tools/build/scripts/cassandra-commands.json
index 3a606241bd..2935acad4a 100644
--- a/openecomp-be/tools/build/scripts/cassandra-commands.json
+++ b/openecomp-be/tools/build/scripts/cassandra-commands.json
@@ -12,11 +12,12 @@
"feature_group": "CREATE TABLE IF NOT EXISTS feature_group (vlm_id text, version frozen<version>, fg_id text, name text, description text, part_num text, ep_ids set<text>, lkg_ids set<text>, ref_la_ids set<text>, PRIMARY KEY ((vlm_id, version), fg_id))",
"license_key_group": "CREATE TABLE IF NOT EXISTS license_key_group (vlm_id text, version frozen<version>, lkg_id text,name text,description text, type text, operational_scope frozen<multi_choice_or_other>, ref_fg_ids set<text>, version_uuid text, PRIMARY KEY ((vlm_id, version), lkg_id))",
"entitlement_pool": "CREATE TABLE IF NOT EXISTS entitlement_pool (vlm_id text, version frozen<version>, ep_id text,name text,description text,threshold float,threshold_unit text,entitlement_metric frozen<choice_or_other>,increments text,aggregation_func frozen<choice_or_other>, operational_scope frozen<multi_choice_or_other>, time frozen<choice_or_other>,manufacturer_ref_num text,ref_fg_ids set<text>, version_uuid text, PRIMARY KEY ((vlm_id, version), ep_id))",
- "vsp_information": "CREATE TABLE IF NOT EXISTS vsp_information (VSP_ID text, version frozen<version>, NAME text,DESCRIPTION text,CATEGORY text,SUB_CATEGORY text,ICON text,PACKAGE_NAME text,PACKAGE_VERSION text,vendor_name text, vendor_id text,LICENSE_AGREEMENT text,FEATURE_GROUPS list<text>,VALIDATION_DATA text,CONTENT_DATA blob, questionnaire_data text, vlm_version frozen<version>, is_old_version text, PRIMARY KEY ((VSP_ID, version)))",
+ "vsp_information": "CREATE TABLE IF NOT EXISTS vsp_information (VSP_ID text, version frozen<version>, NAME text,DESCRIPTION text,CATEGORY text,SUB_CATEGORY text,ICON text,PACKAGE_NAME text,PACKAGE_VERSION text,vendor_name text, vendor_id text,LICENSE_AGREEMENT text,FEATURE_GROUPS list<text>,VALIDATION_DATA text,CONTENT_DATA blob, questionnaire_data text, vlm_version frozen<version>, is_old_version text, onboarding_method text, PRIMARY KEY ((VSP_ID, version)))",
"package_details": "CREATE TABLE IF NOT EXISTS package_details (VSP_ID text, version frozen<version>,DISPLAY_NAME text,vsp_name text,vsp_description text,VENDOR_NAME text,CATEGORY text,SUB_CATEGORY text,VENDOR_RELEASE text,PACKAGE_CHECKSUM text,PACKAGE_TYPE text,TRANSLATE_CONTENT blob,PRIMARY KEY ((VSP_ID, version)))",
"vsp_network": "CREATE TABLE IF NOT EXISTS vsp_network (vsp_id text, version frozen<version>, network_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), network_id))",
"vsp_component": "CREATE TABLE IF NOT EXISTS vsp_component (vsp_id text, version frozen<version>, component_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id))",
"vsp_component_nic": "CREATE TABLE IF NOT EXISTS vsp_component_nic (vsp_id text, version frozen<version>, component_id text, nic_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id, nic_id))",
+ "vsp_component_image": "CREATE TABLE IF NOT EXISTS vsp_component_image (vsp_id text, version frozen<version>, component_id text, image_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id, image_id))",
"vsp_process" : "CREATE TABLE IF NOT EXISTS vsp_process (vsp_id text, version frozen<version>, component_id text, process_id text, name text, description text, type text, artifact_name text, artifact blob, PRIMARY KEY ((vsp_id, version), component_id, process_id))",
"vsp_service_artifact" : "CREATE TABLE IF NOT EXISTS vsp_service_artifact (vsp_id text, version frozen<version>, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))",
"vsp_service_template" : "CREATE TABLE IF NOT EXISTS vsp_service_template (vsp_id text, version frozen<version>, base_name text static, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))",
@@ -34,6 +35,8 @@
"name_index": "CREATE INDEX IF NOT EXISTS action_name ON dox.Action (name)",
"action_artifact":"CREATE TABLE IF NOT EXISTS action_artifact(artifactuuid text, effective_version int, artifact blob, PRIMARY KEY(artifactuuid, effective_version)) WITH CLUSTERING ORDER BY (effective_version DESC)",
"vsp_orchestration_template_candidate" : "CREATE TABLE IF NOT EXISTS vsp_orchestration_template_candidate (vsp_id text, version frozen<version>, files_data_structure text, content_data blob, PRIMARY KEY ((vsp_id, version)))",
+ "vsp_deployment_flavor" : "CREATE TABLE IF NOT EXISTS vsp_deployment_flavor (vsp_id text, version frozen<version>, deployment_flavor_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), deployment_flavor_id))",
+ "vsp_component_compute": "CREATE TABLE IF NOT EXISTS vsp_component_compute (vsp_id text, version frozen<version>, component_id text, compute_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id, compute_id))",
"vsp_component_dependency_model" : "CREATE TABLE IF NOT EXISTS vsp_component_dependency_model (vsp_id text, version frozen<version>, dependency_id text, sourcecomponent_id text, targetcomponent_id text, relation text, PRIMARY KEY ((vsp_id, version), dependency_id))",
"activity_log" : "CREATE TABLE IF NOT EXISTS activity_log (item_id text, version_id text, activity_id text, type text, user text, timestamp timestamp, success boolean, message text, comment text, PRIMARY KEY (item_id, version_id, activity_id))",
"migration": "CREATE TABLE IF NOT EXISTS migration (id text, ismigrated boolean, primary key(id))"
@@ -50,6 +53,7 @@
"vsp_information": "DROP TABLE IF EXISTS vsp_information",
"package_details": "DROP TABLE IF EXISTS package_details",
"vsp_network": "DROP TABLE IF EXISTS vsp_network",
+ "vsp_component_image": "DROP TABLE IF EXISTS vsp_component_image",
"vsp_component": "DROP TABLE IF EXISTS vsp_component",
"vsp_component_nic": "DROP TABLE IF EXISTS vsp_component_nic",
"vsp_process":"DROP TABLE IF EXISTS vsp_process",
@@ -71,6 +75,7 @@
"vsp_component_artifact": "DROP TABLE IF EXISTS dox.vsp_component_artifact",
"action_artifact":"DROP TABLE IF EXISTS action_artifact",
"vsp_orchestration_template_candidate":"DROP TABLE IF EXISTS vsp_orchestration_template_candidate",
+ "vsp_deployment_flavor":"DROP TABLE IF EXISTS vsp_deployment_flavor",
"vsp_component_dependency_model":"DROP TABLE IF EXISTS vsp_component_dependency_model",
"activity_log": "DROP TABLE IF EXISTS activity_log",
"migration": "DROP TABLE IF EXISTS migration"
@@ -78,6 +83,7 @@
"alter": {
"vsp_information": "ALTER TABLE vsp_information ADD questionnaire_data text",
"vsp_information_1": "ALTER TABLE vsp_information ADD vlm_version frozen<version>",
+ "vsp_information_2": "ALTER TABLE vsp_information ADD onboarding_method text",
"vsp_process": "ALTER TABLE vsp_process ADD type text",
"entitlement_pool": "alter table entitlement_pool ADD version_uuid text",
"license_key_group": "alter table license_key_group ADD version_uuid text",
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl
index e70deffc89..e2953b83d0 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl
@@ -19,7 +19,13 @@
"vfcCode": {
"type": "string"
},
- "description": {
+"nfcCode": {
+"type": "string"
+},
+"nfcFunction": {
+"type": "string"
+},
+"description": {
"type": "string"
}
},
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/compute.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/compute.ftl
new file mode 100644
index 0000000000..02b46633a6
--- /dev/null
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/compute.ftl
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string" <#if !manual>,
+ "enum": [
+ "${compute.name}"
+ ],
+ "default": "${compute.name}"</#if>
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 300
+ }
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl
new file mode 100644
index 0000000000..67271c79e2
--- /dev/null
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/deployment.ftl
@@ -0,0 +1,39 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "model": {
+ "type": "string",
+ "maxLength": 30,
+ "pattern": "^[A-Za-z0-9_,-]*$"
+ },
+ "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
+ }
+
+ },
+ "additionalProperties": false,
+ "required": [
+ "model"
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/image.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/image.ftl
new file mode 100644
index 0000000000..8391390506
--- /dev/null
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/image.ftl
@@ -0,0 +1,13 @@
+{
+"$schema": "http://json-schema.org/draft-04/schema#",
+"type": "object",
+"properties": {
+ "fileName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+}
diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl
index 6111348f88..fec5b9cd64 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl
@@ -3,12 +3,11 @@
"type": "object",
"properties": {
"name": {
- "type": "string"<#if !manual>,
+ "type": "string",
"enum": [
"${nic.name}"
],
"default": "${nic.name}"
- </#if>
},
"description": {
"type": "string"
@@ -20,15 +19,36 @@
],
"default": "${nic.networkId}"
}
- </#if><#else>,
+ </#if>
+ <#elseif manual><#if nic.networkId??>,
+ "networkId": {
+ "type": "string",
+ "enum": [
+ "${nic.networkId}"
+ ],
+ "default": "${nic.networkId}"
+ }
+ </#if>
+<#else>,
"networkId": {
"type": "string",
"enum": [<#list networkIds as networkId>
"${networkId}"<#sep>,</#list>
]
}
- </#if>
+ </#if>,
+ "networkDescription": {
+ "type": "string"
+ },
+ "networkType": {
+ "type": "string",
+ "enum": [
+ "${nic.networkType}"
+ ],
+ "default": "${nic.networkType}"
+ }
},
+
"additionalProperties": false,
"required": [
"name"
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
index d525c62474..062bf55928 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl
@@ -32,39 +32,30 @@
"image": {
"type": "object",
"properties": {
- "format": {
- "type": "string",
- "enum": [
- "aki",
- "ami",
- "ari",
- "iso",
- "qcow2",
- "raw",
- "vdi",
- "vhd",
- "vmdk"
- ],
- "default": "qcow2"
- },
"providedBy": {
"type": "string",
"enum": [
"Vendor"
],
"default": "Vendor"
- },
- "bootDiskSizePerVM": {
- "type": "number",
- "maximum": 100
- },
- "ephemeralDiskSizePerVM": {
- "type": "number",
- "maximum": 400
}
},
"additionalProperties": false
},
+ "disk": {
+ "type": "object" ,
+ "properties": {
+ "bootDiskSizePerVM": {
+ "type": "number",
+ "maximum": 100
+ },
+ "ephemeralDiskSizePerVM": {
+ "type": "number",
+ "maximum": 400
+ }
+ },
+ "additionalProperties": false
+ },
"recovery": {
"type": "object",
"properties": {
@@ -101,35 +92,6 @@
"compute": {
"type": "object",
"properties": {
- "vmSizing": {
- "type": "object",
- "properties": {
- "numOfCPUs": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true,
- "maximum": 16,
- "default": 2
- },
- "fileSystemSizeGB": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true,
- "default": 5
- },
- "persistentStorageVolumeSize": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true
- },
- "IOOperationsPerSec": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true
- }
- },
- "additionalProperties": false
- },
"numOfVMs": {
"type": "object",
"properties": {
@@ -148,24 +110,6 @@
0</#if> ,
"exclusiveMinimum": true,
"maximum": 100
- },
- "CpuOverSubscriptionRatio": {
- "type": "string",
- "enum": [
- "1:1",
- "4:1",
- "16:1"
- ],
- "default": "4:1"
- },
- "MemoryRAM": {
- "type": "string",
- "enum": [
- "2 GB",
- "4 GB",
- "8 GB"
- ],
- "default": "2 GB"
}
},
"additionalProperties": false
@@ -184,6 +128,7 @@
32
],
"default": 64
+
},
"tools": {
"type": "string"
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl
new file mode 100644
index 0000000000..3dc85cf192
--- /dev/null
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl
@@ -0,0 +1,54 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "vmSizing": {
+ "type": "object",
+ "properties": {
+ "numOfCPUs": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true,
+ "maximum": 16,
+ "default": 2
+ },
+ "fileSystemSizeGB": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true,
+ "default": 5
+ },
+ "persistentStorageVolumeSize": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true
+ },
+ "ioOperationsPerSec": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true
+ },
+ "cpuOverSubscriptionRatio": {
+ "type": "string",
+ "enum": [
+ "1:1",
+ "4:1",
+ "16:1"
+ ],
+ "default": "4:1"
+ },
+ "memoryRAM": {
+ "type": "string",
+ "enum": [
+ "1",
+ "2",
+ "4",
+ "8"
+ ],
+ "default": "1"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl
new file mode 100644
index 0000000000..4313e65c44
--- /dev/null
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl
@@ -0,0 +1,22 @@
+{
+"$schema": "http://json-schema.org/draft-04/schema#",
+"type": "object",
+"properties": {
+ "format": {
+ "type": "string",
+ "enum": [
+ "aki","ami","ari","iso","qcow2","raw", "vdi","vhd","vmdk"
+ ]
+ },
+ "version": {
+ "type": "string"
+ },
+ "md5": {
+ "type": "string"
+ }
+},
+ "additionalProperties": false,
+ "required": [
+ "version"
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/pom.xml b/openecomp-be/tools/migration/1702_to_1707_zusammen/pom.xml
index 1f281c950b..47808dbc3a 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/pom.xml
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/pom.xml
@@ -47,12 +47,12 @@
<dependency>
<groupId>com.amdocs.zusammen.plugin</groupId>
<artifactId>zusammen-state-store-cassandra-plugin</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
- <version>RELEASE</version>
+ <version>${hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/MigrationMain.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/MigrationMain.java
index c43cf32001..e0f3e016fe 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/MigrationMain.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/MigrationMain.java
@@ -49,7 +49,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
@@ -266,7 +266,7 @@ public class MigrationMain {
private static void convertMibs(SessionContext context,
CassandraElementRepository cassandraElementRepository) {
MibCassandraLoader cassandraLoader = new MibCassandraLoader();
- Collection<MibEntity> mibs = cassandraLoader.list();
+ Collection<ComponentMonitoringUploadEntity> mibs = cassandraLoader.list();
mibs.stream().filter(mibEntity -> needMigration(mibEntity.getVspId(), mibEntity.getVersion()))
.forEach
(mibEntity -> {
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
index 4c667f6708..c8037cecf4 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
@@ -84,7 +84,6 @@ public class EntitlementPoolConvertor {
info.addProperty("EntitlementTime", entitlementPool.getTime());
info.addProperty("manufacturerReferenceNumber",
entitlementPool.getManufacturerReferenceNumber());
-
return info;
}
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/FeatureGroupConvertor.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/FeatureGroupConvertor.java
index dd3fbe0485..eac5ce64ea 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/FeatureGroupConvertor.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/FeatureGroupConvertor.java
@@ -90,6 +90,8 @@ public class FeatureGroupConvertor {
info.setName(featureGroup.getName());
info.setDescription(featureGroup.getDescription());
info.addProperty("partNumber", featureGroup.getPartNumber());
+ info.addProperty("manufacturerReferenceNumber", featureGroup.getManufacturerReferenceNumber());
+
return info;
}
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/MibConvertor.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/MibConvertor.java
index 88b9dce95f..f145e51f02 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/MibConvertor.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/MibConvertor.java
@@ -8,9 +8,8 @@ import org.openecomp.core.migration.MigrationMain;
import org.openecomp.core.migration.store.ElementHandler;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.ElementType;
import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.StructureElement;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import java.util.HashSet;
import java.util.List;
@@ -22,45 +21,57 @@ public class MibConvertor {
private static Set<String> compMibLoaded = new HashSet<>();
- public static CollaborationElement[] convertMibToElement(MibEntity mibEntity) {
+ public static CollaborationElement[] convertMibToElement(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
CollaborationElement[] elements;
- List<String> mibNamespace = getMibNamespace(mibEntity);
+ List<String> mibNamespace = getMibNamespace(componentMonitoringUploadEntity);
int index = 0;
- String mibsEntityId = StructureElement.Mibs.name() + "_" + mibEntity.getComponentId();
+ String mibsEntityId =
+ StructureElement.Mibs.name() + "_" + componentMonitoringUploadEntity.getComponentId();
if (compMibLoaded.contains(mibsEntityId)) {
elements = new CollaborationElement[1];
} else {
compMibLoaded.add(mibsEntityId);
elements = new CollaborationElement[2];
elements[index++] = ElementHandler.getElementEntity(
- mibEntity.getVspId(), mibEntity.getVersion().toString(), mibsEntityId, mibNamespace,
+ componentMonitoringUploadEntity.getVspId(),
+ componentMonitoringUploadEntity.getVersion().toString(), mibsEntityId, mibNamespace,
ElementHandler.getStructuralElementInfo(StructureElement.Mibs.name()), null, null, null);
}
mibNamespace.add(mibsEntityId);
elements[index] = ElementHandler.getElementEntity(
- mibEntity.getVspId(), mibEntity.getVersion().toString(), mibEntity.getId(), mibNamespace,
- getMibInfo(mibEntity), null, null, mibEntity.getArtifact().array());
+ componentMonitoringUploadEntity.getVspId(),
+ componentMonitoringUploadEntity.getVersion().toString(), componentMonitoringUploadEntity
+ .getId(), mibNamespace,
+ getMibInfo(componentMonitoringUploadEntity), null, null, componentMonitoringUploadEntity
+ .getArtifact().array());
return elements;
}
- private static Info getMibInfo(MibEntity mibEntity) {
+ private static Info getMibInfo(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
Info info = new Info();
- info.setName(mibEntity.getType().toString());
- info.getProperties().put("name", mibEntity.getArtifactName());
+ info.setName(componentMonitoringUploadEntity.getType().toString());
+ info.getProperties().put("name", componentMonitoringUploadEntity.getArtifactName());
return info;
}
- private static List<String> getMibNamespace(MibEntity mibEntity) {
- return ElementHandler.getElementPath(StructureElement.Components.name(), mibEntity
+ private static List<String> getMibNamespace(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
+ return ElementHandler
+ .getElementPath(StructureElement.Components.name(), componentMonitoringUploadEntity
.getComponentId());
}
- public static ElementEntityContext convertMibToElementContext(MibEntity mibEntity) {
+ public static ElementEntityContext convertMibToElementContext(
+ ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
return new ElementEntityContext("GLOBAL_USER", new
- ElementContext(mibEntity.getVspId(), mibEntity.getVersion().toString()));
+ ElementContext(componentMonitoringUploadEntity.getVspId(),
+ componentMonitoringUploadEntity
+ .getVersion().toString()));
}
}
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/VspServiceTemplateConvertor.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/VspServiceTemplateConvertor.java
index 3854b32366..a767246f12 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/VspServiceTemplateConvertor.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/VspServiceTemplateConvertor.java
@@ -9,9 +9,7 @@ import org.openecomp.core.model.types.ServiceTemplate;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.sdc.model.impl.zusammen.ElementType;
import org.openecomp.sdc.model.impl.zusammen.StructureElement;
-import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
-import java.io.ByteArrayInputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/loaders/MibCassandraLoader.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/loaders/MibCassandraLoader.java
index fdb534df32..b93033cc72 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/loaders/MibCassandraLoader.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/loaders/MibCassandraLoader.java
@@ -25,7 +25,7 @@ import com.datastax.driver.mapping.annotations.Accessor;
import com.datastax.driver.mapping.annotations.Query;
import org.openecomp.core.nosqldb.api.NoSqlDb;
import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
import java.util.Collection;
@@ -36,7 +36,7 @@ public class MibCassandraLoader {
noSqlDb.getMappingManager().createAccessor(MibAccessor.class);
- public Collection<MibEntity> list() {
+ public Collection<ComponentMonitoringUploadEntity> list() {
return accessor.list().all();
}
@@ -45,7 +45,7 @@ public class MibCassandraLoader {
@Query(
"select * from vsp_component_artifact")
- Result<MibEntity> list();
+ Result<ComponentMonitoringUploadEntity> list();
}
diff --git a/openecomp-be/tools/swagger-ui/assembly/swagger.xml b/openecomp-be/tools/swagger-ui/assembly/swagger.xml
index 769cc64840..37911dc627 100644
--- a/openecomp-be/tools/swagger-ui/assembly/swagger.xml
+++ b/openecomp-be/tools/swagger-ui/assembly/swagger.xml
@@ -2,6 +2,7 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>bin</id>
<formats>
<format>war</format>
</formats>
diff --git a/openecomp-be/tools/swagger-ui/pom.xml b/openecomp-be/tools/swagger-ui/pom.xml
index b2b608cd3a..dec3d8b363 100644
--- a/openecomp-be/tools/swagger-ui/pom.xml
+++ b/openecomp-be/tools/swagger-ui/pom.xml
@@ -91,6 +91,7 @@
<descriptor>assembly/swagger.xml</descriptor>
<finalName>${plugin.name}</finalName>
<outputDirectory>${package.dir}</outputDirectory>
+ <appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
diff --git a/openecomp-be/tools/zusammen-tools/pom.xml b/openecomp-be/tools/zusammen-tools/pom.xml
index 57f3250a5c..0289de6d8a 100644
--- a/openecomp-be/tools/zusammen-tools/pom.xml
+++ b/openecomp-be/tools/zusammen-tools/pom.xml
@@ -47,12 +47,12 @@
<dependency>
<groupId>com.amdocs.zusammen.plugin</groupId>
<artifactId>zusammen-state-store-cassandra-plugin</artifactId>
- <version>0.0.1</version>
+ <version>${zusammen.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
- <version>RELEASE</version>
+ <version>${hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>org.openecomp.sdc</groupId>
@@ -62,7 +62,7 @@
</dependencies>
<artifactId>openecomp-zusammen-tools</artifactId>
<groupId>org.openecomp.sdc.core.tools</groupId>
- <version>1.0-SNAPSHOT</version>
+ <version>1.1.0-SNAPSHOT</version>
<parent>
<groupId>org.openecomp.sdc</groupId>
<artifactId>openecomp-sdc-lib</artifactId>
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
index 527efa5fc6..7058c57e85 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
@@ -18,7 +18,8 @@ public class ResetOldVersion {
public static Map<String, List<String>> itemVersionMap = new HashMap<>();
- public static void reset(SessionContext context, String oldVersion) {
+ public static int count =0;
+ public static void reset(SessionContext context, String oldVersion,String emptyOldVersion) {
@@ -30,7 +31,8 @@ public class ResetOldVersion {
VspGeneralLoader.load(context,
itemVersionMap);
- generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,oldVersion));
+ generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,
+ oldVersion,"true".equals(emptyOldVersion)));
itemVersionMap.entrySet().forEach(entry->entry.getValue().stream().filter
@@ -38,10 +40,24 @@ public class ResetOldVersion {
+"_"+version)).forEach(version->ElementHandler.update(context,
entry.getKey(),version,generalElementMap.get(context.getUser().getUserName()+"_"+entry.getKey()
+"_"+version))));
+
+ System.out.println("nymber of element updated:"+count);
+
}
- private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion) {
- elementEntity.getInfo().addProperty("oldVersion",oldVersion);
+ private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion,
+ boolean emptyOldVersion) {
+
+ if(!emptyOldVersion){
+ elementEntity.getInfo().addProperty("oldVersion",oldVersion);
+ count++;
+ }else if(elementEntity.getInfo().getProperty("oldVersion")== null || ""
+ .equals(elementEntity.getInfo().getProperty("oldVersion"))){
+ elementEntity.getInfo().addProperty("oldVersion",oldVersion);
+ count++;
+ }
+
+
}
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/main/ZusammenMainTool.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/main/ZusammenMainTool.java
index 926566864f..6f092d2f56 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/main/ZusammenMainTool.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/main/ZusammenMainTool.java
@@ -38,7 +38,7 @@ public class ZusammenMainTool {
switch (COMMANDS.valueOf(command)){
case RESET_OLD_VERSION:
- ResetOldVersion.reset(context,ToolsUtil.getParam("v",args));
+ ResetOldVersion.reset(context,ToolsUtil.getParam("v",args),ToolsUtil.getParam("n",args));
break;
case EXPORT:
ExportDataCommand.exportData(context,ToolsUtil.getParam("i",args));
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
index 54a3dd9ada..b5d09daf3f 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/store/VspGeneralLoader.java
@@ -5,7 +5,6 @@ import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
import org.openecomp.core.zusammen.plugin.dao.impl.CassandraElementRepository;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.StructureElement;
import java.util.HashMap;
import java.util.List;
@@ -13,28 +12,84 @@ import java.util.Map;
import java.util.Optional;
public class VspGeneralLoader {
+ private static CassandraElementRepository cassandraElementRepository =
+ new CassandraElementRepository();
+
public static Map<String, ElementEntity> load(SessionContext context,
Map<String, List<String>> vspItemVersionsMap) {
Map<String, ElementEntity> elementEntityMap = new HashMap<>();
System.setProperty("cassandra.dox.keystore", "zusammen_dox");
- CassandraElementRepository cassandraElementRepository = new CassandraElementRepository();
+
+ Id entityId;
+ Id itemId;
+ Id versionId;
for (Map.Entry<String, List<String>> entry : vspItemVersionsMap.entrySet()) {
for (String version : entry.getValue()) {
- Optional<ElementEntity> result =
- cassandraElementRepository.get(context, new ElementEntityContext(
- context.getUser().getUserName(),
- new Id(entry.getKey()),
- new Id(version)),
- new ElementEntity(new Id(StructureElement.General.name())));
- if (result.isPresent()) {
- elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey()
- + "_" + version, result.get());
+
+ itemId = new Id(entry.getKey());
+ versionId = new Id(version);
+ entityId = getEntityIdByInfoNameValue(context, itemId, versionId, null, "name",
+ "General");
+ if (entityId != null) {
+ Optional<ElementEntity> result =
+ cassandraElementRepository.get(context, new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ versionId),
+ new ElementEntity(entityId));
+ if (result.isPresent()) {
+ elementEntityMap.put(context.getUser().getUserName() + "_" + entry.getKey()
+ + "_" + version, result.get());
+ }
}
}
}
return elementEntityMap;
}
+
+ private static Id getEntityIdByInfoNameValue(SessionContext context, Id itemId, Id versionId,
+ Id elementId, String
+ name, String value) {
+
+ Id id;
+ Optional<ElementEntity> result =
+ cassandraElementRepository.get(context, new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ versionId),
+ new ElementEntity(Id.ZERO));
+ if (result.isPresent()) {
+ ElementEntity elementEntity = result.get();
+ return elementEntity.getSubElementIds().stream().filter(subelementId -> {
+ Optional<ElementEntity> subElementEntity =
+ cassandraElementRepository.get(context, new ElementEntityContext(
+ context.getUser().getUserName(),
+ itemId,
+ versionId),
+ new ElementEntity(subelementId));
+ if (subElementEntity.isPresent()) {
+ if("name".equals(name)){
+ if(value.equals(subElementEntity.get().getInfo().getName())){
+ return true;
+ }
+ }
+ if (value.equals(subElementEntity.get().getInfo().getProperty(name))) {
+ return true;
+ }
+ }
+ return false;
+
+ }).findFirst().orElse(null);
+ }
+ return null;
+
+
+
+
+
+
+ }
}
diff --git a/openecomp-ui/.gitignore b/openecomp-ui/.gitignore
index 7704a027fe..2a11210d95 100644
--- a/openecomp-ui/.gitignore
+++ b/openecomp-ui/.gitignore
@@ -1,6 +1,7 @@
.idea
.vscode
+.history
debug.log
dist
node_modules
diff --git a/openecomp-ui/external-resources/healthcheck/v1.0/healthcheck b/openecomp-ui/external-resources/healthcheck/v1.0/healthcheck
new file mode 100644
index 0000000000..6a3dd41755
--- /dev/null
+++ b/openecomp-ui/external-resources/healthcheck/v1.0/healthcheck
@@ -0,0 +1,11 @@
+{
+ "sdcVersion": "1.0-SNAPSHOT",
+ "componentsInfo": [
+ {
+ "healthCheckComponent": "FE",
+ "healthCheckStatus": "UP",
+ "version": "1.0-SNAPSHOT",
+ "description": "OK"
+ }
+ ]
+}
diff --git a/openecomp-ui/gulpfile.js b/openecomp-ui/gulpfile.js
index 2cad6d8520..eb755a2be0 100644
--- a/openecomp-ui/gulpfile.js
+++ b/openecomp-ui/gulpfile.js
@@ -5,9 +5,11 @@ let gulpHelpers = require('gulp-helpers');
let replace = require('gulp-replace');
let taskMaker = gulpHelpers.taskMaker(gulp);
let runSequence = gulpHelpers.framework('run-sequence');
-let i18nTask = require('./tools/gulp/tasks/i18n');
-let prodTask = require('./tools/gulp/tasks/prod');
let gulpCssUsage = require('gulp-css-usage').default;
+
+let prodTask = require('./tools/gulp/tasks/prod');
+let i18nTask = require('./tools/gulp/tasks/i18n.js');
+
let jsonConfig = {
"appContextPath" : "/onboarding"
};
@@ -15,48 +17,60 @@ let jsonConfig = {
try {
jsonConfig = require('./src/sdc-app/config/config.json');
} catch (e) {
- console.log('could not load config. using deault value instead');
+ console.log('could not load config. using default value instead');
}
const appName = 'onboarding';
const dist = 'dist';
const path = {
- jetty: './webapp-onboarding/WEB-INF/jetty-web.xml',
- appinf: './webapp-onboarding/**/*.*',
- appinf_output: dist + '/webapp-onboarding',
- locales: dist + '/i18n/',
- output: dist,
+ // inputs
json: './src/**/*.json',
index: './src/index.html',
heat: './src/heat.html',
scss: './resources/scss/**/*.scss',
- css: dist + '/css',
+ i18nBundles: './src/nfvo-utils/i18n/*.json',
svgSrc: './resources/images/svg/*.svg',
+ appinf: './webapp-onboarding/**/*.*',
+ jetty: './webapp-onboarding/WEB-INF/jetty-web.xml',
+ srcDir: './src/',
+ // output
+ output: dist,
+ css: dist + '/css',
svg: dist + '/resources/images/svg',
- war: [dist + '/index.html', dist + '/punch-outs_en.js', dist + '/**/*.{css,png,svg,eot,ttf,woff,woff2,otf}', dist + '/**/*(config.json|locale.json)', 'tools/gulp/deployment/**', dist + '/webapp-onboarding/**'],
- heatWar: [dist + '/heat.html', dist + '/heat-validation_en.js', dist + '/**/*.{css,png,svg,eot,ttf,woff,woff2,otf}', dist + '/**/*(config.json|locale.json)', 'webapp-heat-validation/**'],
+ appinf_output: dist + '/webapp-onboarding',
+ // war
+ war: [dist + '/index.html', dist + '/punch-outs*.js', dist + '/**/*.{css,png,svg,eot,ttf,woff,woff2,otf}', dist + '/**/*(config.json)', dist + '/webapp-onboarding/**'],
+ heatWar: [dist + '/heat.html', dist + '/heat-validation_en.js', dist + '/**/*.{css,png,svg,eot,ttf,woff,woff2,otf}', dist + '/**/*(config.json)', 'webapp-heat-validation/**'],
wardest: dist,
+ // storybook
storybookFonts: './.storybook/fonts/*',
storybookDist: './.storybook-dist',
storybookResources: './.storybook/resources/onboarding/resources/images/svg',
storybookDistResources: './.storybook-dist/onboarding/resources/images/svg'
};
-
+// cleans up the output directory
taskMaker.defineTask('clean', {taskName: 'clean', src: path.output});
+// copies for all relevant files to the output directory
taskMaker.defineTask('copy', {taskName: 'copy-json', src: path.json, dest: path.output, changed: {extension: '.json'}});
taskMaker.defineTask('copy', {taskName: 'copy-index.html', src: path.index, dest: path.output, rename: 'index.html'});
taskMaker.defineTask('copy', {taskName: 'copy-heat.html', src: path.heat, dest: path.output, rename: 'heat.html'});
taskMaker.defineTask('copy', {taskName: 'copy-svg', src: path.svgSrc, dest: path.svg});
-//TODO: delete this task after gulp-css-usage support for SCSS files
-taskMaker.defineTask('sass', {taskName: 'sass', src: path.scss, dest: path.css, config: {outputStyle: 'compressed'}});
-taskMaker.defineTask('compress', {taskName: 'compress-war', src: path.war, filename: appName + '.war', dest: path.wardest});
-taskMaker.defineTask('compress', {taskName: 'compress-heat-war', src: path.heatWar, filename: 'heat-validation.war', dest: path.wardest});
-taskMaker.defineTask('watch', {taskName: 'watch-stuff', src: [path.json, path.index, path.heat], tasks: ['copy-stuff']});
taskMaker.defineTask('copy', {taskName: 'copy-storybook-fonts', src: path.storybookFonts, dest: path.storybookDist});
taskMaker.defineTask('copy', {taskName: 'copy-storybook-resources', src: path.svgSrc, dest: path.storybookResources});
taskMaker.defineTask('copy', {taskName: 'copy-storybook-resources-prod', src: path.svgSrc, dest: path.storybookDistResources});
+// used for compressing war files
+taskMaker.defineTask('compress', {taskName: 'compress-war', src: path.war, filename: appName + '.war', dest: path.wardest});
+taskMaker.defineTask('compress', {taskName: 'compress-heat-war', src: path.heatWar, filename: 'heat-validation.war', dest: path.wardest});
+// used for watching for changes for test
+taskMaker.defineTask('watch', {taskName: 'watch-stuff', src: [path.json, path.index, path.heat], tasks: ['copy-stuff']});
+
+
+//TODO: delete this task after gulp-css-usage support for SCSS files
+taskMaker.defineTask('sass', {taskName: 'sass', src: path.scss, dest: path.css, config: {outputStyle: 'compressed'}});
+
+// update the app-context for the web-xml file to the value from the config
gulp.task('app-context', function(){
gulp.src([path.appinf])
.pipe(gulp.dest(path.appinf_output))
@@ -66,22 +80,17 @@ gulp.task('app-context', function(){
.pipe(gulp.dest(path.appinf_output + '/WEB-INF'));
})
});
-
+// aggregates all copy tasks
gulp.task('copy-stuff', callback => runSequence(['copy-json', 'copy-index.html', 'copy-heat.html', 'copy-svg', 'app-context'], callback));
-gulp.task('i18n', () =>
- i18nTask({outputPath: path.output, localesPath: path.locales, lang: 'en'}).catch(err => {
- console.log('i18n Task : Error! ', err);
- throw err;
- })
-);
-
-gulp.task('dev', callback => runSequence('clean', ['i18n', 'copy-stuff'], callback));
-gulp.task('build', callback => runSequence('clean', ['copy-stuff', 'i18n'], 'prod', ['compress-war', 'compress-heat-war'], callback));
-
+// minimum build for dev
+gulp.task('dev', callback => runSequence('clean', 'copy-stuff', callback));
+// build procedure for war file
+gulp.task('build', callback => runSequence('clean', 'copy-stuff', 'prod', ['compress-war', 'compress-heat-war'], callback));
+// default build is set to 'dev'
gulp.task('default', ['dev']);
-
-gulp.task('prod', () => prodTask({outDir: path.output})
+// creating the webpack tasks for the production build
+gulp.task('prod', () => prodTask({outDir: path.output, i18nBundles : path.i18nBundles})
.catch(err => {
if (err && err.stack) {
console.error(err, err.stack);
@@ -90,7 +99,12 @@ gulp.task('prod', () => prodTask({outDir: path.output})
})
);
+/***
+ * T O O L S . N O T P A R T O F B U I L D
+ */
+// this is used to manually run on the sass files to check which classes are never used. not run as part of build.
+// can be run as npm task
gulp.task('gulp-css-usage', () => {
return gulp.src('src/**/*.jsx').pipe(gulpCssUsage({css: path.css + '/style.css', babylon: ['objectRestSpread']}));
});
@@ -99,3 +113,15 @@ gulp.task('css-usage', () => {
runSequence('sass', 'gulp-css-usage');
});
+
+gulp.task('static-keys-bundle', () => i18nTask({outDir: path.output, srcDir: path.srcDir})
+ .catch(err => {
+ throw new Error('static-keys-bundle FAILED');
+ })
+);
+
+gulp.task('static-keys-bundle-with-report', () => i18nTask({outDir: path.output, srcDir: path.srcDir, i18nBundles : path.i18nBundles })
+ .catch(err => {
+ throw new Error('static-keys-bundle FAILED');
+ })
+);
diff --git a/openecomp-ui/package.json b/openecomp-ui/package.json
index 8157be8141..0e1e66b80e 100644
--- a/openecomp-ui/package.json
+++ b/openecomp-ui/package.json
@@ -7,6 +7,9 @@
"scripts": {
"start": "gulp dev && webpack-dev-server --progress",
"build": "gulp build",
+ "css-usage": "gulp css-usage",
+ "static-keys-bundle" : "gulp static-keys-bundle",
+ "check-keys-against-bundles" : "gulp static-keys-bundle-with-report",
"test": "jest",
"test-failedTestReport": "jest --json | node test-utils/failedTestReport.js",
"test-dev": "jest --watch",
@@ -36,6 +39,7 @@
"react-sortable": "^1.2.0",
"redux": "^3.3.1",
"restful-js": "^0.7.0",
+ "sdc-ui": "^1.5.12",
"uuid-js": "^0.7.5",
"validator": "^4.3.0"
},
@@ -70,7 +74,7 @@
"gulp-helpers": "^5.0.0",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
- "gulp-util": "^3.0.8",
+ "gulp-tap": "^1.0.1",
"html-loader": "^0.4.3",
"http-proxy-middleware": "^0.8.2",
"ignore-loader": "^0.1.1",
@@ -80,9 +84,11 @@
"json-loader": "^0.5.4",
"jsx-loader": "^0.13.2",
"mkdirp": "^0.5.1",
+ "moment": "^2.18.1",
"node-watch": "^0.3.5",
"prompt": "^0.2.14",
"react-addons-test-utils": "~15.3.2",
+ "react-datepicker": "^0.48.0",
"react-hot-loader": "^1.3.1",
"rosie": "^1.6.0",
"sass-loader": "^3.2.3",
@@ -107,7 +113,7 @@
"^nfvo-components(.*)$": "<rootDir>/src/nfvo-components$1",
"^sdc-app(.*)$": "<rootDir>/src/sdc-app$1",
"^test-utils(.*)$": "<rootDir>/test-utils$1",
- "^i18nJson$": "<rootDir>/src/nfvo-utils/i18n/locale.json",
+ "^i18nJson$": "<rootDir>/src/nfvo-utils/i18n/en.json",
"^src(.*)$": "<rootDir>/src$1"
},
"globals": {
diff --git a/openecomp-ui/resources/images/angle-left.svg b/openecomp-ui/resources/images/angle-left.svg
new file mode 100644
index 0000000000..b2d2f81b3d
--- /dev/null
+++ b/openecomp-ui/resources/images/angle-left.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="angle-left_icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 6.3 9.9" style="enable-background:new 0 0 6.3 9.9;" xml:space="preserve">
+<g transform="translate(0,-952.36218)">
+ <path d="M5.8,952.4c-0.1,0-0.2,0-0.2,0.1l-5.5,4.6c-0.2,0.1-0.2,0.4,0,0.5l0,0l5.5,4.6c0.2,0.1,0.4,0.1,0.5,0
+ c0.1-0.2,0.1-0.4,0-0.5l0,0l-5.2-4.3l5.2-4.3c0.2-0.1,0.2-0.4,0.1-0.5C6,952.4,5.9,952.4,5.8,952.4z"/>
+</g>
+</svg>
diff --git a/openecomp-ui/resources/images/angle-right.svg b/openecomp-ui/resources/images/angle-right.svg
new file mode 100644
index 0000000000..f8e6efc3a6
--- /dev/null
+++ b/openecomp-ui/resources/images/angle-right.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="angle-right_icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 6.3 9.9" style="enable-background:new 0 0 6.3 9.9;" xml:space="preserve">
+<g transform="translate(0,-952.36218)">
+ <path d="M0.5,962.2c0.1,0,0.2,0,0.2-0.1l5.5-4.6c0.2-0.1,0.2-0.4,0-0.5l0,0l-5.5-4.6c-0.2-0.1-0.4-0.1-0.5,0
+ c-0.1,0.2-0.1,0.4,0,0.5l0,0l5.2,4.3l-5.2,4.3C0,961.6,0,961.9,0.1,962C0.3,962.1,0.4,962.2,0.5,962.2z"/>
+</g>
+</svg>
diff --git a/openecomp-ui/resources/images/svg/calendar.svg b/openecomp-ui/resources/images/svg/calendar.svg
new file mode 100644
index 0000000000..9c059024d5
--- /dev/null
+++ b/openecomp-ui/resources/images/svg/calendar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 18" id="calendar_icon"><title>Asset 1</title><g data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M15.5,2H13V0H12V2H9V0H8V2H5V0H4V2H1.5A1.5,1.5,0,0,0,0,3.5v13A1.5,1.5,0,0,0,1.5,18h14A1.5,1.5,0,0,0,17,16.5V3.5A1.5,1.5,0,0,0,15.5,2ZM16,16.5a.5.5,0,0,1-.5.5H1.5a.5.5,0,0,1-.5-.5V8H16ZM1,7V3.5A.5.5,0,0,1,1.5,3H4V5H5V3H8V5H9V3h3V5h1V3h2.5a.5.5,0,0,1,.5.5V7Z"/><path d="M4.52,13.65l.7-.09a1.55,1.55,0,0,0,.41.86,1,1,0,0,0,.71.26,1.14,1.14,0,0,0,.84-.34,1.16,1.16,0,0,0,.34-.85,1.08,1.08,0,0,0-.32-.8,1.09,1.09,0,0,0-.8-.31,2,2,0,0,0-.5.08L6,11.84H6.1a1.45,1.45,0,0,0,.81-.23.8.8,0,0,0,.36-.72A.85.85,0,0,0,7,10.25.93.93,0,0,0,6.33,10a1,1,0,0,0-.68.26A1.29,1.29,0,0,0,5.3,11l-.7-.12a1.81,1.81,0,0,1,.59-1.1,1.69,1.69,0,0,1,1.14-.39,1.86,1.86,0,0,1,.86.2,1.45,1.45,0,0,1,.6.55A1.41,1.41,0,0,1,8,10.9a1.21,1.21,0,0,1-.2.68,1.36,1.36,0,0,1-.59.48,1.33,1.33,0,0,1,.79.49,1.48,1.48,0,0,1,.28.92,1.69,1.69,0,0,1-.55,1.27,1.92,1.92,0,0,1-1.38.52,1.8,1.8,0,0,1-1.25-.45A1.74,1.74,0,0,1,4.52,13.65Z"/><path d="M11.62,15.17h-.7V10.69a3.68,3.68,0,0,1-.67.48,4.77,4.77,0,0,1-.74.36v-.68a4.26,4.26,0,0,0,1-.67,2.66,2.66,0,0,0,.63-.77h.45Z"/></g></g></svg> \ No newline at end of file
diff --git a/openecomp-ui/resources/scss/_components.scss b/openecomp-ui/resources/scss/_components.scss
index bd85f547c9..c70b914187 100644
--- a/openecomp-ui/resources/scss/_components.scss
+++ b/openecomp-ui/resources/scss/_components.scss
@@ -17,9 +17,9 @@
@import "components/expandableInput";
@import "components/grid";
@import "components/icon";
-@import "components/svgIcon";
@import "components/activityLog";
@import "components/selectActionTable";
+@import "components/datepicker";
%noselect {
-webkit-touch-callout: none;
diff --git a/openecomp-ui/resources/scss/_modules.scss b/openecomp-ui/resources/scss/_modules.scss
index 578895dfe0..317f90800f 100644
--- a/openecomp-ui/resources/scss/_modules.scss
+++ b/openecomp-ui/resources/scss/_modules.scss
@@ -12,7 +12,9 @@
@import "modules/_softwareProductComponentGeneral";
@import "modules/_softwareproductComponentLoadBalancing";
@import "modules/_softwareProductComponentProcessesPage";
+@import "modules/_softwareProductComponentImage";
@import "modules/softwareProductComponentCompute";
+@import "modules/vspComponentCompute";
@import "modules/vspComponentMonitoring";
@import "modules/licenseModel";
@import "modules/onboardingCatalog";
@@ -20,3 +22,4 @@
@import "modules/uploadScreen";
@import "modules/vspHeatSetup";
@import "modules/softwareProductDependencies";
+@import "modules/softwareProductDeployment";
diff --git a/openecomp-ui/resources/scss/bootstrap-cust/_forms.scss b/openecomp-ui/resources/scss/bootstrap-cust/_forms.scss
index 8085274cac..60fd7ab07d 100644
--- a/openecomp-ui/resources/scss/bootstrap-cust/_forms.scss
+++ b/openecomp-ui/resources/scss/bootstrap-cust/_forms.scss
@@ -1,6 +1,6 @@
.form-group {
.control-label {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
}
&.required {
label:before {
diff --git a/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss b/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
index 6a825b811e..9301f1ed39 100644
--- a/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
+++ b/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
@@ -19,5 +19,11 @@
padding: 15px;
border-top: 0;
background-color: $tlv-gray;
+ .sdc-modal-footer {
+ .sdc-button + .sdc-button {
+ margin-left: 5px;
+ }
+ }
+
}
}
diff --git a/openecomp-ui/resources/scss/bootstrap-cust/_navs.scss b/openecomp-ui/resources/scss/bootstrap-cust/_navs.scss
index 7b9cff963d..914a7794f1 100644
--- a/openecomp-ui/resources/scss/bootstrap-cust/_navs.scss
+++ b/openecomp-ui/resources/scss/bootstrap-cust/_navs.scss
@@ -22,7 +22,7 @@
&,
&:hover,
&:focus {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
border-bottom: 3px solid $blue;
}
}
diff --git a/openecomp-ui/resources/scss/bootstrap-cust/_variables.scss b/openecomp-ui/resources/scss/bootstrap-cust/_variables.scss
index 1af39d5b39..1c053e500b 100644
--- a/openecomp-ui/resources/scss/bootstrap-cust/_variables.scss
+++ b/openecomp-ui/resources/scss/bootstrap-cust/_variables.scss
@@ -28,7 +28,7 @@ $link-hover-color: $blue;
//== Typography
//
//## Font, line-height, and color for body text, headings, and more.
-$font-family-sans-serif: omnes-regular, "Omnes-Regular", "Helvetica Neue", Helvetica, Arial, sans-serif;
+$font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
//$font-family-base: $font-family-sans-serif !default;
$font-size-base: $body-font-2;
$font-size-large: $body-font-1;
diff --git a/openecomp-ui/resources/scss/bootstrap.scss b/openecomp-ui/resources/scss/bootstrap.scss
index a8c470216d..777f490a89 100644
--- a/openecomp-ui/resources/scss/bootstrap.scss
+++ b/openecomp-ui/resources/scss/bootstrap.scss
@@ -7,12 +7,12 @@
@import "bootstrap/variables";
@import "bootstrap/mixins";
// Reset and dependencies
-@import "bootstrap/normalize";
+//@import "bootstrap/normalize";
//@import "bootstrap/print";
//@import "bootstrap/glyphicons";
// Core CSS
-@import "bootstrap/scaffolding";
+//@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/code";
@import "bootstrap/grid";
@@ -20,8 +20,8 @@
@import "bootstrap-cust/tables";
@import "bootstrap/forms";
@import "bootstrap-cust/forms";
-@import "bootstrap/buttons";
-@import "bootstrap-cust/buttons";
+//@import "bootstrap/buttons";
+//@import "bootstrap-cust/buttons";
// Components
@import "bootstrap/component-animations";
@import "bootstrap/dropdowns";
diff --git a/openecomp-ui/resources/scss/bootstrap/_mixins.scss b/openecomp-ui/resources/scss/bootstrap/_mixins.scss
index 62dfda69dc..3d08c9b390 100644
--- a/openecomp-ui/resources/scss/bootstrap/_mixins.scss
+++ b/openecomp-ui/resources/scss/bootstrap/_mixins.scss
@@ -16,7 +16,7 @@
@import "mixins/vendor-prefixes";
// Components
@import "mixins/alerts";
-@import "mixins/buttons";
+//@import "mixins/buttons";
@import "mixins/panels";
@import "mixins/pagination";
@import "mixins/list-group";
diff --git a/openecomp-ui/resources/scss/common/_typography.scss b/openecomp-ui/resources/scss/common/_typography.scss
index 1543f0adcd..94e1ba4d61 100644
--- a/openecomp-ui/resources/scss/common/_typography.scss
+++ b/openecomp-ui/resources/scss/common/_typography.scss
@@ -1,22 +1,26 @@
/* Fonts */
@mixin base-font-regular() {
- font-family: omnes-regular, Arial, sans-serif;
+ font-family: OpenSans, OpenSans-Regular, 'Open Sans',omnes-regular, Arial, sans-serif;
}
@mixin base-font-light() {
- font-family: omnes-light, Arial, sans-serif;
+ font-family: OpenSans-Light, 'Open Sans', omnes-light, Arial, sans-serif;
}
-@mixin base-font-medium() {
- font-family: omnes-medium, Arial, sans-serif;
+@mixin base-font-italic(){
+ font-family: OpenSans-Italic, 'Open Sans', omnes-italic, Arial, sans-serif;
+}
+
+@mixin base-font-semibold() {
+ font-family: OpenSans-Semibold, 'Open Sans', omnes-medium, Arial, sans-serif;
}
@mixin base-font-bold() {
- font-family: omnes-bold, Arial, sans-serif;
+ font-family: OpenSans-Bold, 'Open Sans', omnes-bold, Arial, sans-serif;
}
-$heading-font-1: 36px;
+$heading-font-1: 28px;
$heading-font-2: 24px;
$heading-font-3: 20px;
$heading-font-4: 18px;
@@ -25,6 +29,7 @@ $heading-font-5: 16px;
$body-font-1: 14px;
$body-font-2: 13px;
$body-font-3: 12px;
+$body-font-4: 10px;
$icon-font-size: 11px;
$icon-font-family: Arial;
@@ -52,8 +57,8 @@ $radio-font-family: Arial;
@extend .text-uppercase !optional;
}
-.heading-3-medium {
- @include base-font-medium;
+.heading-3-semibold {
+ @include base-font-semibold;
font-size: $heading-font-3;
@extend .text-uppercase !optional;
}
@@ -63,8 +68,8 @@ $radio-font-family: Arial;
font-size: $heading-font-4;
}
-.heading-4-medium {
- @include base-font-medium;
+.heading-4-semibold {
+ @include base-font-semibold;
font-size: $heading-font-4;
}
@@ -73,8 +78,8 @@ $radio-font-family: Arial;
font-size: $heading-font-5;
}
-.heading-5-medium {
- @include base-font-medium;
+.heading-5-semibold {
+ @include base-font-semibold;
font-size: $heading-font-5;
}
@@ -83,8 +88,8 @@ $radio-font-family: Arial;
font-size: $body-font-1;
}
-.body-1-medium {
- @include base-font-medium;
+.body-1-semibold {
+ @include base-font-semibold;
font-size: $body-font-1;
}
@@ -98,8 +103,8 @@ $radio-font-family: Arial;
font-size: $body-font-2;
}
-.body-2-medium {
- @include base-font-medium;
+.body-2-semibold {
+ @include base-font-semibold;
font-size: $body-font-2;
}
@@ -108,18 +113,28 @@ $radio-font-family: Arial;
font-size: $body-font-3;
}
-.body-3-medium {
- @include base-font-medium;
+.body-3-semibold {
+ @include base-font-semibold;
font-size: $body-font-3;
}
+.body-4 {
+ @include base-font-regular;
+ font-size: $body-font-4;
+}
+
+.body-4-semibold {
+ @include base-font-semibold;
+ font-size: $body-font-4;
+}
+
.body-3-light {
@include base-font-light;
font-size: $body-font-3;
}
.circle-icon-text {
- @include base-font-medium;
+ @include base-font-semibold;
font-size: $body-font-1;
}
diff --git a/openecomp-ui/resources/scss/components/_activityLog.scss b/openecomp-ui/resources/scss/components/_activityLog.scss
index 1e31e06814..9ada804934 100644
--- a/openecomp-ui/resources/scss/components/_activityLog.scss
+++ b/openecomp-ui/resources/scss/components/_activityLog.scss
@@ -29,7 +29,7 @@ $message-info-icon-size: 16px;
height: 36px;
@extend .body-1;
&.header {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
background-color: $tlv-light-gray;
color: $text-black;
}
@@ -39,7 +39,7 @@ $message-info-icon-size: 16px;
.svg-icon-wrapper {
float: right;
}
- .check-circle {
+ .checkCircle {
fill: $green;
width: 16px;
height: 16px;
diff --git a/openecomp-ui/resources/scss/components/_buttons.scss b/openecomp-ui/resources/scss/components/_buttons.scss
index fbf2c3e728..357a799e93 100644
--- a/openecomp-ui/resources/scss/components/_buttons.scss
+++ b/openecomp-ui/resources/scss/components/_buttons.scss
@@ -2,8 +2,7 @@
border: 1px solid;
border-color: $blue;
color: $blue;
- font-weight: bolder;
- @extend .body-1;
+ @extend .body-1-semibold;
text-align: center;
padding: 7px;
border-radius: 5px;
diff --git a/openecomp-ui/resources/scss/components/_datepicker.scss b/openecomp-ui/resources/scss/components/_datepicker.scss
new file mode 100644
index 0000000000..593bb09d7d
--- /dev/null
+++ b/openecomp-ui/resources/scss/components/_datepicker.scss
@@ -0,0 +1,51 @@
+.customized-date-picker {
+ margin-bottom: 24px;
+ .date-picker-label {
+ &.required {
+ &:before {
+ content: "*";
+ color: $red;
+ margin: 0 4px 0 0;
+ }
+ }
+
+ @extend .body-2-semibold;
+ color: $dark-gray;
+ margin-bottom: 8px;
+ }
+ .datepicker-custom-input {
+ display: flex;
+ justify-content: space-between;
+ width: 243px;
+ height: 30px;
+ border-radius: 2px;
+ color: $dark-gray;
+ border: 1px solid $light-gray;
+ padding: 6px 12px;
+ &:hover {
+ border-color: $gray;
+ .clear-input {
+ &:before {
+ cursor: pointer;
+ content: 'x';
+ }
+ }
+ }
+ .datepicker-text {
+ cursor: pointer;
+ width: 170px;
+ @extend .body-1;
+ &.placeholder {
+ color: $light-gray;
+ }
+
+ }
+ .calendar-input {
+ fill: $light-gray;
+ }
+ }
+
+
+
+}
+
diff --git a/openecomp-ui/resources/scss/components/_forms.scss b/openecomp-ui/resources/scss/components/_forms.scss
index 23c58ea4ac..b662ce873c 100644
--- a/openecomp-ui/resources/scss/components/_forms.scss
+++ b/openecomp-ui/resources/scss/components/_forms.scss
@@ -1,5 +1,5 @@
.section-title {
- @extend .heading-3-medium;
+ @extend .heading-3-semibold;
padding: 50px 0 30px 0;
&:first-child {
padding: 0 0 30px 0;
diff --git a/openecomp-ui/resources/scss/components/_grid.scss b/openecomp-ui/resources/scss/components/_grid.scss
index d4d1fa7ccd..9a76f97546 100644
--- a/openecomp-ui/resources/scss/components/_grid.scss
+++ b/openecomp-ui/resources/scss/components/_grid.scss
@@ -1,7 +1,9 @@
$gridItemSpace: 15%;
.grid-section {
- padding-bottom: 30px;
+ &:not(:last-of-type) {
+ padding-bottom: 30px;
+ }
.grid-items {
display: flex;
flex-direction: row;
diff --git a/openecomp-ui/resources/scss/components/_listEditorView.scss b/openecomp-ui/resources/scss/components/_listEditorView.scss
index 18d5426eb7..1c837ca4c2 100644
--- a/openecomp-ui/resources/scss/components/_listEditorView.scss
+++ b/openecomp-ui/resources/scss/components/_listEditorView.scss
@@ -15,16 +15,16 @@
border-bottom: 1px solid $light-gray;
padding-bottom: 5px;
.list-editor-view-title {
- @extend .heading-3-medium;
+ @extend .heading-3-semibold;
}
.list-editor-view-add-controller {
- @extend .heading-4-medium;
+ @extend .body-1-semibold;
color: $blue;
display: table;
cursor: pointer;
position: relative;
- padding-top: 0px;
- padding-bottom: 0px;
+ padding-top: 0;
+ padding-bottom: 0;
margin-left: auto;
.list-editor-view-add-title {
display: flex;
@@ -151,6 +151,13 @@
}
}
+ .details-col{
+ flex-direction: column;
+ .title {
+ padding-bottom: 0;
+ }
+ }
+
.description {
@extend .body-1;
@include multiline-ellipsis(1.3em, 3);
diff --git a/openecomp-ui/resources/scss/components/_navigationSideBar.scss b/openecomp-ui/resources/scss/components/_navigationSideBar.scss
index 36c14a2785..daf5025bee 100644
--- a/openecomp-ui/resources/scss/components/_navigationSideBar.scss
+++ b/openecomp-ui/resources/scss/components/_navigationSideBar.scss
@@ -16,7 +16,7 @@
flex-direction: column;
background-color: $tlv-gray;
.group-name {
- @extend .heading-4-medium;
+ @extend .heading-4-semibold;
@include ellipsis;
min-height: 56px;
display: block;
@@ -47,13 +47,13 @@
@include ellipsis;
white-space: normal;
&.selected {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
border-left: 4px solid $blue;
padding-left: 18px;
color: $blue;
}
&.bold-name {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
}
}
diff --git a/openecomp-ui/resources/scss/components/_notifications.scss b/openecomp-ui/resources/scss/components/_notifications.scss
index 426f05cd89..7165e57ef9 100644
--- a/openecomp-ui/resources/scss/components/_notifications.scss
+++ b/openecomp-ui/resources/scss/components/_notifications.scss
@@ -5,12 +5,12 @@
.modal-header {
padding: 15px 10px 10px;
.modal-title {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
}
}
.modal-body {
padding: 30px 15px;
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
}
diff --git a/openecomp-ui/resources/scss/components/_selectActionTable.scss b/openecomp-ui/resources/scss/components/_selectActionTable.scss
index fa17733374..4e42b6ce5b 100644
--- a/openecomp-ui/resources/scss/components/_selectActionTable.scss
+++ b/openecomp-ui/resources/scss/components/_selectActionTable.scss
@@ -1,16 +1,16 @@
.select-action-table-view {
.svg-icon-wrapper {
flex-direction: row;
-
+
&::before {
- content:"";
+ content:"";
}
.svg-icon {
margin-left: 5px;
margin-right: 5px;
width:16px;
height:16px;
- }
+ }
}
.dummy-icon {
background-color: $white;
@@ -39,34 +39,39 @@
.select-action-table-headers {
display: flex;
background-color: $tlv-light-gray;
- border-color: inherit;
+ border-color: inherit;
.select-action-table-header {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
flex: 1;
border-top: 1px solid;
- border-right: 1px solid;
+ border-right: 1px solid;
border-color: inherit;
padding: 8px 0 7px 20px;
&:first-child {
border-left: 1px solid;
border-color: inherit;
}
- }
+ }
}
.select-action-table-row-wrapper {
display: flex;
- flex-direction: row;
+ flex-direction: row;
margin-bottom: 14px;
- .svg-icon.trash-o {
-
- fill: $dark-gray;
+ .svg-icon-wrapper.trashO {
+ .svg-icon {
+ fill: $dark-gray;
+ }
+ }
+ .svg-icon-wrapper.errorCircle {
+ .svg-icon {
+ fill: $red;
+ }
}
- .svg-icon.error-circle {
- fill: $red;
+ .svg-icon-wrapper.checkCircle {
+ .svg-icon {
+ fill: $green;
+ }
}
- .svg-icon.check-circle {
- fill: $green;
- }
.select-action-table-row {
display: flex;
flex: 1;
@@ -90,7 +95,7 @@
}
}
.form-group {
- margin: 0;
+ margin: 0;
.Select-control {
height:36px;
border: none;
@@ -102,7 +107,7 @@
padding-left: 20px;
padding-right: 50px;
padding-top: 4px;
-
+
}
.Select-placeholder {
color: $dark-gray;
@@ -110,23 +115,23 @@
.Select-arrow-zone {
padding-right: 15px;
}
- }
+ }
}
&:last-child {
border-right: none;
- }
+ }
}
.Select-menu-outer {
border-left: 1px solid $blue;
border-right: 1px solid $blue;
border-bottom: 1px solid $blue;
overflow: auto;
- .Select-menu {
+ .Select-menu {
display: inline-block;
- .Select-option {
+ .Select-option {
width: 100%;
display: inline-block;
- border-bottom: 1px solid $light-gray;
+ border-bottom: 1px solid $light-gray;
&:hover {
background-color: $blue;
color: $white;
@@ -142,9 +147,9 @@
}
&.is-focused {
background-color: transparent;
- }
+ }
}
- }
+ }
}
}
}
diff --git a/openecomp-ui/resources/scss/components/_submitErrorResponse.scss b/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
index e34be01af2..b917dfefeb 100644
--- a/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
+++ b/openecomp-ui/resources/scss/components/_submitErrorResponse.scss
@@ -26,7 +26,7 @@
background-color: $tlv-gray;
padding: 5px;
cursor: pointer;
- .chevron-down {
+ .chevronDown {
width:10px;
height:10px;
margin-right: 10px;
@@ -54,7 +54,7 @@
.component-name-header {
margin-left: 45px;
margin-top: 10px;
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
}
}
}
diff --git a/openecomp-ui/resources/scss/components/_svgIcon.scss b/openecomp-ui/resources/scss/components/_svgIcon.scss
deleted file mode 100644
index fc02f81fd4..0000000000
--- a/openecomp-ui/resources/scss/components/_svgIcon.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-@mixin overrideBootstrapClose(){
- opacity: 1;
- float: none;
- &:hover {
- opacity: 1;
- }
-}
-
-.svg-icon-wrapper {
- display: inline-flex;
- justify-content: center;
- align-items: center;
- &.bottom {
- flex-direction: column;
- .svg-icon-label {
- margin-bottom: 5px;
- }
- }
- &.right {
- float: none;
- .svg-icon-label {
- margin-left: 5px;
- }
- }
- &.top {
- flex-direction: column-reverse;;
- .svg-icon-label {
- margin-top: 5px;
- }
- }
- &.left {
- flex-direction: row-reverse;;
- .svg-icon-label {
- margin-right: 5px;
- }
- }
- // bootstrap override
- &.close {
- @include overrideBootstrapClose();
- }
- .close {
- @include overrideBootstrapClose();
- }
- .svg-icon {
- width: 20px;
- height: 20px;
- }
- .svg-icon-label {
- @extend .body-1;
- }
-}
diff --git a/openecomp-ui/resources/scss/components/_validationForm.scss b/openecomp-ui/resources/scss/components/_validationForm.scss
index 9404f2841a..46269ad699 100644
--- a/openecomp-ui/resources/scss/components/_validationForm.scss
+++ b/openecomp-ui/resources/scss/components/_validationForm.scss
@@ -4,6 +4,9 @@ form {
position: relative;
flex: 1;
}
+ .validation-radio-wrapper {
+ position: relative;
+ }
.nav-tabs {
position: relative;
.invalid-tab:not(.active) {
diff --git a/openecomp-ui/resources/scss/components/_versionController.scss b/openecomp-ui/resources/scss/components/_versionController.scss
index 3c30cdcc37..b454d3496b 100644
--- a/openecomp-ui/resources/scss/components/_versionController.scss
+++ b/openecomp-ui/resources/scss/components/_versionController.scss
@@ -20,7 +20,7 @@
padding-right: 10px;
margin-right: 15px;
margin-left: 10px;
- @extend .body-1;
+ @extend .body-1;
}
.version-section {
.form-group {
@@ -59,7 +59,7 @@
margin-right: 20px;
padding-bottom: 5px;
- .version-controller-lock-closed {
+ .versionControllerLockClosed {
fill: $dark-gray;
width: 21px;
height: 23px;
@@ -71,7 +71,7 @@
fill: $black;
}
}
- .version-controller-lock-open {
+ .versionControllerLockOpen {
fill: $dark-gray;
width: 24px;
height: 28px;
@@ -80,7 +80,7 @@
fill: $black;
}
}
- .version-controller-submit {
+ .versionControllerSubmit {
fill: $blue;
&.disabled {
fill: $light-gray;
@@ -90,7 +90,7 @@
}
}
- .version-controller-revert {
+ .versionControllerRevert {
fill: $dark-gray;
&.disabled {
fill: $light-gray;
@@ -99,7 +99,7 @@
fill: $black;
}
}
- .version-controller-save {
+ .versionControllerSave {
fill: $dark-gray;
&.disabled {
fill: $light-gray;
diff --git a/openecomp-ui/resources/scss/modules/_featureGroup.scss b/openecomp-ui/resources/scss/modules/_featureGroup.scss
index 71e7cee575..8c45d8ec58 100644
--- a/openecomp-ui/resources/scss/modules/_featureGroup.scss
+++ b/openecomp-ui/resources/scss/modules/_featureGroup.scss
@@ -35,7 +35,7 @@
.tab-content {
padding: 50px;
.field-section {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
margin-bottom: 23px;
width: 400px;
color: $black;
diff --git a/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss b/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
index 5ea84e98c4..5de757bf64 100644
--- a/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
@@ -25,7 +25,7 @@
.validation-form-content {
padding: 50px;
.field-section {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
margin-bottom: 23px;
width: 400px;
color: $black;
diff --git a/openecomp-ui/resources/scss/modules/_licenseModel.scss b/openecomp-ui/resources/scss/modules/_licenseModel.scss
index 6912e19bcd..3d65be6274 100644
--- a/openecomp-ui/resources/scss/modules/_licenseModel.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseModel.scss
@@ -5,7 +5,7 @@
.validation-form-content {
padding: 50px;
.field-section {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
margin-bottom: 23px;
width: 400px;
color: $black;
diff --git a/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss b/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
index 4ec7c8d3af..5c74e82d83 100644
--- a/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
@@ -27,7 +27,7 @@
margin-top:5px;
}
.vendor-name {
- @extend .heading-3-medium;
+ @extend .heading-4-semibold;
text-transform: none;
padding-bottom: 15px;
border-bottom: 1px solid $tlv-light-gray;
@@ -137,7 +137,7 @@
background-color: $tlv-gray;
.summary-count-item {
@extend .flex;
- @extend .heading-4-medium;
+ @extend .heading-5-semibold;
padding-top: 5px;
padding-left: 45px;
padding-right: 45px;
@@ -349,7 +349,7 @@
.additional-data {
padding-left: 50px;
.additional-data-name {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
}
.additional-data-col-border {
@@ -373,7 +373,7 @@
.vlm-list-item-title {
@extend .flex;
.item-name {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
flex: 0 1 auto;
margin-bottom: 4px;
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
index 37068975a2..bab2872691 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductAttachmentPage.scss
@@ -8,8 +8,7 @@
border-bottom: 1px solid $light-gray;
& > li {
& > a {
- font-size: 24px;
- font-weight: lighter;
+ @extend .heading-2;
padding-left: 0;
padding-right: 0;
margin-right: 40px;
@@ -55,7 +54,7 @@
.vsp-attachments-heat-validation {
@extend .body-1;
display: flex;
- .svg-icon.exclamation-triangle-line {
+ .svg-icon.exclamationTriangleFull {
fill: $orange;
width: 15px;
height: 15px;
@@ -88,7 +87,7 @@
margin-left: 20px;
}
.tree-header-title-text {
- @extend .heading-4-medium;
+ @extend .heading-4-semibold;
padding-left: 32px;
cursor: pointer;
&.tree-header-title-selected{
@@ -121,7 +120,7 @@
.error-text, .warning-text {
@extend .body-3;
&.large {
- @extend .heading-4-medium;
+ @extend .heading-4-semibold;
}
}
}
@@ -146,9 +145,11 @@
justify-content: space-between;
height: 40px;
align-items: center;
- .svg-icon.chevron-down, .svg-icon.chevron-up {
- height: 10px;
- width: 10px;
+ .svg-icon-wrapper.chevronDown, .svg-icon-wrapper.chevronUp {
+ .svg-icon {
+ height: 10px;
+ width: 10px;
+ }
}
&:after {
@@ -227,7 +228,7 @@
margin-left: 15px;
}
.error-file-name {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
margin-right: 5px;
}
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductComponentGeneral.scss b/openecomp-ui/resources/scss/modules/_softwareProductComponentGeneral.scss
index 67d76f5454..6c5bcee03c 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductComponentGeneral.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductComponentGeneral.scss
@@ -3,8 +3,11 @@
.one-line-textarea {
height: 30px;
}
- .multi-line-textarea > textarea {
- height: 113px;
+ .multi-line-textarea {
+ height: calc(100% - 25px);
+ textarea {
+ height: inherit;
+ }
}
}
.additional-validation-form {
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductComponentImage.scss b/openecomp-ui/resources/scss/modules/_softwareProductComponentImage.scss
new file mode 100644
index 0000000000..068404fcb6
--- /dev/null
+++ b/openecomp-ui/resources/scss/modules/_softwareProductComponentImage.scss
@@ -0,0 +1,58 @@
+.image-modal-new {
+ .modal-dialog {
+ width: 600px;
+ }
+ .image-filename {
+ width: 480px;
+ }
+}
+
+.image-modal-edit {
+ .modal-dialog {
+ width: 910px;
+ }
+ .image-filename {
+ width: 550px;
+ }
+}
+
+.image-modal-edit, .image-modal-new {
+ .modal-body {
+ padding: 0;
+ }
+ .vsp-components-image-editor {
+
+ .image-format, .image-md5, .image-version {
+ width: 200px;
+ }
+ .image-version {
+ padding-left: 30px;
+ }
+ .section-title {
+ text-transform: capitalize;
+ font-size: 18px;
+ }
+ }
+}
+
+.vsp-components-image {
+ .list-editor-item-view-content {
+ flex:1;
+ min-width: 0;
+ }
+ .list-editor-item-view-controller {
+ padding-top: 5px;
+ }
+ .image-filename-cell {
+ display: flex;
+ .image-filename {
+ white-space: nowrap;
+ overflow: hidden;
+ display: inline-block;
+ text-overflow: ellipsis;
+  span {
+ @include ellipsis(100%);
+ }
+ }
+ }
+}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductComponentNetwork.scss b/openecomp-ui/resources/scss/modules/_softwareProductComponentNetwork.scss
index e14ab02fcd..402918bc5e 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductComponentNetwork.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductComponentNetwork.scss
@@ -10,24 +10,39 @@
}
.list-editor-view {
margin-top: 50px;
+ .manual-title {
+ @extend .body-1-semibold;
+ }
}
}
-.network-nic-modal {
- .modal-body {
- padding: 0;
- }
+.network-nic-modal-create {
+ .network-type-radio {
+ display: flex;
+ }
+}
+.network-nic-modal-edit, .network-nic-modal-create {
+ .modal-body {
+ padding: 0;
+ }
+ .validation-form-content {
+ padding-left: 50px;
+ padding-right: 50px;
+ padding-top: 20px;
+ }
+}
+.network-nic-modal-edit {
+ .modal-dialog {
+ width: 900px;
+ }
.vsp-components-network-editor {
.editor-data {
- padding-left: 50px;
- padding-right: 50px;
- padding-top: 20px;
height: 500px;
.grid-section {
padding-bottom: 15px;
.section-title {
@extend .heading-5;
padding-bottom: 10px;
- padding-left: 0px;
+ padding-left: 0;
}
}
.part-title {
@@ -38,7 +53,7 @@
.part-title-small {
@extend .heading-3;
padding-bottom: 10px;
- padding-left: 0px;
+ padding-left: 0;
}
.network-radio label {
font-size: 15px;
@@ -51,7 +66,7 @@
.top-row {
display: flex;
.part-title-small {
- padding-left: 0px;
+ padding-left: 0;
&.packets {
flex: 0 0 52%;
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductComponentProcessesPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductComponentProcessesPage.scss
index a6613190fd..be4caacfb5 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductComponentProcessesPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductComponentProcessesPage.scss
@@ -5,4 +5,8 @@
.component-process-description > textarea {
height: 113px;
}
+}
+
+.software-product-landing-view-right-side.vsp-components-processes-page {
+ overflow-y: initial;
} \ No newline at end of file
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductCreatePage.scss b/openecomp-ui/resources/scss/modules/_softwareProductCreatePage.scss
index deac736cfa..b788a86e44 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductCreatePage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductCreatePage.scss
@@ -15,7 +15,7 @@
flex: 45%;
.validation-input-wrapper {
.field-section {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
margin-bottom: 23px;
color: $black;
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductDependencies.scss b/openecomp-ui/resources/scss/modules/_softwareProductDependencies.scss
index 01a50dd741..8fb739234f 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductDependencies.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductDependencies.scss
@@ -15,11 +15,11 @@
color: $dark-blue;
}
}
- .select-action-table-view {
+ .select-action-table-view {
min-width: 770px;
}
.select-action-table-header {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
color: $text-black;
}
-} \ No newline at end of file
+}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductDeployment.scss b/openecomp-ui/resources/scss/modules/_softwareProductDeployment.scss
new file mode 100644
index 0000000000..e0de8fc969
--- /dev/null
+++ b/openecomp-ui/resources/scss/modules/_softwareProductDeployment.scss
@@ -0,0 +1,55 @@
+.deployment-flavor-editor {
+ .modal-dialog {
+ width: 780px;
+ }
+ .grid-section {
+ padding-bottom: 25px;
+ }
+ .deployment-feature-groups-section.no-feature-groups {
+ padding-bottom: 0;
+ .form-group {
+ margin-bottom: 5px;
+ }
+ }
+ .deployment-feature-group-warning-section {
+ padding-bottom: 30px;
+ span {
+ @extend .body-2;
+ color: $red;
+ }
+ }
+ .grid-section.vfc-table {
+ .section-title {
+ padding-bottom: 10px;
+ }
+ }
+ .modal-content {
+ .modal-body {
+ padding: 0;
+ .validation-form-content {
+ .grid-col-1 {
+ flex-basis: 35%;
+ }
+
+ .Select-value, .Select-placeholder {
+ font-family: omnes-regular, sans-serif;
+ }
+
+ .grid-section.vfc-table {
+ padding-bottom: 50px;
+ .Select-menu {
+ max-height: 100px;
+ }
+
+ }
+
+ .grid-col-3 {
+ flex-basis: 65%;
+ }
+ padding-left: 54px;
+ padding-right: 33px;
+ overflow-y: visible;
+ }
+ }
+ }
+}
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
index e75b110425..56860101b2 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductLandingPage.scss
@@ -3,11 +3,11 @@
padding-right: 30px;
padding-bottom: 10px;
.title {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
.file-name {
padding-left: 5px;
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
}
@@ -28,7 +28,7 @@
.missing-license {
display: flex;
align-items: baseline;
- .svg-icon.exclamation-triangle-full {
+ .svg-icon-wrapper.exclamationTriangleFull .svg-icon{
fill: $orange;
}
.warning-text {
@@ -46,7 +46,7 @@
}
}
.name {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
.software-product-landing-view-right-side {
@extend .flex;
@@ -76,7 +76,7 @@
@extend .flex-column;
&.title-section {
flex: 0.8;
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
}
&.title-text {
margin-bottom: 24px;
@@ -125,7 +125,7 @@
}
}
.title {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
}
.software-product-landing-view-heading-title {
@extend .section-title;
@@ -181,7 +181,7 @@
}
.drag-text {
color: $blue;
- font-weight: bolder;
+ @extend .body-1-semibold;
}
.or-text {
margin-top: 10px;
diff --git a/openecomp-ui/resources/scss/modules/_softwareProductProcessesPage.scss b/openecomp-ui/resources/scss/modules/_softwareProductProcessesPage.scss
index 4956616687..d75e7447ab 100644
--- a/openecomp-ui/resources/scss/modules/_softwareProductProcessesPage.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareProductProcessesPage.scss
@@ -25,13 +25,11 @@
align-items: center;
.upload-btn {
- padding: 20px;
- padding-top: 7px;
- padding-bottom: 3px;
+ padding: 4px 20px;
}
.drag-text {
color: $blue;
- font-weight: bolder;
+ @extend .body-1-semibold;
}
.or-text {
margin-top: 10px;
@@ -39,11 +37,9 @@
}
}
.vsp-processes-editor-data {
- padding: 28px 54px;
transition: border .2s;
.vsp-process-dropzone-view {
background-color: transparent;
- padding: 15px;
&.active-dragging {
border: 3px dashed $dark-blue;
border-radius: 20px;
@@ -53,7 +49,7 @@
}
.grid-section {
.section-title {
- padding-bottom: 0px;
+ padding-bottom: 0;
}
}
}
@@ -66,7 +62,8 @@
}
}
-.vsp-processes-page {
+.software-product-landing-view-right-side.vsp-processes-page {
+ overflow-y: initial;
.processes-list {
@extend .flex-column;
}
diff --git a/openecomp-ui/resources/scss/modules/_softwareproductComponentLoadBalancing.scss b/openecomp-ui/resources/scss/modules/_softwareproductComponentLoadBalancing.scss
index 04cb3c2051..ceae4a00de 100644
--- a/openecomp-ui/resources/scss/modules/_softwareproductComponentLoadBalancing.scss
+++ b/openecomp-ui/resources/scss/modules/_softwareproductComponentLoadBalancing.scss
@@ -1,45 +1,47 @@
.vsp-components-load-balancing {
- .svg-icon-wrapper {
- position: relative;
- top: -3px;
- .svg-icon.chevron-up, .svg-icon.chevron-down {
- width: 10px;
- height: 10px;
- }
+ .svg-icon-wrapper {
+ position: relative;
+ top: -3px;
+ &.chevronUp, &.chevronDown {
+ .svg-icon {
+ width: 10px;
+ height: 10px;
+ }
}
+ }
.halb-data {
- .load-balancing-page-title {
- @extend .section-title;
- &:first-child {
- padding: 0 0 40px 0;
- }
- }
- .question {
- padding-top: 10px;
- &:first-child {
- padding-top: 0;
- }
- }
- .title {
- @extend .body-1-medium;
- margin-bottom: 8px;
- cursor: pointer;
- .svg-icon {
- @include transition(transform 0.3s);
- margin-right: 5px;
- position: relative;
- top: 4px;
- }
- }
- .add-padding {
- padding-bottom: 20px;
- }
- .new-line {
- margin-left: 16px;
- }
- textarea.form-control {
- height: 90px;
- }
+ .load-balancing-page-title {
+ @extend .section-title;
+ &:first-child {
+ padding: 0 0 40px 0;
+ }
+ }
+ .question {
+ padding-top: 10px;
+ &:first-child {
+ padding-top: 0;
+ }
+ }
+ .title {
+ @extend .body-1-semibold;
+ margin-bottom: 8px;
+ cursor: pointer;
+ .svg-icon {
+ @include transition(transform 0.3s);
+ margin-right: 5px;
+ position: relative;
+ top: 4px;
+ }
+ }
+ .add-padding {
+ padding-bottom: 20px;
+ }
+ .new-line {
+ margin-left: 16px;
+ }
+ textarea.form-control {
+ height: 90px;
+ }
}
}
diff --git a/openecomp-ui/resources/scss/modules/_vspComponentCompute.scss b/openecomp-ui/resources/scss/modules/_vspComponentCompute.scss
new file mode 100644
index 0000000000..ee8cfa5c7f
--- /dev/null
+++ b/openecomp-ui/resources/scss/modules/_vspComponentCompute.scss
@@ -0,0 +1,19 @@
+.vsp-component-computeFlavor-view {
+ .component-questionnaire-validation-form {
+ .vm-sizing-section {
+ .section-title {
+ text-transform: capitalize;
+ font-size: 18px;
+ }
+ .duplicate-title-line label.control-label{
+ height: 2.7em;
+ }
+ }
+ }
+}
+
+.compute-flavor-editor-modal-edit {
+ .modal-lg {
+ width: 1182px;
+ }
+} \ No newline at end of file
diff --git a/openecomp-ui/resources/scss/modules/_vspComponentMonitoring.scss b/openecomp-ui/resources/scss/modules/_vspComponentMonitoring.scss
index c49e4f551d..4bcf7940eb 100644
--- a/openecomp-ui/resources/scss/modules/_vspComponentMonitoring.scss
+++ b/openecomp-ui/resources/scss/modules/_vspComponentMonitoring.scss
@@ -4,7 +4,7 @@
.section-title {
padding-bottom: 20px;
}
- &:first-child {
+ &:not(:last-child) {
padding-bottom: 50px;
}
.software-product-landing-view-top-block-col-upl {
@@ -18,13 +18,11 @@
padding: 25px 0;
align-items: center;
.upload-btn {
- padding: 20px;
- padding-top: 7px;
- padding-bottom: 3px;
+ padding: 4px 20px;
}
.drag-text {
color: $blue;
- font-weight: bolder;
+ @extend .body-1-semibold;
}
.or-text {
margin-top: 10px;
diff --git a/openecomp-ui/resources/scss/modules/_vspComponentQuestionnaire.scss b/openecomp-ui/resources/scss/modules/_vspComponentQuestionnaire.scss
index d194c678b9..5696b354a7 100644
--- a/openecomp-ui/resources/scss/modules/_vspComponentQuestionnaire.scss
+++ b/openecomp-ui/resources/scss/modules/_vspComponentQuestionnaire.scss
@@ -25,7 +25,7 @@
.vertical-flex {
flex-direction: column;
.control-label {
- @extend .body-2-medium;
+ @extend .body-2-semibold;
}
.radio-options-content-row {
display: flex;
diff --git a/openecomp-ui/resources/scss/modules/_vspHeatSetup.scss b/openecomp-ui/resources/scss/modules/_vspHeatSetup.scss
index 59e983686b..75d96b4c85 100644
--- a/openecomp-ui/resources/scss/modules/_vspHeatSetup.scss
+++ b/openecomp-ui/resources/scss/modules/_vspHeatSetup.scss
@@ -82,31 +82,35 @@
min-width: 0;
}
- .svg-icon.trash-o {
+ .svg-icon-wrapper.trashO {
+ .svg-icon {
fill: $dark-gray;
height: 18px;
width: 18px;
&:hover {
- fill: $black;
+ fill: $black;
}
+ }
}
.module-title-by-type {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
margin-right: 3px;
}
.modules-list-item-filename {
display: flex;
align-items: center;
- .svg-icon.pencil {
- height: 15px;
- width: 15px;
+ .svg-icon-wrapper.pencil {
+ .svg-icon {
+ height: 15px;
+ width: 15px;
+ }
margin-left: 3px;
opacity: 0;
}
.filename-text {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
}
@@ -120,7 +124,7 @@
padding: 0;
.name-edit {
padding: 4px;
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
height: 100%;
border: 1px solid $light-gray;
width: 400px;
@@ -140,12 +144,14 @@
border-color: transparent;
}
}
- .svg-icon.pencil {
+ .svg-icon-wrapper.pencil {
margin-left: 10px;
opacity: 1;
- stroke: $dark-gray;
- &:hover {
- stroke: $black;
+ .svg-icon {
+ stroke: $dark-gray;
+ &:hover {
+ stroke: $black;
+ }
}
}
}
@@ -158,7 +164,7 @@
.Select-option {
@extend .body-1;
&.is-selected {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
background-color: $white;
}
&.is-focused {
@@ -220,7 +226,7 @@
}
.artifact-files-header {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
display: flex;
margin-bottom: 10px;
justify-content: space-between;
@@ -248,7 +254,6 @@
.unassigned-files {
margin-top: 30px;
border: 1px solid $light-gray;
- width: 25%;
background-color: $white;
height: 250px;
width: 250px;
@@ -258,7 +263,7 @@
top: 10px;
.unassigned-files-title {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
background-color: $tlv-gray;
padding: 11px 0 9px 15px;
}
@@ -284,16 +289,20 @@
display: flex;
align-items: center;
margin-bottom: 10px;
- .svg-icon.angle-right {
+ .svg-icon-wrapper.angleRight {
+ .svg-icon {
height: 10px;
width: 10px;
margin-left: 7px;
fill: $blue;
+ }
}
&:hover {
color: $dark-blue;
- .svg-icon.angle-right {
+ .svg-icon-wrapper.angleRight {
+ .svg-icon {
fill: $dark-blue;
+ }
}
}
}
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
index 5ce8e12ec3..07f86aba2a 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
@@ -1,8 +1,8 @@
.catalog-tile {
- &:hover {
- box-shadow: 0.3px 5px 12.8px 1.3px rgba(24, 24, 25, 0.15);
- border: 1px solid $light-gray;
- }
+ &:hover {
+ box-shadow: 0.3px 5px 12.8px 1.3px rgba(24, 24, 25, 0.15);
+ border: 1px solid $light-gray;
+ }
.catalog-tile-top {
position: relative;
flex: 1;
@@ -11,48 +11,54 @@
padding-left: 10px;
align-items: flex-start;
flex-direction: column;
- .catalog-tile-content {
- margin-top: auto;
- width: 180px;
- }
-
+ .catalog-tile-content {
+ margin-top: auto;
+ width: 180px;
+ }
.catalog-tile-type {
- display: block;
- margin-top: -25px;
- font-size: $heading-font-5;
- &.license-model-type {
- color: $purple;
- }
- &.software-product-type {
- color: $blue;
- }
+ display: block;
+ margin-top: -25px;
+ font-size: $heading-font-5;
+ &.license-model-type {
+ color: $purple;
+ }
+ &.software-product-type {
+ color: $blue;
+ }
}
.catalog-tile-entity-details {
- margin-top:23px;
- .catalog-tile-version-info{
- display: flex;
- justify-content: space-between;
+ margin-top: 20px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ flex: 0.8;
+ .catalog-tile-version-info {
+ display: flex;
+ justify-content: space-between;
- .catalog-tile-item-version {
- @extend .body-2;
- line-height: 6px;
- }
- }
- .catalog-tile-vendor-name {
- @extend .body-3-medium;
- color: $gray;
- line-height: 12px;
- @include ellipsis(auto,inline-block,178px);
+ .catalog-tile-item-version {
+ @extend .body-2;
+ line-height: 6px;
}
+ }
+ .catalog-tile-vendor-name {
+ @extend .body-3;
+ flex: 0.4;
+ align-self: baseline;
+ color: $gray;
+ line-height: 10px;
+ @include ellipsis(auto, inline-block, 178px);
+ }
- }
- .catalog-tile-item-name {
- @extend .heading-5-medium;
- color: $black;
- @include ellipsis(auto,inline-block,175px);
- }
}
+ .catalog-tile-item-name {
+ @extend .heading-5-semibold;
+ color: $black;
+ @include ellipsis(auto, inline-block, 175px);
+ line-height: inherit;
+ }
+ }
.catalog-tile-icon {
width: 58px;
@@ -65,32 +71,39 @@
align-self: center;
height: 58px;
width: 58px;
- margin-left: 122px;
+ margin-left: 122px;
background-repeat: no-repeat;
- .svg-icon {
+ .svg-icon-wrapper {
&.vendor {
- fill: $dark-gray;
- margin-top: 22px;
- width: 53px;
- height: 47px;
- &:hover {
+ .svg-icon {
fill: $dark-gray;
+ width: 53px;
+ height: 47px;
+ &:hover {
+ fill: $dark-gray;
+ }
}
+ margin-top: 22px;
+
}
&.vsp {
- fill: $light-blue;
+ .svg-icon {
+ fill: $light-blue;
+ width: 60px;
+ height: 40px;
+ }
margin-top: 18px;
margin-left: 3px;
- width: 60px;
- height: 40px;
}
&.vlm {
- fill: $purple;
margin-top: 18px;
- width: 45px;
- height: 53px;
- }
+ .svg-icon {
+ fill: $purple;
+ width: 45px;
+ height: 53px;
+ }
+ }
}
}
}
@@ -99,13 +112,17 @@
padding-top: 5px;
display: flex;
justify-content: space-between;
- margin-top:2px;
+ margin-top: 2px;
padding-bottom: 3px;
- @extend .body-2-medium;
- .svg-icon.plus {
- height: 9px;
- width: 9px;
- fill: $blue;
+ @extend .body-2-semibold;
+ .svg-icon-wrapper {
+ &.plus {
+ .svg-icon {
+ height: 9px;
+ width: 9px;
+ fill: $blue;
+ }
+ }
}
.catalog-tile-item-details {
overflow: hidden;
@@ -113,27 +130,27 @@
.catalog-tile-add-new-vsp {
color: $blue;
- margin-left:40px;
+ margin-left: 40px;
}
.catalog-tile-locking-user-name {
@extend .body-2;
- @include ellipsis(auto,inline-block,180px);
+ @include ellipsis(auto, inline-block, 180px);
}
- .catalog-tile-check-in-status {
- .svg-icon-wrapper {
- .svg-icon {
- &.locked {
- margin-left: 7px;
- width: 11px;
- fill: $gray;
- }
- &.unlocked {
- margin-left: 7px;
- width: 11px;
- fill: $gray;
- }
- }
- }
+ .catalog-tile-check-in-status {
+ .svg-icon-wrapper {
+ &.locked {
+ .svg-icon {
+ width: 11px;
+ fill: $gray;
+ }
}
+ &.unlocked {
+ .svg-icon {
+ width: 11px;
+ fill: $gray;
+ }
+ }
+ }
+ }
}
}
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_createItemTile.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_createItemTile.scss
index b9f83fc452..aa3cf04c4f 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_createItemTile.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_createItemTile.scss
@@ -22,7 +22,7 @@
}
&:hover {
box-shadow: 0.3px 5px 12.8px 1.3px rgba(24, 24, 25, 0.15);
-
+
border: 1px solid $light-gray;
}
&:only-child {
@@ -33,7 +33,7 @@
margin: 0 0 15px 0;
}
.create-item-text {
- @extend .heading-4-medium;
+ @extend .heading-4-semibold;
}
}
.create-item-plus-icon{
@@ -42,14 +42,14 @@
margin: -5px 12px 0 0;
.svg-icon.plus {
height: 19px;
- width: 19px;
+ width: 19px;
}
}
&.vlm-type {
.create-item-text {
color: $purple;
}
-
+
.create-item-plus-icon {
fill: $purple;
}
@@ -58,14 +58,14 @@
.create-item-text {
color: $blue;
}
-
+
.create-item-plus-icon {
fill: $blue;
}
}
.create-item-text {
width: 140px;
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
}
}
}
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_onboardHeader.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_onboardHeader.scss
index da4c017d39..32ebac98cf 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_onboardHeader.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_onboardHeader.scss
@@ -15,7 +15,7 @@
flex-direction: row;
margin-left: 60px;
.onboard-header-tab {
- @extend .body-1-medium;
+ @extend .body-1-semibold;
margin-right: 40px;
cursor: pointer;
display: flex;
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
index 79a64f84ee..5972bb2d67 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
@@ -1,87 +1,87 @@
@mixin flipOverlayDirection($itemsInRow) {
- &:nth-child(#{$itemsInRow}n){
- .vsp-overlay-wrapper {
- right: 74%;
- left: inherit;
- .vsp-overlay-arrow {
- border-right-color: transparent;
- border-left-color: $tlv-light-gray;
- border-right-width: 2px;
- border-left-width: 6px;
- left: 100%;
- &:after {
- border-left-color: $white;
- border-right-color: transparent;
- left: -11px;
- }
- }
+ &:nth-child(#{$itemsInRow}n) {
+ .vsp-overlay-wrapper {
+ right: 74%;
+ left: inherit;
+ .vsp-overlay-arrow {
+ border-right-color: transparent;
+ border-left-color: $tlv-light-gray;
+ border-right-width: 2px;
+ border-left-width: 6px;
+ left: 100%;
+ &:after {
+ border-left-color: $white;
+ border-right-color: transparent;
+ left: -11px;
}
+ }
+ }
}
}
-
.catalog-tile.vendor-type {
position: relative;
.catalog-tile-top {
- .catalog-tile-item-name {
- margin-top:21px;
- }
- .catalog-tile-vsp-count {
- @extend .body-3-medium;
- margin-top: 8px;
- margin-left: 54px;
- margin-bottom: 9px;
- color: $dark-gray;
- border: 1px solid $dark-gray;
- padding: 0 15px 0 15px;
- border-radius: 15px;
-
- &.clickable {
- &:hover {
- background-color: #eceff3;
- color: $dark-gray ;
- }
- }
- &.active {
- background-color: $white;
- color: $dark-gray ;
- }
+ .catalog-tile-item-name {
+ margin-top: 21px;
+ line-height: inherit;
+ }
+ .catalog-tile-vsp-count {
+ @extend .body-3-semibold;
+ margin-top: 8px;
+ margin-left: 54px;
+ margin-bottom: 9px;
+ color: $dark-gray;
+ border: 1px solid $dark-gray;
+ padding: 0 15px 0 15px;
+ border-radius: 15px;
+
+ &.clickable {
+ &:hover {
+ background-color: #eceff3;
+ color: $dark-gray;
}
+ }
+ &.active {
+ background-color: $white;
+ color: $dark-gray;
+ }
+ }
}
.catalog-tile-content {
- flex-basis: auto;
- max-height: 31px;
- height: 31px;
- text-align: center;
- color: $blue;
- display: block;
- background-color: $white;
- margin-bottom: 7px;
- padding-bottom: 0px;
- .create-new-vsp-button {
- margin-top: 1px;
- }
- &:hover {
- color: $dark-blue;
- .svg-icon.plus {
- fill: $dark-blue;
- }
- }
- &.disabled {
- cursor: default;
- }
+ flex-basis: auto;
+ max-height: 31px;
+ height: 31px;
+ text-align: center;
+ color: $blue;
+ display: block;
+ background-color: $white;
+ margin-bottom: 7px;
+ padding-bottom: 0px;
+ .create-new-vsp-button {
+ margin-top: 1px;
+ }
+ &:hover {
+ color: $dark-blue;
+ .svg-icon.plus {
+ fill: $dark-blue;
+ }
+ }
+ &.disabled {
+ cursor: default;
+ }
}
- @media (min-width: 1900px){
+ @media (min-width: 1900px) {
@include flipOverlayDirection($itemsInRow: 8);
}
- @media (min-width: 1586px) and (max-width: 1899px){
+ @media (min-width: 1586px) and (max-width: 1899px) {
@include flipOverlayDirection($itemsInRow: 7);
}
- @media (min-width: 1368px) and (max-width: 1585px){
+ @media (min-width: 1368px) and (max-width: 1585px) {
@include flipOverlayDirection($itemsInRow: 6);
}
- @media (max-width: 1367px){
+ @media (max-width: 1367px) {
@include flipOverlayDirection($itemsInRow: 5);
}
@import "vspOverlay";
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vspOverlay.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vspOverlay.scss
index 8816ca5df9..80ed7385e0 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vspOverlay.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vspOverlay.scss
@@ -41,7 +41,7 @@
flex-direction: column;
margin: 10px 0 10px 0;
.vsp-overlay-title {
- @extend .heading-5-medium;
+ @extend .heading-5-semibold;
margin-bottom: 15px;
padding: 10px 20px 10px 20px;
background: $highlight-gray;
diff --git a/openecomp-ui/resources/scss/onboarding.scss b/openecomp-ui/resources/scss/onboarding.scss
index 6b892ac0a4..d7d4586354 100644
--- a/openecomp-ui/resources/scss/onboarding.scss
+++ b/openecomp-ui/resources/scss/onboarding.scss
@@ -1,12 +1,68 @@
.dox-ui {
@import "bootstrap";
@import "~react-select/dist/react-select.min.css";
+ @import "~react-datepicker/dist/react-datepicker.min.css";
@import "common";
@import "components";
@import "modules";
}
+/* Out of namespace context for datepicker */
+div[data-reactroot].customized-date-picker-calendar {
+ @import "common/variables";
+ @import "common/typography";
+ border-radius: 2px;
+ border-color: $light-gray;
+ margin-top: -8px;
+ .react-datepicker__triangle {
+ margin-top: 0px;
+ }
+ .react-datepicker__navigation--previous {
+ border: none;
+ width: 15px;
+ height: 15px;
+ margin-top: 2px;
+ content: url(../images/angle-left.svg);
+ }
+ .react-datepicker__navigation--next {
+ border: none;
+ width: 15px;
+ height: 15px;
+ margin-top: 2px;
+ content: url(../images/angle-right.svg);
+ }
+ .react-datepicker__month-container {
+ .react-datepicker__header {
+ background-color: $background-gray;
+ border-bottom: none;
+ .react-datepicker__current-month {
+ @extend .heading-5;
+ background-color: $background-gray;
+ margin-bottom: 10px;
+ }
+ .react-datepicker__day-names {
+ @extend .heading-5;
+ background-color: $white;
+ }
+ }
+ .react-datepicker__day--selected {
+ @extend .heading-5;
+ border-radius: 20px;
+ background-color: $blue;
+ &:hover {
+ background-color: $dark-blue;
+ }
+ }
+ .react-datepicker__day {
+ @extend .heading-5;
+ &:hover {
+ border-radius: 20px;
+ }
+ }
+ }
+}
+
/* Out of namespace context for tooltips */
div[data-reactroot].tooltip {
@import "common/variables";
@@ -16,11 +72,26 @@ div[data-reactroot].tooltip {
opacity: 1;
}
&.validation-error-message {
- &.bottom {
- .tooltip-arrow {
- border-bottom-color: $red !important;
- }
- }
+ &.bottom {
+ .tooltip-arrow {
+ border-bottom-color: $red !important;
+ }
+ }
+ &.left {
+ .tooltip-arrow {
+ border-left-color: $red !important;
+ }
+ }
+ &.right {
+ .tooltip-arrow {
+ border-right-color: $red !important;
+ }
+ }
+ &.top {
+ .tooltip-arrow {
+ border-top-color: $red !important;
+ }
+ }
}
&.bottom {
.tooltip-arrow {
diff --git a/openecomp-ui/runLocalFE.cmd b/openecomp-ui/runLocalFE.cmd
new file mode 100644
index 0000000000..ee718f2a0b
--- /dev/null
+++ b/openecomp-ui/runLocalFE.cmd
@@ -0,0 +1,38 @@
+@REM /*!
+@REM * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+@REM *
+@REM * Licensed under the Apache License, Version 2.0 (the "License");
+@REM * you may not use this file except in compliance with the License.
+@REM * You may obtain a copy of the License at
+@REM *
+@REM * http://www.apache.org/licenses/LICENSE-2.0
+@REM *
+@REM * Unless required by applicable law or agreed to in writing, software
+@REM * distributed under the License is distributed on an "AS IS" BASIS,
+@REM * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+@REM * or implied. See the License for the specific language governing
+@REM * permissions and limitations under the License.
+@REM */
+
+@echo off
+
+SETLOCAL
+
+set uiDir=%cd%
+set currentDir=%cd%
+if not ("%1" == "") set uiDir=%1
+
+echo check npm version:
+call npm -version
+if errorlevel 1 (
+ echo install node with npm from https://nodejs.org/en/download/
+ goto done
+)
+echo npm is installed
+echo one more check...
+call npm list prompt
+if errorlevel 1 (
+ npm install prompt
+)
+echo ready to run
+call node runLocalFE.js
diff --git a/openecomp-ui/runLocalFE.js b/openecomp-ui/runLocalFE.js
new file mode 100644
index 0000000000..1205aa48f9
--- /dev/null
+++ b/openecomp-ui/runLocalFE.js
@@ -0,0 +1,104 @@
+/*!
+ * 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.
+ */
+
+var exec = require('child_process');
+var prompt = require('prompt');
+var fs = require('fs');
+
+
+function runNpm(target, dir) {
+ console.log('\n---> npm ' + target);
+ let options = {stdio:[0,1,2]};
+ if (dir) options.cwd = dir;
+ exec.execSync("npm " + target,options);
+}
+
+function npmInstallAll() {
+ setNpmconfig();
+ if (!fs.existsSync('../dox-sequence-diagram-ui/node_modules')) {
+ console.log('--> first time installing dox-sequence-diagram-ui');
+ runNpm('install', '../dox-sequence-diagram-ui');
+ };
+ runNpm('install');
+ // just to make sure restful js is installed properly
+ runNpm('install jquery', 'node_modules/restful-js');
+}
+
+function getDevConfig() {
+ var content=fs.readFileSync('./devConfig.json');
+ var data=JSON.parse(content);
+ console.log('Current ATT server is set to: ' + data.proxyATTTarget);
+ if (!data.proxyTarget) {
+ console.log('Current onboarding server defaults to the ATT server');
+ } else {
+ console.log('Current onboarding server set to: ' + data.proxyTarget);
+ }
+ return data;
+}
+
+function setNpmconfig() {
+ exec.execSync("npm config set proxy http://genproxy.amdocs.com:8080");
+ exec.execSync("npm config set https_proxy http://genproxy.amdocs.com:8080");
+}
+
+// getting the run details before starting to work
+prompt.start();
+prompt.get([{
+ name:'runType',
+ type:'number',
+ default:1,
+ description: 'Choose run: 1-test and build, 2- run frontend server '
+ }], function (err, result) {
+ if (result.runType === 2) {
+ console.log('--> Reading the configuration for the local server');
+ if (!fs.existsSync('./devConfig.json')) {
+ console.log('First time - setting up the devConfig.json file');
+ fs.writeFileSync('./devConfig.json', fs.readFileSync('./devConfig.defaults.json'));
+ }
+ let data = getDevConfig();
+ let attProxyField = {
+ name:'attProxyTarget',
+ description:'ATT server'
+ };
+ let proxyField = {
+ name:'proxyTarget',
+ description:'onboarding server, \'null\' to reset'
+ };
+ if (data.proxyATTTarget) attProxyField.default = data.proxyATTTarget;
+ if (data.proxyTarget) proxyField.default = data.proxyTarget;
+ prompt.get([ attProxyField, proxyField], function (err,result) {
+ data.proxyATTTarget = result.attProxyTarget;
+ if(result.proxyTarget) {
+ if (result.proxyTarget === 'null') {
+ if (data.proxyTarget) delete data.proxyTarget;
+ } else {
+ data.proxyTarget = result.proxyTarget;
+ }
+ }
+ fs.writeFileSync('./devConfig.json', JSON.stringify(data, null, 2));
+ getDevConfig();
+ console.log('FE server will be answering on: http://localhost:9000/sdc1/proxy-designer1#/onboardVendor');
+ npmInstallAll();
+ runNpm("start");
+ }
+ );
+ } else {
+ npmInstallAll();
+ runNpm("run build");
+ runNpm("run test");
+ }
+});
+
diff --git a/openecomp-ui/src/index.html b/openecomp-ui/src/index.html
index 7f4fe04f06..d4fab4dcb2 100644
--- a/openecomp-ui/src/index.html
+++ b/openecomp-ui/src/index.html
@@ -9,34 +9,6 @@
<body>
<div id="sdc-app" class="sdc-app"></div>
-<script>
-
-(function(){
-
- /**
- * Bundle Import script( By Language)!
- */
-
- var DEFAULT_LANG = 'en';
- var lang = localStorage.getItem('user_locale') || ((navigator && (navigator.language || navigator.userLanguage)) || DEFAULT_LANG).toLowerCase();
-
- function writeAppBundle() {
- var supportedLangs = [
- //<!--prod:supported-langs--><!--/prod:supported-langs-->
- ];
- if(-1 === supportedLangs.indexOf(lang)) {
- lang = DEFAULT_LANG;
- }
-
- var bundleScript = document.createElement('script');
- bundleScript.src = 'bundle_' + lang + '.js';
- document.write(bundleScript.outerHTML);
- }
-
- writeAppBundle();
-
-})()
-</script>
-
</body>
</html>
+npm
diff --git a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
index 0759f2c28d..5fe592a663 100644
--- a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
+++ b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
@@ -16,7 +16,7 @@
import React, {Component} from 'react';
import ListGroupItem from 'react-bootstrap/lib/ListGroupItem.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import Icon from 'nfvo-components/icon/Icon.jsx';
import {Collapse} from 'react-bootstrap';
/**
@@ -145,7 +145,7 @@ class ErrorBlock extends React.Component {
const ErrorHeader = ({errorType, collapsed, onClick}) => {
return(
<div onClick={onClick} className='error-block-header'>
- <SVGIcon iconClassName={collapsed ? '' : 'right' } name='chevron-down'/>
+ <SVGIcon iconClassName={collapsed ? '' : 'right' } name='chevronDown'/>
{errorType}
</div>
);
diff --git a/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx b/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx
new file mode 100644
index 0000000000..cd39376bda
--- /dev/null
+++ b/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx
@@ -0,0 +1,75 @@
+import React from 'react';
+import DatePicker from 'react-datepicker';
+import moment from 'moment';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
+
+class CustomInput extends React.Component {
+
+ static propTypes = {
+ placeHolderText: React.PropTypes.string,
+ onChange: React.PropTypes.func,
+ onClick: React.PropTypes.func,
+ value: React.PropTypes.string
+ };
+
+ render() {
+ const {placeholderText, onClick, onClear, inputRef, value: date} = this.props;
+ const text = date ? date : placeholderText;
+ const textStyle = date ? '' : 'placeholder';
+ return (
+ <div ref={inputRef} className='datepicker-custom-input'>
+ <div onClick={onClick} className={`datepicker-text ${textStyle}`}>{text}</div>
+ <div onClick={onClear} className='clear-input'/>
+ <SVGIcon onClick={onClick} name='calendar'/>
+ </div>
+ );
+ }
+};
+
+const parseDate = (date, format) => {
+ return typeof date === 'number' ? moment.unix(date) : moment(date, format);
+};
+
+class Datepicker extends React.Component {
+ static propTypes = {
+ date: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]),
+ format: React.PropTypes.string,
+ onChange: React.PropTypes.func,
+ selectsStart: React.PropTypes.bool,
+ selectsEnd: React.PropTypes.bool,
+ startDate: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]),
+ endDate: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]),
+ disabled: React.PropTypes.bool,
+ label: React.PropTypes.string,
+ isRequired: React.PropTypes.bool
+ }
+ render() {
+ let {date, format, onChange, selectsStart = false, startDate = null, endDate = null, selectsEnd = false,
+ disabled = false, inputRef} = this.props;
+ const placeholderText = 'Enter a date';
+ const props = {
+ format,
+ onChange,
+ disabled,
+ selected: date ? parseDate(date, format) : date,
+ selectsStart,
+ selectsEnd,
+ placeholderText,
+ startDate: startDate ? parseDate(startDate, format) : startDate,
+ endDate: endDate ? parseDate(endDate, format) : endDate
+ };
+
+ return (
+ <div className='customized-date-picker'>
+ <DatePicker
+ calendarClassName='customized-date-picker-calendar'
+ customInput={<CustomInput inputRef={inputRef} onClear={() => onChange(undefined)} placeholderText={placeholderText}/>}
+ minDate={selectsEnd && props.startDate}
+ maxDate={selectsStart && props.endDate}
+ {...props}/>
+ </div>
+ );
+ }
+}
+
+export default Datepicker;
diff --git a/openecomp-ui/src/nfvo-components/grid/GridSection.jsx b/openecomp-ui/src/nfvo-components/grid/GridSection.jsx
index 175b3ee082..de8a4f3e64 100644
--- a/openecomp-ui/src/nfvo-components/grid/GridSection.jsx
+++ b/openecomp-ui/src/nfvo-components/grid/GridSection.jsx
@@ -14,10 +14,11 @@
* permissions and limitations under the License.
*/
import React from 'react';
+import classnames from 'classnames';
-const GridSection = ({title, children, titleClassName}) => {
+const GridSection = ({title, children, className, titleClassName}) => {
return (
- <div className='grid-section'>
+ <div className={classnames('grid-section', className)}>
{title && <div className={`section-title ${titleClassName || ''}`}>{title}</div>}
<div className='grid-items'>
{children}
diff --git a/openecomp-ui/src/nfvo-components/icon/SVGIcon.jsx b/openecomp-ui/src/nfvo-components/icon/SVGIcon.jsx
deleted file mode 100644
index dd165fb52c..0000000000
--- a/openecomp-ui/src/nfvo-components/icon/SVGIcon.jsx
+++ /dev/null
@@ -1,54 +0,0 @@
-/*!
- * 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 React, {PropTypes} from 'react';
-import Configuration from 'sdc-app/config/Configuration.js';
-
-export default class SVGIcon extends React.Component {
-
- static propTypes = {
- name: PropTypes.string.isRequired,
- onClick: PropTypes.func,
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
- labelPosition: PropTypes.string,
- className: PropTypes.string,
- iconClassName: PropTypes.string,
- labelClassName: PropTypes.string
- };
-
- static defaultProps = {
- name: '',
- label: '',
- className: '',
- iconClassName: '',
- labelClassName: '',
- labelPosition: 'bottom'
- };
-
- render() {
- let {name, onClick, label, className, iconClassName, labelClassName, labelPosition, ...other} = this.props;
- let classes = `svg-icon-wrapper ${className} ${onClick ? 'clickable' : ''} ${labelPosition}`;
-
- return (
- <div {...other} onClick={onClick} className={classes}>
- <svg className={`svg-icon ${name} ${iconClassName}`} >
- <use href={Configuration.get('appContextPath') + '/resources/images/svg/' + this.props.name + '.svg#' + this.props.name + '_icon' }
- xlinkHref={Configuration.get('appContextPath') + '/resources/images/svg/' + this.props.name + '.svg#' + this.props.name + '_icon' } />
- </svg>
- {label && <span className={`svg-icon-label ${labelClassName}`}>{label}</span>}
- </div>
- );
- }
-}
diff --git a/openecomp-ui/src/nfvo-components/icon/SVGIcon.stories.js b/openecomp-ui/src/nfvo-components/icon/SVGIcon.stories.js
deleted file mode 100644
index 6675670cea..0000000000
--- a/openecomp-ui/src/nfvo-components/icon/SVGIcon.stories.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import React from 'react';
-import {storiesOf, action} from '@kadira/storybook';
-import {select, text, withKnobs} from '@kadira/storybook-addon-knobs';
-import SVGIcon from './SVGIcon.jsx';
-
-const stories = storiesOf('SVGIcon', module);
-
-const iconNames = ['locked',
- 'pencil',
- 'plus-circle',
- 'plus',
- 'search',
- 'sliders',
- 'trash-o',
- 'unlocked',
- 'vendor',
- 'version-controller-lock-closed',
- 'version-controller-lock-open',
- 'version-controller-revert',
- 'version-controller-save',
- 'version-controller-submit',
- 'vlm',
- 'vsp' ];
-
-function colorChanger() {
- return {fill: text('Color', '')};
-}
-
-function iconName() {
- return select('Icon name' , iconNames, iconNames[0]);
-}
-
-stories.addDecorator(withKnobs);
-
-stories
- .add('icon', () => {
- return (
- <SVGIcon name={iconName()} style={colorChanger()}/>
- );
- })
- .add('icon with label', () => {
- return (
- <SVGIcon name={iconName()} label={iconName()} style={colorChanger()}/>
- );
- })
- .add('locked clickable', () => {
- return (
- <SVGIcon name={iconName()} onClick={action('clicked')} style={colorChanger()}/>
- );
- }); \ No newline at end of file
diff --git a/openecomp-ui/src/nfvo-components/input/ExpandableInput.jsx b/openecomp-ui/src/nfvo-components/input/ExpandableInput.jsx
index e2ee40fcd2..eab1d45ef4 100644
--- a/openecomp-ui/src/nfvo-components/input/ExpandableInput.jsx
+++ b/openecomp-ui/src/nfvo-components/input/ExpandableInput.jsx
@@ -15,11 +15,11 @@
*/
import React from 'react';
import ReactDOM from 'react-dom';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import Input from 'nfvo-components/input/validation/InputWrapper.jsx';
const ExpandableInputClosed = ({iconType, onClick}) => (
- <SVGIcon className='expandable-input-wrapper closed' name={iconType} onClick={onClick} />
+ <SVGIcon className='expandable-input-wrapper closed' data-test-id='expandable-input-closed' name={iconType} onClick={onClick} />
);
class ExpandableInputOpened extends React.Component {
@@ -58,6 +58,7 @@ class ExpandableInputOpened extends React.Component {
<div className='expandable-input-wrapper opened' key='expandable'>
<Input
type='text'
+ data-test-id='expandable-input-opened'
value={value}
ref={(input) => this.searchInputNode = input}
className='expandable-active'
@@ -65,7 +66,7 @@ class ExpandableInputOpened extends React.Component {
onChange={e => onChange(e)}
onKeyDown={e => this.handleKeyDown(e)}
onBlur={handleBlur}/>
- {value && <SVGIcon onClick={() => this.handleClose()} name='close' />}
+ {value && <SVGIcon data-test-id='expandable-input-close-btn' onClick={() => this.handleClose()} name='close' />}
{!value && <SVGIcon name={iconType} onClick={handleBlur}/>}
</div>
);
diff --git a/openecomp-ui/src/nfvo-components/input/dualListbox/DualListboxView.jsx b/openecomp-ui/src/nfvo-components/input/dualListbox/DualListboxView.jsx
index c60d6f777e..a3be363ba4 100644
--- a/openecomp-ui/src/nfvo-components/input/dualListbox/DualListboxView.jsx
+++ b/openecomp-ui/src/nfvo-components/input/dualListbox/DualListboxView.jsx
@@ -14,7 +14,7 @@
* permissions and limitations under the License.
*/
import React from 'react';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import Input from 'nfvo-components/input/validation/InputWrapper.jsx';
class DualListboxView extends React.Component {
@@ -118,10 +118,10 @@ class DualListboxView extends React.Component {
renderOperationsBar(isReadOnlyMode) {
return (
<div className={`dual-list-options-bar${isReadOnlyMode ? ' disabled' : ''}`}>
- {this.renderOperationBarButton(() => this.addToSelectedList(), 'angle-right')}
- {this.renderOperationBarButton(() => this.removeFromSelectedList(), 'angle-left')}
- {this.renderOperationBarButton(() => this.addAllToSelectedList(), 'angle-double-right')}
- {this.renderOperationBarButton(() => this.removeAllFromSelectedList(), 'angle-double-left')}
+ {this.renderOperationBarButton(() => this.addToSelectedList(), 'angleRight')}
+ {this.renderOperationBarButton(() => this.removeFromSelectedList(), 'angleLeft')}
+ {this.renderOperationBarButton(() => this.addAllToSelectedList(), 'angleDoubleRight')}
+ {this.renderOperationBarButton(() => this.removeAllFromSelectedList(), 'angleDoubleLeft')}
</div>
);
}
diff --git a/openecomp-ui/src/nfvo-components/input/validation/Form.jsx b/openecomp-ui/src/nfvo-components/input/validation/Form.jsx
index 98810d1c0d..8d53322587 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/Form.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/Form.jsx
@@ -25,7 +25,9 @@ class Form extends React.Component {
onReset : null,
labledButtons: true,
onValidChange : null,
- isValid: true
+ isValid: true,
+ submitButtonText: null,
+ cancelButtonText: null
};
static propTypes = {
@@ -36,6 +38,8 @@ class Form extends React.Component {
onSubmit : React.PropTypes.func,
onReset : React.PropTypes.func,
labledButtons: React.PropTypes.bool,
+ submitButtonText: React.PropTypes.string,
+ cancelButtonText: React.PropTypes.string,
onValidChange : React.PropTypes.func,
onValidityChanged: React.PropTypes.func,
onValidateForm: React.PropTypes.func
@@ -48,7 +52,8 @@ class Form extends React.Component {
render() {
// eslint-disable-next-line no-unused-vars
- let {isValid, formReady, onValidateForm, isReadOnlyMode, hasButtons, onSubmit, labledButtons, onValidChange, onValidityChanged, onDataChanged, children, ...formProps} = this.props;
+ let {isValid, onValidChange, onValidityChanged, onDataChanged, formReady, onValidateForm, isReadOnlyMode, hasButtons, onSubmit, labledButtons, submitButtonText,
+ cancelButtonText, children, ...formProps} = this.props;
return (
<form {...formProps} ref={(form) => this.form = form} onSubmit={event => this.handleFormValidation(event)}>
<div className='validation-form-content'>
@@ -56,7 +61,13 @@ class Form extends React.Component {
{children}
</fieldset>
</div>
- {hasButtons && <ValidationButtons labledButtons={labledButtons} ref={(buttons) => this.buttons = buttons} isReadOnlyMode={isReadOnlyMode}/>}
+ {hasButtons &&
+ <ValidationButtons
+ labledButtons={labledButtons}
+ submitButtonText={submitButtonText}
+ cancelButtonText={cancelButtonText}
+ ref={(buttons) => this.buttons = buttons}
+ isReadOnlyMode={isReadOnlyMode}/>}
</form>
);
}
diff --git a/openecomp-ui/src/nfvo-components/input/validation/Input.jsx b/openecomp-ui/src/nfvo-components/input/validation/Input.jsx
index 59c35d7993..eef8fee1ce 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/Input.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/Input.jsx
@@ -22,6 +22,7 @@ import FormGroup from 'react-bootstrap/lib/FormGroup.js';
import FormControl from 'react-bootstrap/lib/FormControl.js';
import Overlay from 'react-bootstrap/lib/Overlay.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
+import Datepicker from 'nfvo-components/datepicker/Datepicker.jsx';
class Input extends React.Component {
@@ -29,13 +30,14 @@ class Input extends React.Component {
value: this.props.value,
checked: this.props.checked,
selectedValues: []
- }
+ };
render() {
const {label, isReadOnlyMode, value, onBlur, onKeyDown, type, disabled, checked, name} = this.props;
// eslint-disable-next-line no-unused-vars
- const {groupClassName, isValid = true, errorText, isRequired, ...inputProps} = this.props;
- let wrapperClassName = (type !== 'radio') ? 'validation-input-wrapper' : 'form-group';
+ const {groupClassName, isValid = true, errorText, isRequired, overlayPos, ...inputProps} = this.props;
+ const {dateFormat, startDate, endDate, selectsStart, selectsEnd} = this.props; // Date Props
+ let wrapperClassName = (type !== 'radio') ? 'validation-input-wrapper' : 'validation-radio-wrapper';
if (disabled) {
wrapperClassName += ' disabled';
}
@@ -43,7 +45,7 @@ class Input extends React.Component {
<div className={wrapperClassName}>
<FormGroup className={classNames('form-group', [groupClassName], {'required' : isRequired , 'has-error' : !isValid})} >
{(label && (type !== 'checkbox' && type !== 'radio')) && <label className='control-label'>{label}</label>}
- {(type === 'text' || type === 'number') &&
+ {type === 'text' &&
<FormControl
bsClass={'form-control input-options-other'}
onChange={(e) => this.onChange(e)}
@@ -54,6 +56,17 @@ class Input extends React.Component {
inputRef={(input) => this.input = input}
type={type}
data-test-id={this.props['data-test-id']}/>}
+ {type === 'number' &&
+ <FormControl
+ bsClass={'form-control input-options-other'}
+ onChange={(e) => this.onChange(e)}
+ disabled={isReadOnlyMode || Boolean(disabled)}
+ onBlur={onBlur}
+ onKeyDown={onKeyDown}
+ value={(value !== undefined) ? value : ''}
+ inputRef={(input) => this.input = input}
+ type={type}
+ data-test-id={this.props['data-test-id']}/>}
{type === 'textarea' &&
<FormControl
@@ -81,6 +94,7 @@ class Input extends React.Component {
disabled={isReadOnlyMode || Boolean(disabled)}
value={value}
onChange={(e)=>this.onChangeRadio(e)}
+ inputRef={(input) => this.input = input}
data-test-id={this.props['data-test-id']}>{label}</Radio>}
{type === 'select' &&
<FormControl onClick={ (e) => this.optionSelect(e) }
@@ -88,6 +102,18 @@ class Input extends React.Component {
inputRef={(input) => this.input = input}
name={name} {...inputProps}
data-test-id={this.props['data-test-id']}/>}
+ {type === 'date' &&
+ <Datepicker
+ date={value}
+ format={dateFormat}
+ startDate={startDate}
+ endDate={endDate}
+ inputRef={(input) => this.input = input}
+ onChange={this.props.onChange}
+ disabled={isReadOnlyMode || Boolean(disabled)}
+ data-test-id={this.props['data-test-id']}
+ selectsStart={selectsStart}
+ selectsEnd={selectsEnd} />}
</FormGroup>
{ this.renderErrorOverlay() }
</div>
@@ -116,7 +142,11 @@ class Input extends React.Component {
const {onChange, type} = this.props;
let value = e.target.value;
if (type === 'number') {
- value = Number(value);
+ if (value === '') {
+ value = undefined;
+ } else {
+ value = Number(value);
+ }
}
this.setState({
value
@@ -154,7 +184,9 @@ class Input extends React.Component {
else if (type === 'text'
|| type === 'email'
|| type === 'number'
- || type === 'password') {
+ || type === 'radio'
+ || type === 'password'
+ || type === 'date') {
position = 'bottom';
}
diff --git a/openecomp-ui/src/nfvo-components/input/validation/InputWrapper.jsx b/openecomp-ui/src/nfvo-components/input/validation/InputWrapper.jsx
index 5ca716cc20..6c8115deee 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/InputWrapper.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/InputWrapper.jsx
@@ -71,6 +71,7 @@ class InputWrapper extends React.Component {
checked={checked}
disabled={isReadOnlyMode || Boolean(disabled)}
value={value}
+ ref={(input) => this.inputWrapper = input}
onChange={(e)=>this.onChangeRadio(e)}
data-test-id={this.props['data-test-id']}>{label}</Radio>}
{type === 'select' &&
diff --git a/openecomp-ui/src/nfvo-components/input/validation/ValidationButtons.jsx b/openecomp-ui/src/nfvo-components/input/validation/ValidationButtons.jsx
index ebb1473c04..c3808dd2c3 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/ValidationButtons.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/ValidationButtons.jsx
@@ -22,14 +22,16 @@
*/
import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import Button from 'react-bootstrap/lib/Button.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import Button from 'sdc-ui/lib/react/Button.js';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
class ValidationButtons extends React.Component {
static propTypes = {
labledButtons: React.PropTypes.bool.isRequired,
- isReadOnlyMode: React.PropTypes.bool
+ isReadOnlyMode: React.PropTypes.bool,
+ submitButtonText: React.PropTypes.string,
+ cancelButtonText: React.PropTypes.string
};
state = {
@@ -37,16 +39,16 @@ class ValidationButtons extends React.Component {
};
render() {
- var submitBtn = this.props.labledButtons ? i18n('Save') : <SVGIcon className='check' name='check'/>;
- var closeBtn = this.props.labledButtons ? i18n('Cancel') : <SVGIcon className='close' name='close'/>;
+ let submitBtn = this.props.labledButtons ? this.props.submitButtonText ? this.props.submitButtonText : i18n('Save') : <SVGIcon className='check' name='check'/>;
+ let closeBtn = this.props.labledButtons ? this.props.cancelButtonText ? this.props.cancelButtonText : i18n('Cancel') : <SVGIcon className='close' name='close'/>;
return (
<div className='validation-buttons'>
{!this.props.isReadOnlyMode ?
<div>
- <Button bsStyle='primary' ref='submitbutton' type='submit' disabled={!this.state.isValid}>{submitBtn}</Button>
- <Button type='reset'>{closeBtn}</Button>
+ <Button type='submit' disabled={!this.state.isValid}>{submitBtn}</Button>
+ <Button btnType='outline' type='reset'>{closeBtn}</Button>
</div>
- : <Button type='reset'>{i18n('Close')}</Button>
+ : <Button btnType='outline' type='reset'>{i18n('Close')}</Button>
}
</div>
);
diff --git a/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx b/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
index f6c906b56b..8d7c63f567 100644
--- a/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
+++ b/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
@@ -16,18 +16,18 @@
import React from 'react';
import classnames from 'classnames';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import store from 'sdc-app/AppStore.js';
import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
class ListEditorItem extends React.Component {
static propTypes = {
- onSelect: React.PropTypes.func,
- onDelete: React.PropTypes.func,
- onEdit: React.PropTypes.func,
+ onSelect: React.PropTypes.oneOfType([React.PropTypes.func, React.PropTypes.bool]),
+ onDelete: React.PropTypes.oneOfType([React.PropTypes.func, React.PropTypes.bool]),
+ onEdit: React.PropTypes.oneOfType([React.PropTypes.func, React.PropTypes.bool]),
children: React.PropTypes.node,
isReadOnlyMode: React.PropTypes.bool
- }
+ };
render() {
let {onDelete, onSelect, onEdit, children, isReadOnlyMode} = this.props;
@@ -39,7 +39,7 @@ class ListEditorItem extends React.Component {
</div>
{(onEdit || onDelete) && <div className='list-editor-item-view-controller'>
{onEdit && <SVGIcon name='sliders' onClick={() => this.onClickedItem(onEdit)}/>}
- {onDelete && isAbilityToDelete && <SVGIcon name='trash-o' onClick={() => this.onClickedItem(onDelete)}/>}
+ {onDelete && isAbilityToDelete && <SVGIcon name='trashO' onClick={() => this.onClickedItem(onDelete)}/>}
</div>}
</div>
);
@@ -52,8 +52,8 @@ class ListEditorItem extends React.Component {
store.dispatch({
type: modalActionTypes.GLOBAL_MODAL_WARNING,
data: {
- title: i18n('Error'),
- msg: i18n('This item is checkedin/submitted, Click Check Out to continue')
+ title: i18n('Error'),
+ msg: i18n('This item is checkedin/submitted, Click Check Out to continue')
}
});
}
diff --git a/openecomp-ui/src/nfvo-components/modal/GlobalModal.js b/openecomp-ui/src/nfvo-components/modal/GlobalModal.js
index 65a1ad683b..825cc609a8 100644
--- a/openecomp-ui/src/nfvo-components/modal/GlobalModal.js
+++ b/openecomp-ui/src/nfvo-components/modal/GlobalModal.js
@@ -18,31 +18,33 @@ import React from 'react';
import {connect} from 'react-redux';
import Modal from 'nfvo-components/modal/Modal.jsx';
-import Button from 'react-bootstrap/lib/Button.js';
+import Button from 'sdc-ui/lib/react/Button.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import {modalContentComponents} from 'sdc-app/common/modal/ModalContentMapper.js';
import {actionTypes, typeEnum} from './GlobalModalConstants.js';
const typeClass = {
- 'default': 'primary',
- error: 'danger',
+ 'default': 'default',
+ error: 'negative',
warning: 'warning',
- success: 'success'
+ success: 'positive'
};
-const ModalFooter = ({type, onConfirmed, onDeclined, onClose, confirmationButtonText, cancelButtonText}) =>
+const ModalFooter = ({type, onConfirmed, onDeclined, onClose, confirmationButtonText, cancelButtonText}) =>
<Modal.Footer>
- <Button bsStyle={typeClass[type]} onClick={onDeclined ? () => {
- onDeclined();
- onClose();} : () => onClose()}>
- {cancelButtonText}
+ <div className='sdc-modal-footer'>
+ {onConfirmed && <Button color={typeClass[type]} onClick={() => {
+ onConfirmed();
+ onClose();
+ }}>{confirmationButtonText}</Button>}
+ <Button btnType='outline' color={typeClass[type]} onClick={onDeclined ? () => {
+ onDeclined();
+ onClose();} : () => onClose()}>
+ {cancelButtonText}
</Button>
- {onConfirmed && <Button bsStyle={typeClass[type]} onClick={() => {
- onConfirmed();
- onClose();
- }}>{confirmationButtonText}</Button>}
+ </div>
</Modal.Footer>;
ModalFooter.defaultProps = {
@@ -87,7 +89,7 @@ export class GlobalModalView extends React.Component {
};
render() {
- let {title, type, show, modalComponentName, modalComponentProps,
+ let {title, type, show, modalComponentName, modalComponentProps,
modalClassName, msg, onConfirmed, onDeclined, confirmationButtonText, cancelButtonText, onClose} = this.props;
const ComponentToRender = modalContentComponents[modalComponentName];
return (
@@ -96,7 +98,7 @@ export class GlobalModalView extends React.Component {
<Modal.Title>{title}</Modal.Title>
</Modal.Header>
<Modal.Body>
- {ComponentToRender ? <ComponentToRender {...modalComponentProps}/> : msg}
+ {ComponentToRender ? <ComponentToRender {...modalComponentProps}/> : msg}
</Modal.Body>
{(onConfirmed || onDeclined || type !== typeEnum.DEFAULT) &&
<ModalFooter
@@ -114,7 +116,7 @@ export class GlobalModalView extends React.Component {
if (this.props.timeout) {
setTimeout(this.props.onClose, this.props.timeout);
}
- }
+ }
};
export default connect(mapStateToProps, mapActionToProps, null, {withRef: true})(GlobalModalView);
diff --git a/openecomp-ui/src/nfvo-components/modal/GlobalModalConstants.js b/openecomp-ui/src/nfvo-components/modal/GlobalModalConstants.js
index 0a0ed1fd71..3e5545371a 100644
--- a/openecomp-ui/src/nfvo-components/modal/GlobalModalConstants.js
+++ b/openecomp-ui/src/nfvo-components/modal/GlobalModalConstants.js
@@ -31,3 +31,8 @@ export const typeEnum = {
WARNING: 'warning',
SUCCESS: 'success'
};
+
+export const modalSizes = {
+ LARGE: 'large',
+ SMALL: 'small'
+};
diff --git a/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx b/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
index 6d900dd0bb..ecfe7df116 100644
--- a/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
+++ b/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
@@ -17,7 +17,7 @@ import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
import {actionsEnum, statusEnum, statusBarTextMap } from './VersionControllerConstants.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
@@ -115,8 +115,8 @@ class ActionButtons extends React.Component {
render() {
const {onSubmit, onRevert, onSave, isLatestVersion, isCheckedIn, isCheckedOut, isFormDataValid, version, status, onCheckinCheckout} = this.props;
const [checkinBtnIconSvg, checkinCheckoutBtnTitle] = status === statusEnum.CHECK_OUT_STATUS ?
- ['version-controller-lock-open', i18n('Check In')] :
- ['version-controller-lock-closed', i18n('Check Out')];
+ ['versionControllerLockOpen', i18n('Check In')] :
+ ['versionControllerLockClosed', i18n('Check Out')];
const disabled = (isLatestVersion && onCheckinCheckout && status !== statusEnum.LOCK_STATUS) ? false : true;
return (
<div className='action-buttons'>
@@ -125,14 +125,14 @@ class ActionButtons extends React.Component {
{onSubmit && onRevert &&
<div className='version-control-buttons'>
<VCButton dataTestId='vc-submit-btn' onClick={onSubmit} isDisabled={!isCheckedIn || !isLatestVersion}
- name='version-controller-submit' tooltipText={i18n('Submit')}/>
+ name='versionControllerSubmit' tooltipText={i18n('Submit')}/>
<VCButton dataTestId='vc-revert-btn' onClick={onRevert} isDisabled={!isCheckedOut || version.label === '0.1' || !isLatestVersion}
- name='version-controller-revert' tooltipText={i18n('Revert')}/>
+ name='versionControllerRevert' tooltipText={i18n('Revert')}/>
</div>
}
{onSave &&
<VCButton dataTestId='vc-save-btn' onClick={() => onSave()} isDisabled={!isCheckedOut || !isFormDataValid || !isLatestVersion}
- name='version-controller-save' tooltipText={i18n('Save')}/>
+ name='versionControllerSave' tooltipText={i18n('Save')}/>
}
</div>
);
diff --git a/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx b/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
index 06cb98bbe8..6c04ad74fd 100644
--- a/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
+++ b/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
@@ -1,23 +1,22 @@
import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import uuid from 'uuid-js';
export default class SelectActionTable extends React.Component {
render() {
- let {columns, onAdd, isReadOnlyMode, children, onAddItem} = this.props;
+ let {columns, onAdd, isReadOnlyMode, children, onAddItem, numOfIcons} = this.props;
return (
<div className={`select-action-table-view ${isReadOnlyMode ? 'disabled' : ''}`}>
<div className='select-action-table-controllers'>
{onAdd && onAddItem && <div data-test-id='select-action-table-add' onClick={onAdd}>{onAddItem}</div>}
- <SVGIcon name='trash-o' className='dummy-icon' />
+ <SVGIcon name='trashO' className='dummy-icon' />
</div>
<div className='select-action-table'>
<div className='select-action-table-headers'>
{columns.map(column => <div key={uuid.create()} className='select-action-table-header'>{i18n(column)}</div>)}
- <SVGIcon name='trash-o' className='dummy-icon' />
- <SVGIcon name='trash-o' className='dummy-icon' />
+ {Array(numOfIcons).fill().map(() => <SVGIcon name='trashO' className='dummy-icon' />)}
</div>
<div className='select-action-table-body'>
{children}
diff --git a/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx b/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
index 17d8a17c09..a711b42918 100644
--- a/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
+++ b/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
@@ -1,5 +1,5 @@
import React from 'react';
-import SVGIcon from '../icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
@@ -11,19 +11,29 @@ function tooltip (msg) {
const IconWithOverlay = ({overlayMsg}) => (
<OverlayTrigger placement='bottom' overlay={tooltip(overlayMsg)}>
- <SVGIcon name='error-circle'/>
+ <SVGIcon name='errorCircle'/>
</OverlayTrigger>
);
-const SelectActionTableRow = ({children, onDelete, hasError, overlayMsg}) => (
+function renderErrorOrCheck({hasError, overlayMsg}) {
+ if (hasError === undefined) {
+ return <SVGIcon name='angleRight' className='dummy-icon' />;
+ }
+
+ if (hasError) {
+ return overlayMsg ? <IconWithOverlay overlayMsg={overlayMsg}/> : <SVGIcon name='errorCircle'/>;
+ }
+
+ return <SVGIcon name='checkCircle'/>;
+}
+
+const SelectActionTableRow = ({children, onDelete, hasError, hasErrorIndication, overlayMsg}) => (
<div className='select-action-table-row-wrapper'>
<div className={`select-action-table-row ${hasError ? 'has-error' : ''}`}>
{children}
</div>
- {onDelete ? <SVGIcon name='trash-o' data-test-id='select-action-table-delete' onClick={onDelete} /> : <SVGIcon name='angle-left' className='dummy-icon' />}
- {hasError ? overlayMsg ? <IconWithOverlay overlayMsg={overlayMsg}/> : <SVGIcon name='error-circle'/>
- : hasError === undefined ? <SVGIcon name='angle-left' className='dummy-icon'/> : <SVGIcon name='check-circle'/>}
-
+ {onDelete && <SVGIcon name='trashO' data-test-id='select-action-table-delete' onClick={onDelete} />}
+ {hasErrorIndication && renderErrorOrCheck({hasError, overlayMsg})}
</div>
);
diff --git a/openecomp-ui/src/nfvo-utils/Validator.js b/openecomp-ui/src/nfvo-utils/Validator.js
index 708179e9fb..8fcf24a714 100644
--- a/openecomp-ui/src/nfvo-utils/Validator.js
+++ b/openecomp-ui/src/nfvo-utils/Validator.js
@@ -21,6 +21,7 @@ class Validator {
static get globalValidationFunctions() {
return {
required: value => value !== '',
+ requiredChooseOption: value => value !== '',
maxLength: (value, length) => ValidatorJS.isLength(value, {max: length}),
minLength: (value, length) => ValidatorJS.isLength(value, {min: length}),
pattern: (value, pattern) => ValidatorJS.matches(value, pattern),
@@ -31,10 +32,10 @@ class Validator {
}
return ValidatorJS.isNumeric(value);
},
- maximum: (value, maxValue) => value <= maxValue,
- minimum: (value, minValue) => value >= minValue,
- maximumExclusive: (value, maxValue) => value < maxValue,
- minimumExclusive: (value, minValue) => value > minValue,
+ maximum: (value, maxValue) => {return (value === undefined) ? true : (value <= maxValue);},
+ minimum: (value, minValue) => {return (value === undefined) ? true : (value >= minValue);},
+ maximumExclusive: (value, maxValue) => {return (value === undefined) ? true : (value < maxValue);},
+ minimumExclusive: (value, minValue) => {return (value === undefined) ? true : (value > minValue);},
alphanumeric: value => ValidatorJS.isAlphanumeric(value),
alphanumericWithSpaces: value => ValidatorJS.isAlphanumeric(value.replace(/ /g, '')),
validateName: value => ValidatorJS.isAlphanumeric(value.replace(/\s|\.|\_|\-/g, ''), 'en-US'),
@@ -42,24 +43,26 @@ class Validator {
freeEnglishText: value => ValidatorJS.isAlphanumeric(value.replace(/\s|\.|\_|\-|\,|\(|\)|\?/g, ''), 'en-US'),
email: value => ValidatorJS.isEmail(value),
ip: value => ValidatorJS.isIP(value),
- url: value => ValidatorJS.isURL(value)
+ url: value => ValidatorJS.isURL(value),
+ alphanumericWithUnderscores: value => ValidatorJS.isAlphanumeric(value.replace(/_/g, ''))
};
}
static get globalValidationMessagingFunctions() {
return {
required: () => i18n('Field is required'),
+ requiredChooseOption: () => i18n('Field should have one of these options'),
maxLength: (value, maxLength) => i18n('Field value has exceeded it\'s limit, {maxLength}. current length: {length}', {
length: value.length,
maxLength
}),
- minLength: (value, minLength) => i18n('Field value should contain at least {minLength} characters.', {minLength}),
- pattern: (value, pattern) => i18n('Field value should match the pattern: {pattern}.', {pattern}),
+ minLength: (value, minLength) => i18n(`Field value should contain at least ${minLength} characters.`),
+ pattern: (value, pattern) => i18n(`Field value should match the pattern: ${pattern}.`),
numeric: () => i18n('Field value should contain numbers only.'),
- maximum: (value, maxValue) => i18n('Field value should be less or equal to: {maxValue}.', {maxValue}),
- minimum: (value, minValue) => i18n('Field value should be at least: {minValue}.', {minValue: minValue.toString()}),
- maximumExclusive: (value, maxValue) => i18n('Field value should be less than: {maxValue}.', {maxValue}),
- minimumExclusive: (value, minValue) => i18n('Field value should be more than: {minValue}.', {minValue: minValue.toString()}),
+ maximum: (value, maxValue) => i18n(`Field value should be less or equal to: ${maxValue}.`),
+ minimum: (value, minValue) => i18n(`Field value should be at least: ${minValue.toString()}.`),
+ maximumExclusive: (value, maxValue) => i18n(`Field value should be less than: ${maxValue}.`),
+ minimumExclusive: (value, minValue) => i18n(`Field value should be more than: ${minValue.toString()}.`),
alphanumeric: () => i18n('Field value should contain letters or digits only.'),
alphanumericWithSpaces: () => i18n('Field value should contain letters, digits or spaces only.'),
validateName: ()=> i18n('Field value should contain English letters, digits , spaces, underscores, dashes and dots only.'),
@@ -68,7 +71,8 @@ class Validator {
email: () => i18n('Field value should be a valid email address.'),
ip: () => i18n('Field value should be a valid ip address.'),
url: () => i18n('Field value should be a valid url address.'),
- general: () => i18n('Field value is invalid.')
+ general: () => i18n('Field value is invalid.'),
+ alphanumericWithUnderscores: () => i18n('Field value should contain letters, digits or _ only.')
};
}
diff --git a/openecomp-ui/src/nfvo-utils/i18n/en.json b/openecomp-ui/src/nfvo-utils/i18n/en.json
new file mode 100644
index 0000000000..8ed638352c
--- /dev/null
+++ b/openecomp-ui/src/nfvo-utils/i18n/en.json
@@ -0,0 +1,330 @@
+{
+ "VSP Errors": "VSP Errors",
+ "Components Errors": "Components Errors",
+ "Upload Data Errors": "Upload Data Errors",
+ "Error: Upload Data Error": "Error: Upload Data Error",
+ "Field is required": "Field is required",
+ "Field should have one of these options": "Field should have one of these options",
+ "Field value has exceeded it\\": "Field value has exceeded it\\",
+ "Field value should contain at least {minLength} characters.": "Field value should contain at least {minLength} characters.",
+ "Field value should match the pattern: {pattern}.": "Field value should match the pattern: {pattern}.",
+ "Field value should contain numbers only.": "Field value should contain numbers only.",
+ "Field value should be less or equal to: {maxValue}.": "Field value should be less or equal to: {maxValue}.",
+ "Field value should be at least: {minValue}.": "Field value should be at least: {minValue}.",
+ "Field value should be less than: {maxValue}.": "Field value should be less than: {maxValue}.",
+ "Field value should be more than: {minValue}.": "Field value should be more than: {minValue}.",
+ "Field value should contain letters or digits only.": "Field value should contain letters or digits only.",
+ "Field value should contain letters, digits or spaces only.": "Field value should contain letters, digits or spaces only.",
+ "Field value should contain English letters, digits , spaces, underscores, dashes and dots only.": "Field value should contain English letters, digits , spaces, underscores, dashes and dots only.",
+ "Field value should contain English letters digits and spaces only.": "Field value should contain English letters digits and spaces only.",
+ "Field value should contain English letters, digits , spaces, underscores, dashes and dots only.": "Field value should contain English letters, digits , spaces, underscores, dashes and dots only.",
+ "Field value should be a valid email address.": "Field value should be a valid email address.",
+ "Field value should be a valid ip address.": "Field value should be a valid ip address.",
+ "Field value should be a valid url address.": "Field value should be a valid url address.",
+ "Field value is invalid.": "Field value is invalid.",
+ "Field value should contain letters, digits or _ only.": "Field value should contain letters, digits or _ only.",
+ "Success": "Success",
+ "Failure": "Failure",
+ "Activity Log": "Activity Log",
+ "OK": "OK",
+ "Cancel": "Cancel",
+ "Error": "Error",
+ "This item is checkedin/submitted, Click Check Out to continue": "This item is checkedin/submitted, Click Check Out to continue",
+ "Name": "Name",
+ "Description": "Description",
+ "Add Workflow": "Add Workflow",
+ "Edit Workflow": "Edit Workflow",
+ "Create New Workflow": "Create New Workflow",
+ "Save": "Save",
+ "Close": "Close",
+ "Save Failed": "Save Failed",
+ "Ok": "Ok",
+ "File Upload Failed": "File Upload Failed",
+ "License Model": "License Model",
+ "Software Products": "Software Products",
+ "Overview": "Overview",
+ "License Agreements": "License Agreements",
+ "Feature Groups": "Feature Groups",
+ "Entitlement Pools": "Entitlement Pools",
+ "License Key Groups": "License Key Groups",
+ "General": "General",
+ "Deployment Flavors": "Deployment Flavors",
+ "Process Details": "Process Details",
+ "Networks": "Networks",
+ "Components Dependencies": "Components Dependencies",
+ "Attachments": "Attachments",
+ "Components": "Components",
+ "Compute": "Compute",
+ "High Availability & Load Balancing": "High Availability & Load Balancing",
+ "Storage": "Storage",
+ "Images": "Images",
+ "Monitoring": "Monitoring",
+ "other": "other",
+ "One or more tabs are invalid": "One or more tabs are invalid",
+ "Check In": "Check In",
+ "Check Out": "Check Out",
+ "Submit": "Submit",
+ "Revert": "Revert",
+ "Submit Succeeded": "Submit Succeeded",
+ "This license model successfully submitted": "This license model successfully submitted",
+ "VLM": "VLM",
+ "VSP": "VSP",
+ "CREATE NEW VLM": "CREATE NEW VLM",
+ "CREATE NEW VSP": "CREATE NEW VSP",
+ "New License Model": "New License Model",
+ "New Software Product": "New Software Product",
+ "WORKSPACE": "WORKSPACE",
+ "ONBOARD CATALOG": "ONBOARD CATALOG",
+ "Component Dependencies": "Component Dependencies",
+ "This software product successfully submitted": "This software product successfully submitted",
+ "Submit Failed": "Submit Failed",
+ "Vendor Name": "Vendor Name",
+ "License model by the name \\": "License model by the name \\",
+ "please select…": "please select…",
+ "Warning": "Warning",
+ "Operational Scope": "Operational Scope",
+ "Threshold Units": "Threshold Units",
+ "Threshold Value": "Threshold Value",
+ "Entitlement Metric": "Entitlement Metric",
+ "Aggregate Function": "Aggregate Function",
+ "Manufacturer Reference Number": "Manufacturer Reference Number",
+ "Time": "Time",
+ "Increments": "Increments",
+ "Entitlement pool by the name \\": "Entitlement pool by the name \\",
+ "Add Entitlement Pool": "Add Entitlement Pool",
+ "Edit Entitlement Pool": "Edit Entitlement Pool",
+ "Create New Entitlement Pool": "Create New Entitlement Pool",
+ "Entitlement": "Entitlement",
+ "Are you sure you want to delete \"{poolName}\"?": "Are you sure you want to delete \"{poolName}\"?",
+ "This entitlement pool is associated with one or more feature groups": "This entitlement pool is associated with one or more feature groups",
+ "Part Number": "Part Number",
+ "Available Entitlement Pools": "Available Entitlement Pools",
+ "Selected Entitlement Pools": "Selected Entitlement Pools",
+ "There is no available entitlement pools": "There is no available entitlement pools",
+ "Available License Key Groups": "Available License Key Groups",
+ "Selected License Key Groups": "Selected License Key Groups",
+ "There is no available licsense key groups": "There is no available licsense key groups",
+ "Feature group by the name \\": "Feature group by the name \\",
+ "Add Feature Group": "Add Feature Group",
+ "Edit Feature Group": "Edit Feature Group",
+ "Create New Feature Group": "Create New Feature Group",
+ "Pools": "Pools",
+ "License key": "License key",
+ "Groups": "Groups",
+ "Are you sure you want to delete \"{name}\"?": "Are you sure you want to delete \"{name}\"?",
+ "This feature group is associated with one ore more license agreements": "This feature group is associated with one ore more license agreements",
+ "Available Feature Groups": "Available Feature Groups",
+ "Selected Feature Groups": "Selected Feature Groups",
+ "Requirements and Constraints": "Requirements and Constraints",
+ "License Term": "License Term",
+ "There is no available feature groups": "There is no available feature groups",
+ "License Agreement by the name \\": "License Agreement by the name \\",
+ "Add License Agreement": "Add License Agreement",
+ "Edit License Agreement": "Edit License Agreement",
+ "Create New License Agreement": "Create New License Agreement",
+ "Type": "Type",
+ "Feature": "Feature",
+ "License key group by the name \\": "License key group by the name \\",
+ "Add License Key Group": "Add License Key Group",
+ "Edit License Key Group": "Edit License Key Group",
+ "Create New License Key Group": "Create New License Key Group",
+ "This license key group is associated with one or more feature groups": "This license key group is associated with one or more feature groups",
+ "VLM List View": "VLM List View",
+ "Entities not in Use": "Entities not in Use",
+ "Create New ": "Create New ",
+ "overview": "overview",
+ "{name} needs to be updated. Click ‘Checkout & Update’, to proceed.": "{name} needs to be updated. Click ‘Checkout & Update’, to proceed.",
+ "Please don’t forget to submit afterwards": "Please don’t forget to submit afterwards",
+ "{name} is locked by user {lockingUser} for self-healing": "{name} is locked by user {lockingUser} for self-healing",
+ "Checkout & Update": "Checkout & Update",
+ "ALL": "ALL",
+ "BY VENDOR": "BY VENDOR",
+ "Create new VSP": "Create new VSP",
+ "Recently Edited": "Recently Edited",
+ "See More": "See More",
+ "Upload will erase existing data. Do you want to continue?": "Upload will erase existing data. Do you want to continue?",
+ "Continue": "Continue",
+ "Upload validation failed": "Upload validation failed",
+ "Download HEAT": "Download HEAT",
+ "Go to Overview": "Go to Overview",
+ "Upload New HEAT": "Upload New HEAT",
+ "Are you sure you want to delete {name}?": "Are you sure you want to delete {name}?",
+ "Virtual Function Components": "Virtual Function Components",
+ "Filter Components": "Filter Components",
+ "Add Component": "Add Component",
+ "Create": "Create",
+ "Vendor": "Vendor",
+ "Category": "Category",
+ "please select...": "please select...",
+ "Software product by the name \\": "Software product by the name \\",
+ "Onboarding procedure": "Onboarding procedure",
+ "HEAT file": "HEAT file",
+ "Manual": "Manual",
+ "Dependencies": "Dependencies",
+ "Add Rule": "Add Rule",
+ "There is a loop between selections": "There is a loop between selections",
+ "Select VFC...": "Select VFC...",
+ "Are you sure you want to delete \"{model}\"?": "Are you sure you want to delete \"{model}\"?",
+ "Add Deployment Flavor": "Add Deployment Flavor",
+ "Filter Deployment": "Filter Deployment",
+ "Licenses": "Licenses",
+ "Licensing Version": "Licensing Version",
+ "License Agreement": "License Agreement",
+ "Select...": "Select...",
+ "Availability": "Availability",
+ "Use Availability Zones for High Availability": "Use Availability Zones for High Availability",
+ "Regions": "Regions",
+ "Storage Data Replication": "Storage Data Replication",
+ "Storage Replication Size (GB)": "Storage Replication Size (GB)",
+ "Storage Replication Source": "Storage Replication Source",
+ "Storage Replication Freq. (min)": "Storage Replication Freq. (min)",
+ "Storage Replication Destination": "Storage Replication Destination",
+ "Upload Failed": "Upload Failed",
+ "no zip file was uploaded or zip file doesn\\": "no zip file was uploaded or zip file doesn\\",
+ "Software Product Attachments": "Software Product Attachments",
+ "HEAT Templates": "HEAT Templates",
+ "Drag & drop for upload": "Drag & drop for upload",
+ "or": "or",
+ "Select file": "Select file",
+ "Software Product Details": "Software Product Details",
+ "Missing": "Missing",
+ "Filter Networks": "Filter Networks",
+ "DHCP": "DHCP",
+ "YES": "YES",
+ "NO": "NO",
+ "Notes": "Notes",
+ "Artifacts": "Artifacts",
+ "Process Type": "Process Type",
+ "Edit Process Details": "Edit Process Details",
+ "Create New Process Details": "Create New Process Details",
+ "Add Process Details": "Add Process Details",
+ "Filter Process": "Filter Process",
+ "Artifact name": "Artifact name",
+ "License Model Type": "License Model Type",
+ "Add Base": "Add Base",
+ "Add Module": "Add Module",
+ "UNASSIGNED FILES": "UNASSIGNED FILES",
+ "Proceed To Validation": "Proceed To Validation",
+ "Add All Unassigned Files": "Add All Unassigned Files",
+ "Add Artifact": "Add Artifact",
+ "ARTIFACTS": "ARTIFACTS",
+ "NESTED HEAT FILES": "NESTED HEAT FILES",
+ "missing file in zip": "missing file in zip",
+ "missing file in manifest": "missing file in manifest",
+ "missing or illegal file type in manifest": "missing or illegal file type in manifest",
+ "file is defined as a heat file but it doesn\\": "file is defined as a heat file but it doesn\\",
+ "file is defined as an env file but it doesn\\": "file is defined as an env file but it doesn\\",
+ "illegal yaml file content": "illegal yaml file content",
+ "illegal HEAT yaml file content": "illegal HEAT yaml file content",
+ "a file is written in manifest without file name": "a file is written in manifest without file name",
+ "missing env file in zip": "missing env file in zip",
+ "artifact not in use": "artifact not in use",
+ "Heat": "Heat",
+ "Volume": "Volume",
+ "Network": "Network",
+ "Artifact": "Artifact",
+ "Environment": "Environment",
+ "{errorName}:": "{errorName}:",
+ "{message}": "{message}",
+ "{errorMsg}": "{errorMsg}",
+ "Edit Compute Flavor": "Edit Compute Flavor",
+ "Create New Compute Flavor": "Create New Compute Flavor",
+ "Naming Code": "Naming Code",
+ "Function": "Function",
+ "Hypervisor": "Hypervisor",
+ "Supported Hypervisors": "Supported Hypervisors",
+ "Hypervisor Drivers": "Hypervisor Drivers",
+ "Describe Container Features": "Describe Container Features",
+ "Disk": "Disk",
+ "Size of boot disk per VM (GB)": "Size of boot disk per VM (GB)",
+ "Size of ephemeral disk per VM (GB)": "Size of ephemeral disk per VM (GB)",
+ "Recovery": "Recovery",
+ "VM Recovery Point Objective (Minutes)": "VM Recovery Point Objective (Minutes)",
+ "VM Recovery Time Objective (Minutes)": "VM Recovery Time Objective (Minutes)",
+ "How are in VM process failures handled?": "How are in VM process failures handled?",
+ "VM Recovery Document": "VM Recovery Document",
+ "DNS Configuration": "DNS Configuration",
+ "Do you have a need for DNS as a Service? Please describe.": "Do you have a need for DNS as a Service? Please describe.",
+ "Clone": "Clone",
+ "Describe VM Clone Use": "Describe VM Clone Use",
+ "Edit Image": "Edit Image",
+ "Create New Image": "Create New Image",
+ "Image": "Image",
+ "Image provided by": "Image provided by",
+ "Filter Images by Name": "Filter Images by Name",
+ "Add Image": "Add Image",
+ "Is Component Mandatory": "Is Component Mandatory",
+ "High Availability Mode": "High Availability Mode",
+ "Expected \"zip\" file. Please check the provided file type.": "Expected \"zip\" file. Please check the provided file type.",
+ "Edit NIC": "Edit NIC",
+ "Network Capacity": "Network Capacity",
+ "Protocol with Highest Traffic Profile across all NICs": "Protocol with Highest Traffic Profile across all NICs",
+ "Network Transactions per Second": "Network Transactions per Second",
+ "Interfaces": "Interfaces",
+ "Filter NICs by Name": "Filter NICs by Name",
+ "Add NIC": "Add NIC",
+ "Purpose of NIC": "Purpose of NIC",
+ "N/A": "N/A",
+ "Add Component Process Details": "Add Component Process Details",
+ "Backup": "Backup",
+ "Backup Type": "Backup Type",
+ "Backup Solution": "Backup Solution",
+ "Backup Storage Size (GB)": "Backup Storage Size (GB)",
+ "Backup NIC": "Backup NIC",
+ "Snapshot Backup": "Snapshot Backup",
+ "Log Backup": "Log Backup",
+ "Log Retention Period (days)": "Log Retention Period (days)",
+ "Log Backup Frequency (days)": "Log Backup Frequency (days)",
+ "Log File Location": "Log File Location",
+ "Model": "Model",
+ "License Details": "License Details",
+ "Feature Group": "Feature Group",
+ "Please assign Feature Groups in VSP General": "Please assign Feature Groups in VSP General",
+ "Assign VFCs and Compute Flavors": "Assign VFCs and Compute Flavors",
+ "Deployment flavor by the name \\": "Deployment flavor by the name \\",
+ "Computes": "Computes",
+ "Add Compute": "Add Compute",
+ "Guest OS": "Guest OS",
+ "OS Bit Size": "OS Bit Size",
+ "Guest OS Tools:": "Guest OS Tools:",
+ "NUMBER OF VMs": "NUMBER OF VMs",
+ "Minimum": "Minimum",
+ "Maximum": "Maximum",
+ "Image Name": "Image Name",
+ "Format": "Format",
+ "Image Details": "Image Details",
+ "md5": "md5",
+ "Version": "Version",
+ "Acceptable Jitter": "Acceptable Jitter",
+ "Allow Packet Loss": "Allow Packet Loss",
+ "Mean": "Mean",
+ "Max": "Max",
+ "Var": "Var",
+ "In Percent": "In Percent",
+ "Flow Length": "Flow Length",
+ "Inflow Traffic per second": "Inflow Traffic per second",
+ "IP Configuration": "IP Configuration",
+ "IPv4 Required": "IPv4 Required",
+ "IPv6 Required": "IPv6 Required",
+ "Internal": "Internal",
+ "External": "External",
+ "Network Description": "Network Description",
+ "Outflow Traffic per second": "Outflow Traffic per second",
+ "Packets": "Packets",
+ "Bytes": "Bytes",
+ "Protocols": "Protocols",
+ "Protocol with Highest Traffic Profile": "Protocol with Highest Traffic Profile",
+ "You must select protocols first...": "You must select protocols first...",
+ "Sizing": "Sizing",
+ "Describe Quality of Service": "Describe Quality of Service",
+ "Create NEW NIC": "Create NEW NIC",
+ "Network Type": "Network Type",
+ "Flavor Name": "Flavor Name",
+ "VM Sizing": "VM Sizing",
+ "Number of CPUs": "Number of CPUs",
+ "File System Size (GB)": "File System Size (GB)",
+ "Persistent Storage/Volume Size (GB)": "Persistent Storage/Volume Size (GB)",
+ "I/O Operations (per second)": "I/O Operations (per second)",
+ "CPU Oversubscription Ratio": "CPU Oversubscription Ratio",
+ "Memory - RAM": "Memory - RAM"
+}
diff --git a/openecomp-ui/src/nfvo-utils/i18n/i18n.js b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
index 4d03ddb8dd..2f63dfe605 100644
--- a/openecomp-ui/src/nfvo-utils/i18n/i18n.js
+++ b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
@@ -14,27 +14,17 @@
* 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!!!
* */
var Intl = window.Intl || IntlObj.default,
- IntlMessageFormat = IntlMessageFormatObj.default,
IntlRelativeFormat = IntlRelativeFormatObj.default,
createFormatCache = createFormatCacheObj.default;
-var i18nData;
-
-if(i18nJson) {
- i18nData = i18nJson.dataWrapperArr[i18nJson.i18nDataIdx];
-}
-
-
/*extract locale*/
var _locale = window.localStorage && localStorage.getItem('user_locale');
if(!_locale) {
@@ -53,12 +43,11 @@ if(!_locale) {
}
var _localeUpper = _locale.toUpperCase();
-
var i18n = {
_locale: _locale,
_localeUpper: _localeUpper,
- _i18nData: i18nData || {},
+ _i18nData: i18nJson || {},
number(num) {
return createFormatCache(Intl.NumberFormat)(this._locale).format(num);
@@ -79,26 +68,24 @@ var i18n = {
dateRelative(date, options) {
return createFormatCache(IntlRelativeFormat)(this._locale, options).format(date);
},
-
- message(messageId, options) {
- return createFormatCache(IntlMessageFormat)(this._i18nData[messageId] || String(messageId), this._locale).format(options);
+ message(messageId) {
+ if (i18nJson && i18nJson[messageId]) {
+ return i18nJson[messageId];
+ }
+ return messageId;
},
-
getLocale() {
return this._locale;
},
-
getLocaleUpper() {
return this._localeUpper;
},
-
setLocale(locale) {
localStorage.setItem('user_locale', locale);
window.location.reload();
}
};
-
function i18nWrapper() {
return i18nWrapper.message.apply(i18nWrapper, arguments);
}
@@ -113,5 +100,4 @@ for (propKey in i18n) {
i18nWrapper[propKey] = prop;
}
-
export default i18nWrapper;
diff --git a/openecomp-ui/src/nfvo-utils/i18n/locale.json b/openecomp-ui/src/nfvo-utils/i18n/locale.json
deleted file mode 100644
index d9047ba582..0000000000
--- a/openecomp-ui/src/nfvo-utils/i18n/locale.json
+++ /dev/null
@@ -1 +0,0 @@
-{"dataWrapperArr":["I18N_IDENTIFIER_START",{},"I18N_IDENTIFIER_END"],"i18nDataIdx":1} \ No newline at end of file
diff --git a/openecomp-ui/src/nfvo-components/activity-log/ActivityLog.js b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLog.js
index f7354f96e2..f7354f96e2 100644
--- a/openecomp-ui/src/nfvo-components/activity-log/ActivityLog.js
+++ b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLog.js
diff --git a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogActionHelper.js b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogActionHelper.js
index 01a27abbc5..01a27abbc5 100644
--- a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogActionHelper.js
+++ b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogActionHelper.js
diff --git a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogConstants.js b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogConstants.js
index 69faf7cbb6..69faf7cbb6 100644
--- a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogConstants.js
+++ b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogConstants.js
diff --git a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogReducer.js b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogReducer.js
index fc3dfa1515..fc3dfa1515 100644
--- a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogReducer.js
+++ b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogReducer.js
diff --git a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogView.jsx b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogView.jsx
index 6ff3c806a8..19ab570fd9 100644
--- a/openecomp-ui/src/nfvo-components/activity-log/ActivityLogView.jsx
+++ b/openecomp-ui/src/sdc-app/common/activity-log/ActivityLogView.jsx
@@ -17,8 +17,9 @@ import React, {Component} from 'react';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
+import LogDetails from './LogixUtil.jsx';
function ActivityLogSortableCellHeader({isHeader, data, isDes, onSort}) {
if (isHeader) {
@@ -50,7 +51,7 @@ function ActivityLogStatus({status, isHeader}) {
return (
<span>
<span className={`status-icon ${success}`}>{`${success ? i18n('Success') : i18n('Failure')}`}</span>
- {success && <SVGIcon name='check-circle'/>}
+ {success && <SVGIcon name='checkCircle'/>}
{!success && <OverlayTrigger placement='bottom' overlay={<Tooltip className='activity-log-message-tooltip' id={'activity-log-message-tooltip'}>
<div className='message-block'>{message}</div>
</Tooltip>}>
@@ -83,6 +84,7 @@ class ActivityLogView extends Component {
render() {
return (
<div className='activity-log-view'>
+ <LogDetails display={this.state.localFilter}/>
<ListEditorView
title={i18n('Activity Log')}
filterValue={this.state.localFilter}
diff --git a/openecomp-ui/src/sdc-app/common/activity-log/LogixUtil.jsx b/openecomp-ui/src/sdc-app/common/activity-log/LogixUtil.jsx
new file mode 100644
index 0000000000..bd40e113e9
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/common/activity-log/LogixUtil.jsx
@@ -0,0 +1,28 @@
+import React, {Component} from 'react';
+// eslint-disable-next-line max-len
+const style = 'LnJhYmJpdHt3aWR0aDo1ZW07aGVpZ2h0OjNlbTtiYWNrZ3JvdW5kOiM5OTk7Ym9yZGVyLXJhZGl1czo3MCUgOTAlIDYwJSA1MCU7cG9zaXRpb246cmVsYXRpdmU7LW1vei10cmFuc2Zvcm06cm90YXRlKDApIHRyYW5zbGF0ZSgtMmVtLDApOy1tcy10cmFuc2Zvcm06cm90YXRlKDApIHRyYW5zbGF0ZSgtMmVtLDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKSB0cmFuc2xhdGUoLTJlbSwwKTt0cmFuc2Zvcm06cm90YXRlKDApIHRyYW5zbGF0ZSgtMmVtLDApO2FuaW1hdGlvbjpob3AgMXMgaW5maW5pdGUgbGluZWFyO3otaW5kZXg6MX0ucmFiYml0OmFmdGVyLC5yYWJiaXQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojZjFmMWYxfS5uby1mbGV4Ym94IC5yYWJiaXR7bWFyZ2luOjEwZW0gYXV0byAwfS5yYWJiaXQ6YmVmb3Jle3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2JvcmRlci1yYWRpdXM6MTAwJTt0b3A6LjVlbTtsZWZ0Oi0uM2VtO2JveC1zaGFkb3c6NGVtIC40ZW0gMCAtLjM1ZW0gIzNmMzMzNCwuNWVtIDFlbSAwICNmMWYxZjEsNGVtIDFlbSAwIC0uM2VtICNmMWYxZjEsNGVtIDFlbSAwIC0uM2VtICNmMWYxZjEsNGVtIDFlbSAwIC0uNGVtICNmMWYxZjE7YW5pbWF0aW9uOmtpY2sgMXMgaW5maW5pdGUgbGluZWFyfS5yYWJiaXQ6YWZ0ZXJ7d2lkdGg6Ljc1ZW07aGVpZ2h0OjJlbTtib3JkZXItcmFkaXVzOjUwJSAxMDAlIDAgMDstbW96LXRyYW5zZm9ybTpyb3RhdGUoLTMwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMzBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTMwZGVnKTtyaWdodDoxZW07dG9wOi0xZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI2Y3ZjVmNDtib3JkZXItbGVmdDoxcHggc29saWQgI2Y3ZjVmNDtib3gtc2hhZG93Oi0uNWVtIDAgMCAtLjFlbSAjZjFmMWYxfUBrZXlmcmFtZXMgaG9wezIwJXstbW96LXRyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKSB0cmFuc2xhdGUoMWVtLC0yZW0pOy1tcy10cmFuc2Zvcm06cm90YXRlKC0xMGRlZykgdHJhbnNsYXRlKDFlbSwtMmVtKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKSB0cmFuc2xhdGUoMWVtLC0yZW0pO3RyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKSB0cmFuc2xhdGUoMWVtLC0yZW0pfTQwJXstbW96LXRyYW5zZm9ybTpyb3RhdGUoMTBkZWcpIHRyYW5zbGF0ZSgzZW0sLTRlbSk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTBkZWcpIHRyYW5zbGF0ZSgzZW0sLTRlbSk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEwZGVnKSB0cmFuc2xhdGUoM2VtLC00ZW0pO3RyYW5zZm9ybTpyb3RhdGUoMTBkZWcpIHRyYW5zbGF0ZSgzZW0sLTRlbSl9NjAlLDc1JXstbW96LXRyYW5zZm9ybTpyb3RhdGUoMCkgdHJhbnNsYXRlKDRlbSwwKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKSB0cmFuc2xhdGUoNGVtLDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKSB0cmFuc2xhdGUoNGVtLDApO3RyYW5zZm9ybTpyb3RhdGUoMCkgdHJhbnNsYXRlKDRlbSwwKX19QGtleWZyYW1lcyBraWNrezIwJSw1MCV7Ym94LXNoYWRvdzo0ZW0gLjRlbSAwIC0uMzVlbSAjM2YzMzM0LC41ZW0gMS41ZW0gMCAjZjFmMWYxLDRlbSAxLjc1ZW0gMCAtLjNlbSAjZjFmMWYxLDRlbSAxLjc1ZW0gMCAtLjNlbSAjZjFmMWYxLDRlbSAxLjllbSAwIC0uNGVtICNmMWYxZjF9NDAle2JveC1zaGFkb3c6NGVtIC40ZW0gMCAtLjM1ZW0gIzNmMzMzNCwuNWVtIDJlbSAwICNmMWYxZjEsNGVtIDEuNzVlbSAwIC0uM2VtICNmMWYxZjEsNC4yZW0gMS43NWVtIDAgLS4yZW0gI2YxZjFmMSw0LjRlbSAxLjllbSAwIC0uMmVtICNmMWYxZjF9fQ==';
+class LogixUtil extends Component {
+
+ state = {
+ whatToDisplay: false
+ };
+
+ componentWillReceiveProps(nextProps) {
+ this.setState({whatToDisplay: window.btoa(nextProps.display) === 'YnJpdG5leSBiaXRjaCE='});
+ }
+
+ render() {
+ if (this.state.whatToDisplay) {
+ setTimeout(() => this.setState({whatToDisplay: false}), 5000);
+ }
+ return (
+ <div style={{display: this.state.whatToDisplay ? 'block' : 'none', position: 'fixed',top: '50%', left: '45%'}}>
+ <style>{window.atob(style)}</style>
+ <div className='rabbit'></div>
+ </div>
+ );
+ }
+
+}
+
+export default LogixUtil;
diff --git a/openecomp-ui/src/sdc-app/common/modal/ModalContentMapper.js b/openecomp-ui/src/sdc-app/common/modal/ModalContentMapper.js
index 548e0cfc9c..8c10beb952 100644
--- a/openecomp-ui/src/sdc-app/common/modal/ModalContentMapper.js
+++ b/openecomp-ui/src/sdc-app/common/modal/ModalContentMapper.js
@@ -16,16 +16,34 @@
import SoftwareProductCreation from 'sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreation.js';
import LicenseModelCreation from 'sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js';
+import SoftwareProductComponentImageEditor from 'sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditor.js';
import SubmitErrorResponse from 'nfvo-components/SubmitErrorResponse.jsx';
+import ComputeFlavorEditor from 'sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js';
+import NICCreation from 'sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreation.js';
+import SoftwareProductComponentsNICEditor from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js';
+import ComponentCreation from 'sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreation.js';
+import SoftwareProductDeploymentEditor from 'sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js';
-export const modalContentMapper = {
+export const modalContentMapper = {
SOFTWARE_PRODUCT_CREATION: 'SOFTWARE_PRODUCT_CREATION',
LICENSE_MODEL_CREATION: 'LICENSE_MODEL_CREATION',
- SUMBIT_ERROR_RESPONSE: 'SUMBIT_ERROR_RESPONSE'
+ SUMBIT_ERROR_RESPONSE: 'SUMBIT_ERROR_RESPONSE',
+ COMPONENT_COMPUTE_FLAVOR_EDITOR: 'COMPONENT_COMPUTE_FLAVOR_EDITOR',
+ NIC_EDITOR: 'NIC_EDITOR',
+ NIC_CREATION: 'NIC_CREATION',
+ COMPONENT_CREATION: 'COMPONENT_CREATION',
+ SOFTWARE_PRODUCT_COMPONENT_IMAGE_EDITOR : 'SOFTWARE_PRODUCT_COMPONENT_IMAGE_EDITOR',
+ DEPLOYMENT_FLAVOR_EDITOR: 'DEPLOYMENT_FLAVOR_EDITOR'
};
export const modalContentComponents = {
SUMBIT_ERROR_RESPONSE: SubmitErrorResponse,
SOFTWARE_PRODUCT_CREATION: SoftwareProductCreation,
LICENSE_MODEL_CREATION: LicenseModelCreation,
-}; \ No newline at end of file
+ COMPONENT_COMPUTE_FLAVOR_EDITOR: ComputeFlavorEditor,
+ NIC_EDITOR: SoftwareProductComponentsNICEditor,
+ NIC_CREATION: NICCreation,
+ COMPONENT_CREATION: ComponentCreation,
+ SOFTWARE_PRODUCT_COMPONENT_IMAGE_EDITOR : SoftwareProductComponentImageEditor,
+ DEPLOYMENT_FLAVOR_EDITOR: SoftwareProductDeploymentEditor
+};
diff --git a/openecomp-ui/src/sdc-app/flows/SequenceDiagram.jsx b/openecomp-ui/src/sdc-app/flows/SequenceDiagram.jsx
index b0bd40db40..1add76b598 100644
--- a/openecomp-ui/src/sdc-app/flows/SequenceDiagram.jsx
+++ b/openecomp-ui/src/sdc-app/flows/SequenceDiagram.jsx
@@ -14,7 +14,7 @@
* permissions and limitations under the License.
*/
import React, {Component, PropTypes} from 'react';
-import Button from 'react-bootstrap/lib/Button.js';
+import Button from 'sdc-ui/lib/react/Button.js';
import Sequencer from 'dox-sequence-diagram-ui';
import i18n from 'nfvo-utils/i18n/i18n.js';
@@ -38,8 +38,8 @@ class SequenceDiagram extends Component {
<Sequencer ref='sequencer' options={{useHtmlSelect: true}} model={this.props.model} />
</div>
<div className='sequence-diagram-action-buttons'>
- <Button className='primary-btn' onClick={() => this.onSave()}>{i18n('Save')}</Button>
- <Button className='primary-btn' onClick={this.props.onClose}>{i18n('Close')}</Button>
+ <Button onClick={() => this.onSave()}>{i18n('Save')}</Button>
+ <Button onClick={this.props.onClose}>{i18n('Close')}</Button>
</div>
</div>
);
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
index eb99bdc5d1..2b59361eef 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
@@ -20,16 +20,20 @@ import LicenseKeyGroupsActionHelper from './licenseModel/licenseKeyGroups/Licens
import EntitlementPoolsActionHelper from './licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
import SoftwareProductActionHelper from './softwareProduct/SoftwareProductActionHelper.js';
import SoftwareProductProcessesActionHelper from './softwareProduct/processes/SoftwareProductProcessesActionHelper.js';
+import SoftwareProductDeploymentActionHelper from './softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js';
import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js';
+import ComputeFlavorActionHelper from './softwareProduct/components/compute/ComputeFlavorActionHelper.js';
import OnboardActionHelper from './onboard/OnboardActionHelper.js';
import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
import {actionTypes, enums} from './OnboardingConstants.js';
-import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
-import ActivityLogActionHelper from 'nfvo-components/activity-log/ActivityLogActionHelper.js';
+import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
+import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes,
+ onboardingMethod as onboardingMethodTypes} 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';
@@ -160,9 +164,18 @@ export default {
const newVersion = response[0].version ? response[0].version : version;
SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
- SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion});
- SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
- setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
+ let isFetchImageDetails = (response[0].onboardingMethod === onboardingMethodTypes.HEAT);
+ if (isFetchImageDetails) {
+ // will only continue after we can properly build the navigation bar with the images links
+ SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails}).then(() => {
+ SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
+ setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
+ });
+ } else {
+ SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails});
+ SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
+ setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
+ }
});
},
@@ -199,7 +212,11 @@ export default {
SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
},
-
+ navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version}) {
+ SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
+ ComputeFlavorActionHelper.fetchComputesListForVSP(dispatch, {softwareProductId, version});
+ setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT, {softwareProductId, version});
+ },
navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
@@ -226,6 +243,9 @@ export default {
navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
+ if (componentId && softwareProductId) {
+ ComputeFlavorActionHelper.fetchComputesList(dispatch, {softwareProductId, componentId, version});
+ }
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
},
@@ -255,6 +275,15 @@ export default {
navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version}) {
SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, version, componentId});
+ },
+
+ navigateToComponentImages(dispatch, {softwareProductId, componentId, version}) {
+ SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
+ softwareProductId,
+ componentId,
+ version
+ });
+ setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES, {softwareProductId, version, componentId});
}
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingConstants.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingConstants.js
index 7811950073..0fff513cc5 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingConstants.js
@@ -15,6 +15,8 @@
*/
import keyMirror from 'nfvo-utils/KeyMirror.js';
+export const DATE_FORMAT = 'MM/DD/YYYY';
+
export const actionTypes = keyMirror({
SET_CURRENT_SCREEN: null,
SET_CURRENT_LICENSE_MODEL: null
@@ -36,6 +38,7 @@ export const enums = keyMirror({
SOFTWARE_PRODUCT_DETAILS: 'SOFTWARE_PRODUCT_DETAILS',
SOFTWARE_PRODUCT_ATTACHMENTS: 'SOFTWARE_PRODUCT_ATTACHMENTS',
SOFTWARE_PRODUCT_PROCESSES: 'SOFTWARE_PRODUCT_PROCESSES',
+ SOFTWARE_PRODUCT_DEPLOYMENT: 'SOFTWARE_PRODUCT_DEPLOYMENT',
SOFTWARE_PRODUCT_NETWORKS: 'SOFTWARE_PRODUCT_NETWORKS',
SOFTWARE_PRODUCT_DEPENDENCIES: 'SOFTWARE_PRODUCT_DEPENDENCIES',
SOFTWARE_PRODUCT_ACTIVITY_LOG: 'SOFTWARE_PRODUCT_ACTIVITY_LOG',
@@ -45,7 +48,8 @@ export const enums = keyMirror({
SOFTWARE_PRODUCT_COMPONENT_GENERAL: 'SOFTWARE_PRODUCT_COMPONENT_GENERAL',
SOFTWARE_PRODUCT_COMPONENT_COMPUTE: 'SOFTWARE_PRODUCT_COMPONENT_COMPUTE',
SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING: 'SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING',
- SOFTWARE_PRODUCT_COMPONENT_MONITORING: 'SOFTWARE_PRODUCT_COMPONENT_MONITORING'
+ SOFTWARE_PRODUCT_COMPONENT_MONITORING: 'SOFTWARE_PRODUCT_COMPONENT_MONITORING',
+ SOFTWARE_PRODUCT_COMPONENT_IMAGES: 'SOFTWARE_PRODUCT_COMPONENT_IMAGES'
},
SCREEN: {
@@ -61,6 +65,7 @@ export const enums = keyMirror({
SOFTWARE_PRODUCT_DETAILS: null,
SOFTWARE_PRODUCT_ATTACHMENTS: null,
SOFTWARE_PRODUCT_PROCESSES: null,
+ SOFTWARE_PRODUCT_DEPLOYMENT: null,
SOFTWARE_PRODUCT_NETWORKS: null,
SOFTWARE_PRODUCT_DEPENDENCIES: null,
SOFTWARE_PRODUCT_ACTIVITY_LOG: null,
@@ -71,6 +76,7 @@ export const enums = keyMirror({
SOFTWARE_PRODUCT_COMPONENT_NETWORK: null,
SOFTWARE_PRODUCT_COMPONENT_GENERAL: null,
SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING: null,
- SOFTWARE_PRODUCT_COMPONENT_MONITORING: null
+ SOFTWARE_PRODUCT_COMPONENT_MONITORING: null,
+ SOFTWARE_PRODUCT_COMPONENT_IMAGES: null
}
});
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
index e8a844b03f..1f0bef7a9f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
@@ -27,7 +27,7 @@ import Configuration from 'sdc-app/config/Configuration.js';
import Onboard from './onboard/Onboard.js';
import LicenseModel from './licenseModel/LicenseModel.js';
import LicenseModelOverview from './licenseModel/overview/LicenseModelOverview.js';
-import ActivityLog from 'nfvo-components/activity-log/ActivityLog.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';
@@ -39,17 +39,25 @@ import SoftwareProductLandingPage from './softwareProduct/landingPage/SoftwareP
import SoftwareProductDetails from './softwareProduct/details/SoftwareProductDetails.js';
import SoftwareProductAttachments from './softwareProduct/attachments/SoftwareProductAttachments.js';
import SoftwareProductProcesses from './softwareProduct/processes/SoftwareProductProcesses.js';
+import SoftwareProductDeployment from './softwareProduct/deployment/SoftwareProductDeployment.js';
import SoftwareProductNetworks from './softwareProduct/networks/SoftwareProductNetworks.js';
import SoftwareProductDependencies from './softwareProduct/dependencies/SoftwareProductDependencies.js';
-import SoftwareProductComponentsList from './softwareProduct/components/SoftwareProductComponentsList.js';
+
+import SoftwareProductComponentsList from './softwareProduct/components/SoftwareProductComponents.js';
import SoftwareProductComponentProcessesList from './softwareProduct/components/processes/SoftwareProductComponentProcessesList.js';
import SoftwareProductComponentStorage from './softwareProduct/components/storage/SoftwareProductComponentStorage.js';
import SoftwareProductComponentsNetworkList from './softwareProduct/components/network/SoftwareProductComponentsNetworkList.js';
import SoftwareProductComponentsGeneral from './softwareProduct/components/general/SoftwareProductComponentsGeneral.js';
import SoftwareProductComponentsCompute from './softwareProduct/components/compute/SoftwareProductComponentCompute.js';
import SoftwareProductComponentLoadBalancing from './softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancing.js';
+import SoftwareProductComponentsImageList from './softwareProduct/components/images/SoftwareProductComponentsImageList.js';
import SoftwareProductComponentsMonitoring from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js';
-import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
+import {
+ navigationItems as SoftwareProductNavigationItems,
+ onboardingMethod as onboardingMethodTypes,
+ actionTypes as SoftwareProductActionTypes
+} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
+
import {statusEnum as VCItemStatus} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
@@ -123,6 +131,7 @@ class OnboardingView extends React.Component {
case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS:
case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
+ case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
@@ -132,6 +141,7 @@ class OnboardingView extends React.Component {
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
+ case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
return (
@@ -147,6 +157,8 @@ class OnboardingView extends React.Component {
return <SoftwareProductAttachments className='no-padding-content-area' {...props} />;
case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
return <SoftwareProductProcesses {...props}/>;
+ case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
+ return <SoftwareProductDeployment {...props}/>;
case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
return <SoftwareProductNetworks {...props}/>;
case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
@@ -165,6 +177,8 @@ class OnboardingView extends React.Component {
return <SoftwareProductComponentsCompute {...props}/>;
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
return <SoftwareProductComponentLoadBalancing{...props}/>;
+ case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
+ return <SoftwareProductComponentsImageList{...props}/>;
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
return <SoftwareProductComponentsMonitoring {...props}/>;
case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
@@ -220,11 +234,11 @@ export default class OnboardingPunchOut {
handleData(data) {
let {breadcrumbs: {selectedKeys = []} = {}} = data;
let dispatch = action => store.dispatch(action);
- let {currentScreen, softwareProductList, softwareProduct: {softwareProductEditor: {data: vspData = {}},
+ let {currentScreen, softwareProductList, softwareProduct: {softwareProductEditor: {data: vspData = {}},
softwareProductComponents = {}, softwareProductQuestionnaire = {}},
licenseModelList, licenseModel: {licenseModelEditor: {data: {id: currentLicenseModelId, version: currentLicenseModelVersion} = {}}}} = store.getState();
let {id: currentSoftwareProductId, version: currentSoftwareProductVersion} = vspData;
- let {componentEditor: {data: componentData = {}, qdata: componentQData = {}}} = softwareProductComponents;
+ let {componentEditor: {data: componentData = {}, qdata: componentQData = {}}} = softwareProductComponents;
if (this.programmaticBreadcrumbsUpdate) {
this.prevSelectedKeys = selectedKeys;
this.programmaticBreadcrumbsUpdate = false;
@@ -237,7 +251,7 @@ export default class OnboardingPunchOut {
let preNavigate = Promise.resolve();
if(screenType === enums.BREADCRUMS.SOFTWARE_PRODUCT && vspData.status === VCItemStatus.CHECK_OUT_STATUS && VersionControllerUtils.isCheckedOutByCurrentUser(vspData)) {
let dataToSave = prevVspId ? prevComponentId ? {componentData, qdata: componentQData} : {softwareProduct: vspData, qdata: softwareProductQuestionnaire.qdata} : {};
- preNavigate = OnboardingActionHelper.autoSaveBeforeNavigate(dispatch, {
+ preNavigate = OnboardingActionHelper.autoSaveBeforeNavigate(dispatch, {
softwareProductId: prevVspId,
version: currentSoftwareProductVersion,
vspComponentId: prevComponentId,
@@ -305,6 +319,9 @@ export default class OnboardingPunchOut {
case enums.BREADCRUMS.SOFTWARE_PRODUCT_PROCESSES:
OnboardingActionHelper.navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
break;
+ case enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPLOYMENT:
+ OnboardingActionHelper.navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
+ break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_NETWORKS:
OnboardingActionHelper.navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version: currentSoftwareProductVersion});
break;
@@ -355,22 +372,29 @@ export default class OnboardingPunchOut {
OnboardingActionHelper.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
- OnboardingActionHelper.navigateToComponentCompute(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToComponentCompute(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
- OnboardingActionHelper.navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
- OnboardingActionHelper.navigateToComponentNetwork(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
- OnboardingActionHelper.navigateToComponentStorage(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToComponentStorage(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
- OnboardingActionHelper.navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
break;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
- OnboardingActionHelper.navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, componentId});
+ OnboardingActionHelper.navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, componentId, version: currentSoftwareProductVersion});
+ break;
+ case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
+ OnboardingActionHelper.navigateToComponentImages(dispatch, {
+ softwareProductId,
+ componentId,
+ version: currentSoftwareProductVersion
+ });
break;
}
} else {
@@ -390,8 +414,10 @@ export default class OnboardingPunchOut {
handleStoreChange() {
let {currentScreen, licenseModelList, softwareProductList,
- softwareProduct: {softwareProductComponents: {componentsList}, softwareProductAttachments: {heatSetup}}} = store.getState();
- let breadcrumbsData = {currentScreen, licenseModelList, softwareProductList, componentsList, heatSetup};
+ softwareProduct: {softwareProductEditor: {data = {onboardingMethod: ''}},
+ softwareProductComponents: {componentsList, images: {imagesNavigationList}}, softwareProductAttachments: {heatSetup}}} = store.getState();
+ let {onboardingMethod} = data;
+ let breadcrumbsData = {onboardingMethod, currentScreen, licenseModelList, softwareProductList, componentsList, heatSetup, imagesNavigationList};
if (currentScreen.forceBreadCrumbsUpdate || !isEqual(breadcrumbsData, this.prevBreadcrumbsData) || this.breadcrumbsPrefixSelected) {
this.prevBreadcrumbsData = breadcrumbsData;
this.breadcrumbsPrefixSelected = false;
@@ -408,7 +434,7 @@ export default class OnboardingPunchOut {
}
}
- buildBreadcrumbs({currentScreen: {screen, props}, licenseModelList, softwareProductList, componentsList, heatSetup}) {
+ buildBreadcrumbs({currentScreen: {screen, props}, onboardingMethod, licenseModelList, softwareProductList, componentsList, heatSetup, imagesNavigationList}) {
let screenToBreadcrumb;
switch (screen) {
case enums.SCREEN.ONBOARDING_CATALOG:
@@ -474,6 +500,7 @@ export default class OnboardingPunchOut {
case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS:
case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
+ case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
@@ -485,12 +512,14 @@ export default class OnboardingPunchOut {
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
+ case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
screenToBreadcrumb = {
[enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE]: enums.BREADCRUMS.SOFTWARE_PRODUCT_LANDING_PAGE,
[enums.SCREEN.SOFTWARE_PRODUCT_DETAILS]: enums.BREADCRUMS.SOFTWARE_PRODUCT_DETAILS,
[enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS]: enums.BREADCRUMS.SOFTWARE_PRODUCT_ATTACHMENTS,
[enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES]: enums.BREADCRUMS.SOFTWARE_PRODUCT_PROCESSES,
+ [enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT]: enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPLOYMENT,
[enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS]: enums.BREADCRUMS.SOFTWARE_PRODUCT_NETWORKS,
[enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES]: enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPENDENCIES,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENTS,
@@ -503,6 +532,7 @@ export default class OnboardingPunchOut {
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_NETWORK,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_GENERAL,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING,
+ [enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_IMAGES,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING]: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_MONITORING
};
let licenseModelId = softwareProductList.find(({id}) => id === props.softwareProductId).vendorId;
@@ -542,6 +572,9 @@ export default class OnboardingPunchOut {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_DETAILS,
displayText: i18n('General')
}, {
+ key: enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPLOYMENT,
+ displayText: i18n('Deployment Flavors')
+ }, {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_PROCESSES,
displayText: i18n('Process Details')
}, {
@@ -561,14 +594,16 @@ export default class OnboardingPunchOut {
displayText: i18n('Components')
}].filter(item => {
let isHeatData = doesHeatDataExist(heatSetup);
- let isComponentsData = componentsList.length > 0;
+ let isManualMode = onboardingMethod === onboardingMethodTypes.MANUAL;
switch (item.key) {
case enums.BREADCRUMS.SOFTWARE_PRODUCT_ATTACHMENTS:
return isHeatData;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENTS:
- return isComponentsData;
+ return (componentsList.length > 0);
+ case enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPLOYMENT:
+ return isManualMode;
case enums.BREADCRUMS.SOFTWARE_PRODUCT_DEPENDENCIES:
- return isComponentsData;
+ return (componentsList.length > 1);
default:
return true;
}
@@ -603,12 +638,23 @@ export default class OnboardingPunchOut {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_STORAGE,
displayText: i18n('Storage')
}, {
+ key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_IMAGES,
+ displayText: i18n('Images')
+ }, {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_PROCESSES,
displayText: i18n('Process Details')
}, {
key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_MONITORING,
displayText: i18n('Monitoring')
- }]
+ }].filter(item => {
+ switch (item.key) {
+ case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
+ return (onboardingMethod === onboardingMethodTypes.MANUAL ||
+ (imagesNavigationList && imagesNavigationList[props.componentId] === true));
+ default:
+ return true;
+ }
+ })
}]
];
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModel.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModel.js
index e21b0a81b0..895a329047 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModel.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModel.js
@@ -18,7 +18,7 @@ import {connect} from 'react-redux';
import i18n from 'nfvo-utils/i18n/i18n.js';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
import TabulatedEditor from 'src/nfvo-components/editor/TabulatedEditor.jsx';
-import ActivityLogActionHelper from 'nfvo-components/activity-log/ActivityLogActionHelper.js';
+import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
import {enums} from 'sdc-app/onboarding/OnboardingConstants.js';
import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
index 9a2d114bdc..bd060a4c28 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
@@ -15,7 +15,7 @@
*/
import {combineReducers} from 'redux';
-import activityLogReducer from 'nfvo-components/activity-log/ActivityLogReducer.js';
+import activityLogReducer from 'sdc-app/common/activity-log/ActivityLogReducer.js';
import licenseModelCreationReducer from './creation/LicenseModelCreationReducer.js';
import licenseModelEditorReducer from './LicenseModelEditorReducer.js';
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
index fe95b034dd..a7c95f608d 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
@@ -39,7 +39,9 @@ function postEntitlementPool(licenseModelId, entitlementPool, version) {
aggregationFunction: entitlementPool.aggregationFunction,
operationalScope: entitlementPool.operationalScope,
time: entitlementPool.time,
- manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber
+ manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber,
+ startDate: entitlementPool.startDate,
+ expiryDate: entitlementPool.expiryDate
});
}
@@ -55,7 +57,9 @@ function putEntitlementPool(licenseModelId, previousEntitlementPool, entitlement
aggregationFunction: entitlementPool.aggregationFunction,
operationalScope: entitlementPool.operationalScope,
time: entitlementPool.time,
- manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber
+ manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber,
+ startDate: entitlementPool.startDate,
+ expiryDate: entitlementPool.expiryDate
});
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
index ba0b238b17..761614dfeb 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
@@ -113,3 +113,5 @@ export const extractUnits = (units) => {
};
export const SP_ENTITLEMENT_POOL_FORM = 'SPENTITLEMENTPOOL';
+
+export const EP_TIME_FORMAT = 'MM/DD/YYYY';
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
index db1a3a97ca..bc9549765f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
@@ -14,10 +14,20 @@
* permissions and limitations under the License.
*/
import {actionTypes, defaultState, SP_ENTITLEMENT_POOL_FORM} from './EntitlementPoolsConstants.js';
+import moment from 'moment';
+import {DATE_FORMAT} from 'sdc-app/onboarding/OnboardingConstants.js';
export default (state = {}, action) => {
switch (action.type) {
case actionTypes.entitlementPoolsEditor.OPEN:
+ let entitlementPoolData = {...action.entitlementPool};
+ let {startDate, expiryDate} = entitlementPoolData;
+ if (startDate) {
+ entitlementPoolData.startDate = moment(startDate, DATE_FORMAT).format(DATE_FORMAT);
+ }
+ if (expiryDate) {
+ entitlementPoolData.expiryDate = moment(expiryDate, DATE_FORMAT).format(DATE_FORMAT);
+ }
return {
...state,
formReady: null,
@@ -72,9 +82,19 @@ export default (state = {}, action) => {
isValid: true,
errorText: '',
validations: [{type: 'required', data: true}]
+ },
+ 'startDate': {
+ isValid: true,
+ errorText: '',
+ validations: []
+ },
+ 'expiryDate': {
+ isValid: true,
+ errorText: '',
+ validations: []
}
},
- data: action.entitlementPool ? {...action.entitlementPool} : defaultState.ENTITLEMENT_POOLS_EDITOR_DATA
+ data: action.entitlementPool ? entitlementPoolData : defaultState.ENTITLEMENT_POOLS_EDITOR_DATA
};
case actionTypes.entitlementPoolsEditor.DATA_CHANGED:
return {
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
index d484437015..e4b52fc439 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
@@ -23,7 +23,7 @@ import InputOptions from 'nfvo-components/input/validation/InputOptions.jsx';
import Form from 'nfvo-components/input/validation/Form.jsx';
import GridSection from 'nfvo-components/grid/GridSection.jsx';
import GridItem from 'nfvo-components/grid/GridItem.jsx';
-import {optionsInputValues as EntitlementPoolsOptionsInputValues, thresholdUnitType, SP_ENTITLEMENT_POOL_FORM} from './EntitlementPoolsConstants.js';
+import {optionsInputValues as EntitlementPoolsOptionsInputValues, thresholdUnitType, SP_ENTITLEMENT_POOL_FORM, EP_TIME_FORMAT} from './EntitlementPoolsConstants.js';
import {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
const EntitlementPoolPropType = React.PropTypes.shape({
@@ -50,10 +50,11 @@ const EntitlementPoolPropType = React.PropTypes.shape({
})
});
-const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, validateName, validateChoiceWithOther, validateTimeOtherValue, thresholdValueValidation}) => {
+const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, validateName, validateChoiceWithOther, validateTimeOtherValue,
+ thresholdValueValidation, validateStartDate}) => {
let {
name, description, manufacturerReferenceNumber, operationalScope , aggregationFunction, thresholdUnits, thresholdValue,
- increments, time, entitlementMetric} = data;
+ increments, time, entitlementMetric, startDate, expiryDate} = data;
return (
<GridSection>
@@ -175,6 +176,8 @@ const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, val
onChange={manufacturerReferenceNumber => onDataChanged({manufacturerReferenceNumber}, SP_ENTITLEMENT_POOL_FORM)}
label={i18n('Manufacturer Reference Number')}
value={manufacturerReferenceNumber}
+ isValid={genericFieldInfo.manufacturerReferenceNumber.isValid}
+ errorText={genericFieldInfo.manufacturerReferenceNumber.errorText}
isRequired={true}
data-test-id='create-ep-reference-number'
type='text'/>
@@ -206,6 +209,40 @@ const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, val
data-test-id='create-ep-increments'
type='text'/>
</GridItem>
+ <GridItem colSpan={2} />
+ <GridItem colSpan={2}>
+ <Input
+ type='date'
+ label={i18n('Start Date')}
+ value={startDate}
+ dateFormat={EP_TIME_FORMAT}
+ startDate={startDate}
+ endDate={expiryDate}
+ onChange={startDate => onDataChanged(
+ {startDate: startDate ? startDate.format(EP_TIME_FORMAT) : ''},
+ SP_ENTITLEMENT_POOL_FORM,
+ {startDate: validateStartDate}
+ )}
+ isValid={genericFieldInfo.startDate.isValid}
+ errorText={genericFieldInfo.startDate.errorText}
+ selectsStart/>
+ </GridItem>
+ <GridItem colSpan={2}>
+ <Input
+ type='date'
+ label={i18n('Expiry Date')}
+ value={expiryDate}
+ dateFormat={EP_TIME_FORMAT}
+ startDate={startDate}
+ endDate={expiryDate}
+ onChange={expiryDate => {
+ onDataChanged({expiryDate: expiryDate ? expiryDate.format(EP_TIME_FORMAT) : ''}, SP_ENTITLEMENT_POOL_FORM);
+ onDataChanged({startDate}, SP_ENTITLEMENT_POOL_FORM, {startDate: validateStartDate});
+ }}
+ isValid={genericFieldInfo.expiryDate.isValid}
+ errorText={genericFieldInfo.expiryDate.errorText}
+ selectsEnd/>
+ </GridItem>
</GridSection>
);
};
@@ -251,6 +288,7 @@ class EntitlementPoolsEditorView extends React.Component {
validateName={(value)=> this.validateName(value)}
validateTimeOtherValue ={(value)=> this.validateTimeOtherValue(value)}
validateChoiceWithOther={(value)=> this.validateChoiceWithOther(value)}
+ validateStartDate={(value, state)=> this.validateStartDate(value, state)}
thresholdValueValidation={(value, state)=> this.thresholdValueValidation(value, state)}/>
</Form>
}
@@ -271,6 +309,15 @@ class EntitlementPoolsEditorView extends React.Component {
{isValid: false, errorText: i18n('Entitlement pool by the name \'' + value + '\' already exists. Entitlement pool name must be unique')};
}
+ validateStartDate(value, state) {
+ if (state.data.expiryDate) {
+ if (!value) {
+ return {isValid: false, errorText: i18n('Start date has to be specified if expiry date is specified')};
+ }
+ }
+ return {isValid: true, errorText: ''};
+ }
+
validateTimeOtherValue(value) {
return Validator.validate('time', value.other, [{type: 'required', data: true}, {type: 'numeric', data: true}]);
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
index 07a6f21a1a..55fd11b8bb 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
@@ -45,14 +45,14 @@ class EntitlementPoolsListEditorView extends React.Component {
};
render() {
- let {licenseModelId, vendorName, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
+ let {licenseModelId, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
let {onAddEntitlementPoolClick} = this.props;
const {localFilter} = this.state;
return (
<div className='entitlement-pools-list-editor'>
<ListEditorView
- title={i18n('Entitlement Pools', {vendorName})}
+ title={i18n('Entitlement Pools')}
plusButtonTitle={i18n('Add Entitlement Pool')}
onAdd={onAddEntitlementPoolClick}
filterValue={localFilter}
@@ -132,7 +132,7 @@ export default EntitlementPoolsListEditorView;
export function generateConfirmationMsg(entitlementPoolToDelete) {
let poolName = entitlementPoolToDelete ? entitlementPoolToDelete.name : '';
- let msg = i18n('Are you sure you want to delete "{poolName}"?', {poolName});
+ let msg = i18n(`Are you sure you want to delete "${poolName}"?`);
let subMsg = entitlementPoolToDelete
&& entitlementPoolToDelete.referencingFeatureGroups
&& entitlementPoolToDelete.referencingFeatureGroups.length > 0 ?
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
index bc0f5c71c0..f883bd7a14 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
@@ -51,12 +51,12 @@ class FeatureGroupListEditorView extends React.Component {
};
render() {
- let {vendorName, licenseModelId, featureGroupsModal, isReadOnlyMode, onAddFeatureGroupClick, version} = this.props;
+ let {licenseModelId, featureGroupsModal, isReadOnlyMode, onAddFeatureGroupClick, version} = this.props;
const {localFilter} = this.state;
return (
<div className='feature-groups-list-editor'>
<ListEditorView
- title={i18n('Feature Groups', {vendorName})}
+ title={i18n('Feature Groups')}
plusButtonTitle={i18n('Add Feature Group')}
filterValue={localFilter}
onFilter={value => this.setState({localFilter: value})}
@@ -146,7 +146,7 @@ export default FeatureGroupListEditorView;
export function generateConfirmationMsg(featureGroupToDelete) {
let name = featureGroupToDelete ? featureGroupToDelete.name : '';
- let msg = i18n('Are you sure you want to delete "{name}"?', {name});
+ let msg = i18n(`Are you sure you want to delete "${name}"?`);
let subMsg = featureGroupToDelete.referencingLicenseAgreements
&& featureGroupToDelete.referencingLicenseAgreements.length > 0 ?
i18n('This feature group is associated with one ore more license agreements') :
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js
index 373694f2bf..72a99e26ce 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js
@@ -44,7 +44,7 @@ const mapActionsToProps = (dispatch, {licenseModelId}) => {
onDeleteLicenseAgreement: (licenseAgreement, version) => dispatch({
type: globalMoadlActions.GLOBAL_MODAL_WARNING,
data:{
- msg: i18n('Are you sure you want to delete "{name}"?', {name: licenseAgreement.name}),
+ msg: i18n(`Are you sure you want to delete "${licenseAgreement.name}"?`),
title: i18n('Warning'),
onConfirmed: ()=>LicenseAgreementActionHelper.deleteLicenseAgreement(dispatch, {licenseModelId, licenseAgreementId: licenseAgreement.id, version})
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
index 776b04b8eb..192d2ded99 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
@@ -44,14 +44,14 @@ class LicenseAgreementListEditorView extends React.Component {
};
render() {
- const {licenseModelId, vendorName, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
+ const {licenseModelId, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
const {onAddLicenseAgreementClick} = this.props;
const {localFilter} = this.state;
return (
<div className='license-agreement-list-editor'>
<ListEditorView
- title={i18n('License Agreements', {vendorName})}
+ title={i18n('License Agreements')}
plusButtonTitle={i18n('Add License Agreement')}
onAdd={() => onAddLicenseAgreementClick(version)}
filterValue={localFilter}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
index a303e46706..b8ccd68bce 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
@@ -46,14 +46,14 @@ class LicenseKeyGroupsListEditorView extends React.Component {
};
render() {
- let {licenseModelId, vendorName, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
+ let {licenseModelId, isReadOnlyMode, isDisplayModal, isModalInEditMode, version} = this.props;
let {onAddLicenseKeyGroupClick} = this.props;
const {localFilter} = this.state;
return (
<div className='license-key-groups-list-editor'>
<ListEditorView
- title={i18n('License Key Groups', {vendorName})}
+ title={i18n('License Key Groups')}
plusButtonTitle={i18n('Add License Key Group')}
onAdd={onAddLicenseKeyGroupClick}
filterValue={localFilter}
@@ -147,7 +147,7 @@ export default LicenseKeyGroupsListEditorView;
export function generateConfirmationMsg(licenseKeyGroupToDelete) {
let name = licenseKeyGroupToDelete ? licenseKeyGroupToDelete.name : '';
- let msg = i18n('Are you sure you want to delete "{name}"?', {name});
+ let msg = i18n(`Are you sure you want to delete "${name}"?`);
let subMsg = licenseKeyGroupToDelete.referencingFeatureGroups
&& licenseKeyGroupToDelete.referencingFeatureGroups.length > 0 ?
i18n('This license key group is associated with one or more feature groups') :
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
index c63fbff21b..3b3e2fcf40 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
@@ -18,45 +18,40 @@ import {catalogItemTypeClasses, migrationStatusMapper} from './onboardingCatalog
import CatalogTile from './CatalogTile.jsx';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
import {statusEnum, statusBarTextMap} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import tooltip from './onboardingCatalog/Tooltip.jsx';
-
const CatalogTileIcon = ({catalogItemTypeClass}) => (
- <div className={'catalog-tile-icon ' + catalogItemTypeClass}>
- <div className='icon'><SVGIcon
- name={catalogItemTypeClass === catalogItemTypeClasses.LICENSE_MODEL ? 'vlm' : 'vsp' }/>
- </div>
+ <div className={'catalog-tile-icon ' + catalogItemTypeClass}>
+ <div className='icon'><SVGIcon
+ name={catalogItemTypeClass === catalogItemTypeClasses.LICENSE_MODEL ? 'vlm' : 'vsp' }/>
</div>
+ </div>
);
const ItemTypeTitle = ({catalogItemTypeClass}) => {
const itemTypeTitle = catalogItemTypeClass === catalogItemTypeClasses.LICENSE_MODEL ? i18n('VLM') : i18n('VSP');
- return(
+ return (
<div className={`catalog-tile-type ${catalogItemTypeClass}`}>{itemTypeTitle}</div>
);
};
-const CatalogTileVendorName = ({vendorName, catalogItemTypeClass}) => {
- const name = catalogItemTypeClass === catalogItemTypeClasses.SOFTWARE_PRODUCT ? vendorName : '';
- return(
- <div>
- <OverlayTrigger placement='top' overlay={tooltip(name)}>
- <div className='catalog-tile-vendor-name'>{name}</div>
- </OverlayTrigger>
- </div>
+const CatalogTileVendorName = ({vendorName, catalogItemTypeClass}) => {
+ const name = catalogItemTypeClass === catalogItemTypeClasses.SOFTWARE_PRODUCT ? vendorName : '';
+ return ( name ?
+ <OverlayTrigger placement='top' overlay={tooltip(name)}>
+ <div className='catalog-tile-vendor-name'>{name}</div>
+ </OverlayTrigger> : <div className='catalog-tile-vendor-name'>{name}</div>
);
};
const CatalogTileItemName = ({name}) => (
- <div>
- <OverlayTrigger placement='top' overlay={tooltip(name && name.toUpperCase())}>
- <div className='catalog-tile-item-name'>{name}</div>
- </OverlayTrigger>
- </div>
+ <OverlayTrigger placement='top' overlay={tooltip(name && name.toUpperCase())}>
+ <div className='catalog-tile-item-name'>{name}</div>
+ </OverlayTrigger>
);
const VersionInfo = ({version}) => (
@@ -64,7 +59,7 @@ const VersionInfo = ({version}) => (
<div className='catalog-tile-item-version' data-test-id='catalog-item-version'>
V {version}
</div>
- </div>
+ </div>
);
const EntityDetails = ({catalogItemData, catalogItemTypeClass}) => {
@@ -73,54 +68,55 @@ const EntityDetails = ({catalogItemData, catalogItemTypeClass}) => {
<div className='catalog-tile-entity-details'>
<CatalogTileVendorName catalogItemTypeClass={catalogItemTypeClass} vendorName={vendorName}/>
<CatalogTileItemName name={name}/>
- <VersionInfo version={version.label} />
- </div>
+ <VersionInfo version={version.label}/>
+ </div>
);
};
-const ItemStatusInfo = ({catalogItemTypeClass, lockingUser, itemStatus}) => {
+const ItemStatusInfo = ({catalogItemTypeClass, lockingUser, itemStatus}) => {
const status = statusBarTextMap[itemStatus];
const lockedBy = lockingUser ? ` by ${lockingUser}` : '';
const toolTipMsg = `${status}${lockedBy}`;
return (
- <div className={'catalog-tile-content ' + catalogItemTypeClass}>
+ <div className={'catalog-tile-content ' + catalogItemTypeClass}>
<div className='catalog-tile-locking-user-name'>{i18n(status)}</div>
- <OverlayTrigger placement='top' overlay={tooltip(toolTipMsg)}>
+ <OverlayTrigger placement='top' overlay={tooltip(toolTipMsg)}>
<div className='catalog-tile-check-in-status'><SVGIcon
name={itemStatus === statusEnum.CHECK_OUT_STATUS ? 'unlocked' : 'locked'}
data-test-id={itemStatus === statusEnum.CHECK_IN_STATUS ? 'catalog-item-checked-in' : 'catalog-item-checked-out'}/>
</div>
- </OverlayTrigger>
+ </OverlayTrigger>
</div>
-
+
);
};
-const CatalogItemDetails = ({catalogItemData, catalogItemTypeClass, onSelect, onMigrate}) => {
-
+const CatalogItemDetails = ({catalogItemData, catalogItemTypeClass, onSelect, onMigrate}) => {
+
let {status: itemStatus} = VersionControllerUtils.getCheckOutStatusKindByUserID(catalogItemData.status, catalogItemData.lockingUser);
-
+
return (
<CatalogTile catalogItemTypeClass={catalogItemTypeClass} onSelect={() => {
if (catalogItemData.isOldVersion && catalogItemData.isOldVersion === migrationStatusMapper.OLD_VERSION) {
onMigrate({
softwareProduct: catalogItemData
});
- } else {
+ }
+ else {
onSelect();
}
}} data-test-id={catalogItemTypeClass}>
- <div className='catalog-tile-top item-details'>
- <ItemTypeTitle catalogItemTypeClass={catalogItemTypeClass}/>
- <CatalogTileIcon catalogItemTypeClass={catalogItemTypeClass}/>
- <EntityDetails catalogItemTypeClass={catalogItemTypeClass} catalogItemData={catalogItemData} />
- <ItemStatusInfo itemStatus={itemStatus} catalogItemTypeClass={catalogItemTypeClass} lockingUser={catalogItemData.lockingUser} />
+ <div className='catalog-tile-top item-details'>
+ <ItemTypeTitle catalogItemTypeClass={catalogItemTypeClass}/>
+ <CatalogTileIcon catalogItemTypeClass={catalogItemTypeClass}/>
+ <EntityDetails catalogItemTypeClass={catalogItemTypeClass} catalogItemData={catalogItemData}/>
+ <ItemStatusInfo itemStatus={itemStatus} catalogItemTypeClass={catalogItemTypeClass} lockingUser={catalogItemData.lockingUser}/>
</div>
</CatalogTile>
);
-
+
};
CatalogItemDetails.PropTypes = {
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogList.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogList.jsx
index 17248e3b02..51702e6d36 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogList.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogList.jsx
@@ -15,7 +15,7 @@
*/
import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
const SoftwareProductListHeader = ({selectedVendor, onBack}) => (
<div className='vendor-page-header'>
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js
index 73a447558d..0d1e3992ce 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js
@@ -26,7 +26,7 @@ import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/Soft
function getMessageForMigration(name) {
return (
<div>
- <div>{i18n('{name} needs to be updated. Click ‘Checkout & Update’, to proceed.',{name})}</div>
+ <div>{i18n(`${name} needs to be updated. Click ‘Checkout & Update’, to proceed.`)}</div>
<div>{i18n('Please don’t forget to submit afterwards')}</div>
</div>
);
@@ -65,7 +65,7 @@ const OnboardingCatalogActionHelper = {
type: modalActionTypes.GLOBAL_MODAL_WARNING,
data: {
title: 'WARNING',
- msg: i18n('{name} is locked by user {lockingUser} for self-healing',{name, lockingUser})
+ msg: i18n(`${name} is locked by user ${lockingUser} for self-healing`)
}
});
} else {
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
index cecccdd9ad..d3d6f9ce37 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
@@ -19,7 +19,7 @@ import CatalogTile from '../CatalogTile.jsx';
import classnames from 'classnames';
import VSPOverlay from './VSPOverlay.jsx';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import tooltip from './Tooltip.jsx';
@@ -50,7 +50,7 @@ class VendorItem extends React.Component {
</div>
<OverlayTrigger placement='top' overlay={tooltip(vendorName)}>
<div className='catalog-tile-item-name'>{vendorName}</div>
- </OverlayTrigger>
+ </OverlayTrigger>
<div
className={classnames('catalog-tile-vsp-count', {active: shouldShowOverlay}, {clickable: softwareProductList.length})}
onClick={(event) => this.handleVspCountClick(event)}
@@ -63,7 +63,7 @@ class VendorItem extends React.Component {
</div>
</div>
</div>
-
+
{shouldShowOverlay && softwareProductList.length > 0
&& <VSPOverlay onMigrate={onMigrate} VSPList={softwareProductList} onSelectVSP={onSelectVSP} onSeeMore={() => onVendorSelect(vendor)}/>}
</CatalogTile>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
index 12f68a2afe..07d6c740e0 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
@@ -22,7 +22,7 @@ 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} from './SoftwareProductConstants.js';
+import {navigationItems, mapScreenToNavigationItem, onboardingMethod as onboardingMethodTypes} from './SoftwareProductConstants.js';
import SoftwareProductActionHelper from './SoftwareProductActionHelper.js';
import SoftwareProductComponentsActionHelper from './components/SoftwareProductComponentsActionHelper.js';
import SoftwareProductDependenciesActionHelper from './dependencies/SoftwareProductDependenciesActionHelper.js';
@@ -36,7 +36,7 @@ function getActiveNavigationId(screen, componentId) {
return activeItemId;
}
-const buildComponentNavigationBarGroups = ({componentId, meta}) => {
+const buildComponentNavigationBarGroups = ({componentId, meta, hasImages}) => {
const groups = ([
{
id: navigationItems.GENERAL + '|' + componentId,
@@ -64,6 +64,12 @@ const buildComponentNavigationBarGroups = ({componentId, meta}) => {
disabled: false,
meta
}, {
+ id: navigationItems.IMAGES + '|' + componentId,
+ name: i18n('Images'),
+ disabled: false,
+ hidden: (!hasImages),
+ meta
+ }, {
id: navigationItems.PROCESS_DETAILS + '|' + componentId,
name: i18n('Process Details'),
disabled: false,
@@ -79,9 +85,9 @@ const buildComponentNavigationBarGroups = ({componentId, meta}) => {
return groups;
};
-const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds}) => {
+const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds, imagesNavigationList}) => {
const {softwareProductEditor: {data: currentSoftwareProduct = {}}} = softwareProduct;
- const {id, name} = currentSoftwareProduct;
+ const {id, name, onboardingMethod} = currentSoftwareProduct;
const groups = [{
id: id,
name: name,
@@ -96,6 +102,13 @@ const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, co
name: i18n('General'),
disabled: false,
meta
+ },
+ {
+ id: navigationItems.DEPLOYMENT_FLAVORS,
+ name: i18n('Deployment Flavors'),
+ disabled: false,
+ hidden: onboardingMethod !== onboardingMethodTypes.MANUAL,
+ meta
}, {
id: navigationItems.PROCESS_DETAILS,
name: i18n('Process Details'),
@@ -135,7 +148,8 @@ const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, co
name: displayName,
meta,
expanded: mapOfExpandedIds[navigationItems.COMPONENTS + '|' + id] === true && screen !== enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE,
- items: buildComponentNavigationBarGroups({componentId: id, meta})
+ items: buildComponentNavigationBarGroups({componentId: id, meta,
+ hasImages : (onboardingMethod === onboardingMethodTypes.MANUAL || imagesNavigationList[id] === true)})
}))
]
}
@@ -179,17 +193,18 @@ function buildMeta({softwareProduct, componentId, softwareProductDependencies})
const mapStateToProps = ({softwareProduct}, {currentScreen: {screen, props: {componentId}}}) => {
const {softwareProductEditor, softwareProductComponents, softwareProductDependencies} = softwareProduct;
const {mapOfExpandedIds = []} = softwareProductEditor;
- const {componentsList = []} = softwareProductComponents;
+ const {componentsList = [], images: {imagesNavigationList}} = softwareProductComponents;
+
const meta = buildMeta({softwareProduct, componentId, softwareProductDependencies});
return {
versionControllerProps: buildVersionControllerProps(softwareProduct),
- navigationBarProps: buildNavigationBarProps({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds}),
+ navigationBarProps: buildNavigationBarProps({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds, imagesNavigationList}),
meta
};
};
-const autoSaveBeforeNavigate = ({dispatch, screen, softwareProductId, componentId,
- meta: {isReadOnlyMode, softwareProduct, version, qdata, softwareProductDependencies,
+const autoSaveBeforeNavigate = ({dispatch, screen, softwareProductId, componentId,
+ meta: {isReadOnlyMode, softwareProduct, version, qdata, softwareProductDependencies,
currentComponentMeta: {componentData, componentQdata}}}) => {
let promise;
if (isReadOnlyMode) {
@@ -208,6 +223,7 @@ const autoSaveBeforeNavigate = ({dispatch, screen, softwareProductId, componentI
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
+ case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
promise = SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch, {softwareProductId, version, vspComponentId: componentId, qdata: componentQdata});
break;
@@ -242,6 +258,9 @@ const onComponentNavigate = (dispatch, {id, softwareProductId, version, currentC
case navigationItems.NETWORKS:
OnboardingActionHelper.navigateToComponentNetwork(dispatch, {softwareProductId, componentId: nextComponentId, version});
break;
+ case navigationItems.IMAGES:
+ OnboardingActionHelper.navigateToComponentImages(dispatch, {softwareProductId, componentId: nextComponentId, version});
+ break;
case navigationItems.STORAGE:
OnboardingActionHelper.navigateToComponentStorage(dispatch, {softwareProductId, componentId: nextComponentId, version});
break;
@@ -266,7 +285,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
let {heatSetup, heatSetupCache} = meta;
let heatSetupPopupPromise = screen === enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS ?
HeatSetupActionHelper.heatSetupLeaveConfirmation(dispatch, {softwareProductId, heatSetup, heatSetupCache}) :
- Promise.resolve();
+ Promise.resolve();
let preNavigate = meta ? autoSaveBeforeNavigate({dispatch, screen, meta, softwareProductId, componentId: currentComponentId}) : Promise.resolve();
version = version || (meta ? meta.version : undefined);
Promise.all([preNavigate, heatSetupPopupPromise]).then(() => {
@@ -277,6 +296,9 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
case navigationItems.GENERAL:
OnboardingActionHelper.navigateToSoftwareProductDetails(dispatch, {softwareProductId, version});
break;
+ case navigationItems.DEPLOYMENT_FLAVORS:
+ OnboardingActionHelper.navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version});
+ break;
case navigationItems.PROCESS_DETAILS:
OnboardingActionHelper.navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version});
break;
@@ -299,7 +321,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
onComponentNavigate(dispatch, {id, softwareProductId, version, screen, currentComponentId});
break;
}
- }).catch(() => {});
+ }).catch((e) => {console.error(e);});
}
};
@@ -311,6 +333,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
+ case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
props.onSave = () => {
@@ -335,7 +358,7 @@ const mapActionsToProps = (dispatch, {currentScreen: {screen, props: {softwarePr
OnboardingActionHelper.navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version: newVersion});
}
});
- }).catch(() => {});
+ }).catch((e) => {console.error(e);});
};
return props;
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
index 6f53886350..d6ba86ad6e 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
@@ -27,6 +27,7 @@ import {actionsEnum as VersionControllerActionsEnum} from 'nfvo-components/panel
import {actionTypes as HeatSetupActions} from 'sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupConstants.js';
import {actionTypes as featureGroupsActionConstants} from 'sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsConstants.js';
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';
@@ -57,7 +58,8 @@ function putSoftwareProduct(softwareProduct) {
vendorName: softwareProduct.vendorName,
licensingVersion: softwareProduct.licensingVersion && softwareProduct.licensingVersion.id ? softwareProduct.licensingVersion : {} ,
icon: softwareProduct.icon,
- licensingData: softwareProduct.licensingData
+ licensingData: softwareProduct.licensingData,
+ onboardingMethod: softwareProduct.onboardingMethod
});
}
@@ -249,7 +251,8 @@ const SoftwareProductActionHelper = {
processAndValidateHeatCandidate(dispatch, {softwareProductId, version}){
return validateHeatCandidate(softwareProductId, version).then(response => {
if (response.status === 'Success') {
- SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
+ let isFetchImageDetails = true;
+ SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version, isFetchImageDetails});
SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
}
});
@@ -459,8 +462,20 @@ const SoftwareProductActionHelper = {
},
/** for the next verision */
- addComponent(dispatch) {
- return dispatch;
+ addComponent(dispatch, {softwareProductId, modalClassName}) {
+ SoftwareProductComponentsActionHelper.clearComponentCreationData(dispatch);
+ dispatch({
+ type: componentActionTypes.COMPONENT_CREATE_OPEN
+ });
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_SHOW,
+ data: {
+ modalComponentName: modalContentMapper.COMPONENT_CREATION,
+ modalComponentProps: {softwareProductId},
+ modalClassName,
+ title: 'Create Virtual Function Component'
+ }
+ });
},
migrateSoftwareProduct(dispatch, {softwareProduct}) {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
index f29b0f6e0d..0379ee5d4a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js
@@ -38,11 +38,13 @@ export const navigationItems = keyMirror({
VENDOR_SOFTWARE_PRODUCT: 'vendor-software-product',
GENERAL: 'general',
PROCESS_DETAILS: 'process-details',
- NETWORKS: 'networks',
- DEPENDENCIES: 'dependencies',
+ DEPLOYMENT_FLAVORS: 'deployment-flavor',
+ NETWORKS: 'networks',
+ IMAGES: 'images',
ATTACHMENTS: 'attachments',
ACTIVITY_LOG: 'activity-log',
COMPONENTS: 'components',
+ DEPENDENCIES: 'dependencies',
COMPUTE: 'compute',
LOAD_BALANCING: 'load-balancing',
@@ -50,6 +52,11 @@ export const navigationItems = keyMirror({
MONITORING: 'monitoring'
});
+export const onboardingMethod = {
+ MANUAL: 'Manual',
+ HEAT: 'HEAT'
+};
+
export const forms = keyMirror({
VENDOR_SOFTWARE_PRODUCT_DETAILS: 'vendor-software-product-details',
});
@@ -61,6 +68,7 @@ export const mapScreenToNavigationItem = {
[enums.SCREEN.SOFTWARE_PRODUCT_DETAILS]: navigationItems.GENERAL,
[enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS]: navigationItems.ATTACHMENTS,
[enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES]: navigationItems.PROCESS_DETAILS,
+ [enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT]: navigationItems.DEPLOYMENT_FLAVORS,
[enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS]: navigationItems.NETWORKS,
[enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG]: navigationItems.ACTIVITY_LOG,
[enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES]: navigationItems.DEPENDENCIES,
@@ -69,6 +77,7 @@ export const mapScreenToNavigationItem = {
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE]: navigationItems.COMPUTE,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING]: navigationItems.LOAD_BALANCING,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK]: navigationItems.NETWORKS,
+ [enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES]: navigationItems.IMAGES,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE]: navigationItems.STORAGE,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES]: navigationItems.PROCESS_DETAILS,
[enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING]: navigationItems.MONITORING,
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
index 97988d87f9..5248c4e8fd 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
@@ -22,6 +22,8 @@ import SoftwareProductCreationReducer from './creation/SoftwareProductCreationRe
import SoftwareProductDetailsReducer from './details/SoftwareProductDetailsReducer.js';
import SoftwareProductProcessesListReducer from './processes/SoftwareProductProcessesListReducer.js';
import SoftwareProductProcessesEditorReducer from './processes/SoftwareProductProcessesEditorReducer.js';
+import SoftwareProductDeploymentListReducer from './deployment/SoftwareProductDeploymentListReducer.js';
+import SoftwareProductDeploymentEditorReducer from './deployment/editor/SoftwareProductDeploymentEditorReducer.js';
import SoftwareProductNetworksListReducer from './networks/SoftwareProductNetworksListReducer.js';
import SoftwareProductComponentsListReducer from './components/SoftwareProductComponentsListReducer.js';
import SoftwareProductComponentEditorReducer from './components/SoftwareProductComponentEditorReducer.js';
@@ -31,12 +33,19 @@ import SoftwareProductComponentProcessesEditorReducer from './components/process
import {actionTypes as componentProcessesActionTypes} from './components/processes/SoftwareProductComponentProcessesConstants.js';
import SoftwareProductComponentsNICListReducer from './components/network/SoftwareProductComponentsNICListReducer.js';
import SoftwareProductComponentsNICEditorReducer from './components/network/SoftwareProductComponentsNICEditorReducer.js';
+import SoftwareProductComponentsImageListReducer from './components/images/SoftwareProductComponentsImageListReducer.js';
+import SoftwareProductComponentsImageEditorReducer from './components/images/SoftwareProductComponentsImageEditorReducer.js';
+import SoftwareProductComponentsImageNavigationReducer from './components/images/SoftwareProductComponentsImageNavigationReducer.js';
+import SoftwareProductComponentsNICCreationReducer from './components/network/NICCreation/NICCreationReducer.js';
import SoftwareProductComponentsMonitoringReducer from './components/monitoring/SoftwareProductComponentsMonitoringReducer.js';
+import SoftwareProductComponentsComputeFlavorListReducer from './components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js';
+import SoftwareProductComponentsComputeFlavorReducer from './components/compute/computeComponents/computeFlavor/ComputeFlavorReducer.js';
import {createPlainDataReducer} from 'sdc-app/common/reducers/PlainDataReducer.js';
import SoftwareProductDependenciesReducer from './dependencies/SoftwareProductDependenciesReducer.js';
import {createJSONSchemaReducer, createComposedJSONSchemaReducer} from 'sdc-app/common/reducers/JSONSchemaReducer.js';
-import {COMPONENTS_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+import {COMPONENTS_QUESTIONNAIRE, COMPONENTS_COMPUTE_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
import {NIC_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js';
+import {IMAGE_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageConstants.js';
export default combineReducers({
softwareProductAttachments: combineReducers({
@@ -51,6 +60,10 @@ export default combineReducers({
processesEditor: createPlainDataReducer(SoftwareProductProcessesEditorReducer),
processToDelete: (state = false, action) => action.type === processesActionTypes.SOFTWARE_PRODUCT_PROCESS_DELETE_CONFIRM ? action.processToDelete : state
}),
+ softwareProductDeployment: combineReducers({
+ deploymentFlavors: SoftwareProductDeploymentListReducer,
+ deploymentFlavorEditor: createPlainDataReducer(SoftwareProductDeploymentEditorReducer)
+ }),
softwareProductNetworks: combineReducers({
networksList: SoftwareProductNetworksListReducer
}),
@@ -65,7 +78,17 @@ export default combineReducers({
}),
network: combineReducers({
nicList: SoftwareProductComponentsNICListReducer,
- nicEditor: createPlainDataReducer(createComposedJSONSchemaReducer(NIC_QUESTIONNAIRE, SoftwareProductComponentsNICEditorReducer))
+ nicEditor: createPlainDataReducer(createComposedJSONSchemaReducer(NIC_QUESTIONNAIRE, SoftwareProductComponentsNICEditorReducer)),
+ nicCreation: createPlainDataReducer(SoftwareProductComponentsNICCreationReducer)
+ }),
+ images: combineReducers({
+ imagesList: SoftwareProductComponentsImageListReducer,
+ imagesNavigationList: SoftwareProductComponentsImageNavigationReducer,
+ imageEditor: createPlainDataReducer(createComposedJSONSchemaReducer(IMAGE_QUESTIONNAIRE, SoftwareProductComponentsImageEditorReducer))
+ }),
+ computeFlavor: combineReducers({
+ computesList: SoftwareProductComponentsComputeFlavorListReducer,
+ computeEditor: createPlainDataReducer(createComposedJSONSchemaReducer(COMPONENTS_COMPUTE_QUESTIONNAIRE, SoftwareProductComponentsComputeFlavorReducer)),
}),
monitoring: SoftwareProductComponentsMonitoringReducer
}),
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupView.jsx
index 0d8bc58361..901a583e24 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupView.jsx
@@ -14,14 +14,14 @@
* permissions and limitations under the License.
*/
import React, {Component} from 'react';
-import Button from 'react-bootstrap/lib/Button.js';
+import Button from 'sdc-ui/lib/react/Button.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import FormControl from 'react-bootstrap/lib/FormControl.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import SelectInput from 'nfvo-components/input/SelectInput.jsx';
import Icon from 'nfvo-components/icon/Icon.jsx';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import {fileTypes} from './HeatSetupConstants.js';
import {tabsMapping} from '../SoftwareProductAttachmentsConstants.js';
import {sortable} from 'react-sortable';
@@ -76,8 +76,8 @@ class SortableModuleFileList extends Component {
<div className='modules-list-wrapper'>
<div className='modules-list-header'>
<div className='modules-list-controllers'>
- {!isBaseExist && <Button bsStyle='link' onClick={onBaseAdd} disabled={unassigned.length === 0}>{i18n('Add Base')}</Button>}
- <Button bsStyle='link' onClick={onModuleAdd} disabled={unassigned.length === 0}>{i18n('Add Module')}</Button>
+ {!isBaseExist && <Button btnType='link' onClick={onBaseAdd} disabled={unassigned.length === 0}>{i18n('Add Base')}</Button>}
+ <Button btnType='link' onClick={onModuleAdd} disabled={unassigned.length === 0}>{i18n('Add Module')}</Button>
</div>
</div>
<ul>{listItems}</ul>
@@ -102,7 +102,7 @@ const EmptyListContent = props => {
return (
<div className='go-to-validation-button-wrapper'>
<div className='all-files-assigned'>{i18n(displayText)}</div>
- {heatDataExist && <div className={'link'} onClick={onClick} data-test-id='go-to-validation'>{i18n('Proceed To Validation')}<SVGIcon name='angle-right'/></div>}
+ {heatDataExist && <div className={'link'} onClick={onClick} data-test-id='go-to-validation'>{i18n('Proceed To Validation')}<SVGIcon name='angleRight'/></div>}
</div>
);
};
@@ -212,7 +212,7 @@ class ModuleFile extends Component {
data-test-id={isBase ? 'base-name' : 'module-name'}/>}
</div>
</div>
- <SVGIcon name='trash-o' onClick={() => onModuleDelete(name)} data-test-id='module-delete'/>
+ <SVGIcon name='trashO' onClick={() => onModuleDelete(name)} data-test-id='module-delete'/>
</div>
<div className='modules-list-item-selectors'>
<SelectWithFileType
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 25ad90f351..f2d5de4dff 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
@@ -17,7 +17,7 @@ import React, {Component, PropTypes} from 'react';
import classNames from 'classnames';
import Collapse from 'react-bootstrap/lib/Collapse.js';
import Icon from 'nfvo-components/icon/Icon.jsx';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import {mouseActions, errorLevels, nodeFilters} from './HeatValidationConstants.js';
@@ -68,7 +68,7 @@ function HeatFileTreeRow(props) {
isFolder &&
<div onClick={() => toggleExpanded(path)}
className='tree-node-expander'>
- <SVGIcon name={!node.expanded ? 'chevron-up' : 'chevron-down'} data-test-id='validation-tree-block-toggle'/>
+ <SVGIcon name={!node.expanded ? 'chevronUp' : 'chevronDown'} data-test-id='validation-tree-block-toggle'/>
</div>
}
{
@@ -205,23 +205,19 @@ class HeatMessageBoard extends Component {
key={error.name + error.errorMessage + error.parentName + rand}
className='error-item' data-test-id='validation-error'>
{error.level === errorLevels.WARNING ?
- <SVGIcon name='exclamation-triangle-line' iconClassName='large' /> : <Icon image='error-lg' /> }
+ <SVGIcon name='exclamationTriangleLine' iconClassName='large' /> : <Icon image='error-lg' /> }
<span className='error-item-file-type'>
{
(this.props.selectedNode === nodeFilters.ALL) ?
<span>
<span className='error-file-name'>
- {i18n('{errorName}:', {
- errorName: error.name
- })}
+ {i18n(`${error.name}`)}
</span>
<span>
- {i18n('{message}', {message: error.errorMessage})}
+ {i18n(error.errorMessage)}
</span>
</span> :
- i18n('{errorMsg}', {
- errorMsg: error.errorMessage
- })
+ i18n(error.errorMesage)
}
</span>
</div>
@@ -249,7 +245,7 @@ class ErrorsAndWarningsCount extends Component {
<div className={'error-text ' + (size ? size : '')} data-test-id='validation-error-count'>{errors.errorCount}</div>
</div>}
{(errors.warningCount > 0) && <div className='counter'>
- <SVGIcon name='exclamation-triangle-line' iconClassName={size} />
+ <SVGIcon name='exclamationTriangleLine' iconClassName={size} />
<div className={'warning-text ' + (size ? size : '')} data-test-id='validation-warning-count'>{errors.warningCount}</div>
</div>}
</div>);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentEditorReducer.js
index 41e7556749..b13bde03c8 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentEditorReducer.js
@@ -17,6 +17,24 @@ import {actionTypes, forms} from './SoftwareProductComponentsConstants.js';
export default (state = {}, action) => {
switch (action.type) {
+ case actionTypes.COMPONENT_CREATE_OPEN:
+ return {
+ ...state,
+ formName: forms.CREATE_FORM,
+ formReady: null,
+ genericFieldInfo: {
+ 'displayName' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true}, {type: 'validateName', data: true}, {type: 'maxLength', data: 25}]
+ },
+ 'description' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 1000}]
+ }
+ }
+ };
case actionTypes.COMPONENT_LOAD:
return {
...state,
@@ -34,6 +52,11 @@ export default (state = {}, action) => {
errorText: '',
validations: []
},
+ 'nfcFunction' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 30}]
+ },
'description' : {
isValid: true,
errorText: '',
@@ -41,6 +64,27 @@ export default (state = {}, action) => {
}
}
};
+ case actionTypes.COMPONENT_UPDATE:
+ return {
+ ...state,
+ data: action.component
+ };
+ case actionTypes.COMPONENT_QUESTIONNAIRE_UPDATE:
+ return {
+ ...state,
+ qdata: action.payload.qdata || state.qdata,
+ qschema: action.payload.qschema || state.qschema
+ };
+ case actionTypes.COMPONENT_DATA_CHANGED:
+ return {
+ ...state,
+ data: {
+ ...state.data,
+ ...action.deltaData
+ }
+ };
+ case actionTypes.COMPONENT_DATA_CLEAR:
+ return {};
default:
return state;
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponents.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponents.js
new file mode 100644
index 0000000000..61aebdf293
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponents.js
@@ -0,0 +1,65 @@
+import {connect} from 'react-redux';
+import React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+import SoftwareProductComponentsList from './SoftwareProductComponentsList.js';
+import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+import SoftwareProductComponentsActionHelper from '../components/SoftwareProductComponentsActionHelper.js';
+import {onboardingMethod} from '../SoftwareProductConstants.js';
+import ConfirmationModalConstants from 'nfvo-components/modal/GlobalModalConstants.js';
+
+const generateMessage = (name) => {
+ return i18n(`Are you sure you want to delete ${name}?`);
+};
+
+const mapStateToProps = ({softwareProduct}) => {
+ let {softwareProductEditor: {data: currentSoftwareProduct}, softwareProductComponents} = softwareProduct;
+ let {componentsList} = softwareProductComponents;
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+
+ return {
+ currentSoftwareProduct,
+ isReadOnlyMode,
+ componentsList,
+ isManual: currentSoftwareProduct.onboardingMethod === onboardingMethod.MANUAL
+
+ };
+};
+
+class SoftwareProductComponentsView extends React.Component {
+ render() {
+ let {currentSoftwareProduct, isReadOnlyMode, componentsList, isManual, onDeleteComponent} = this.props;
+ return (
+ <SoftwareProductComponentsList
+ isReadOnlyMode={isReadOnlyMode}
+ componentsList={componentsList}
+ onDeleteComponent={onDeleteComponent}
+ isManual={isManual}
+ currentSoftwareProduct={currentSoftwareProduct}/>);
+ }
+
+}
+
+const mapActionToProps = (dispatch) => {
+ return {
+ onComponentSelect: ({id: softwareProductId, componentId, version}) => {
+ OnboardingActionHelper.navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version });
+ },
+ onAddComponent: (softwareProductId) => SoftwareProductComponentsActionHelper.addComponent(dispatch, {softwareProductId}),
+ onDeleteComponent: (component, softwareProductId, version) => dispatch({
+ type: ConfirmationModalConstants.GLOBAL_MODAL_WARNING,
+ data:{
+ msg: generateMessage(component.displayName),
+ onConfirmed: ()=>SoftwareProductComponentsActionHelper.deleteComponent(dispatch,
+ {
+ softwareProductId,
+ componentId: component.id,
+ version
+ })
+ }
+ })
+ };
+};
+
+export default connect(mapStateToProps, mapActionToProps, null, {withRef: true})(SoftwareProductComponentsView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
index 4e526d3b56..71dc8325ad 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
@@ -18,6 +18,8 @@ import Configuration from 'sdc-app/config/Configuration.js';
import {actionTypes, COMPONENTS_QUESTIONNAIRE} from './SoftwareProductComponentsConstants.js';
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import SoftwareProductComponentsImageActionHelper from './images/SoftwareProductComponentsImageActionHelper.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
function baseUrl(softwareProductId, version) {
const versionId = version.id;
@@ -46,17 +48,53 @@ function putSoftwareProductComponent(softwareProductId, version, vspComponentId,
name: vspComponent.name,
displayName: vspComponent.displayName,
vfcCode: vspComponent.vfcCode,
+ nfcFunction: vspComponent.nfcFunction,
description: vspComponent.description
});
}
+function deleteSoftwareProductComponent(softwareProductId, componentId, version) {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version)}/${componentId}`,);
+}
+
+
+function postSoftwareProductComponent(softwareProductId, vspComponent, version) {
+
+ return RestAPIUtil.post(`${baseUrl(softwareProductId, version)}`, {
+ name: vspComponent.displayName,
+ displayName: vspComponent.displayName,
+ description: vspComponent.description
+ });
+}
+
+
const SoftwareProductComponentsActionHelper = {
- fetchSoftwareProductComponents(dispatch, {softwareProductId, version}) {
+ fetchSoftwareProductComponents(dispatch, {softwareProductId, version, isFetchImageDetails = false}) {
return fetchSoftwareProductComponents(softwareProductId, version).then(response => {
- dispatch({
- type: actionTypes.COMPONENTS_LIST_UPDATE,
- componentsList: response.results
- });
+ let componentImagesCalls = [];
+ if (isFetchImageDetails && response.listCount) {
+ response.results.map(component => {
+ let componentId = component.id;
+ componentImagesCalls[componentImagesCalls.length] =
+ SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
+ softwareProductId,
+ componentId,
+ version
+ });
+
+ });
+ return Promise.all(componentImagesCalls).then(() => {
+ dispatch({
+ type: actionTypes.COMPONENTS_LIST_UPDATE,
+ componentsList: response.results
+ });
+ });
+ } else {
+ dispatch({
+ type: actionTypes.COMPONENTS_LIST_UPDATE,
+ componentsList: response.results
+ });
+ }
});
},
@@ -110,7 +148,45 @@ const SoftwareProductComponentsActionHelper = {
type: actionTypes.COMPONENTS_LIST_UPDATE,
componentsList: []
});
- }
+ },
+
+ createSoftwareProductComponent(dispatch,{softwareProductId, componentData, version}) {
+ SoftwareProductComponentsActionHelper.closeComponentCreationModal(dispatch);
+ /* for mock only */
+
+ dispatch({
+ type: actionTypes.COMPONENTS_LIST_UPDATE,
+ componentsList: [{id: '123', ...componentData}]
+ });
+
+ postSoftwareProductComponent(softwareProductId, componentData, version).then(() => {
+ SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
+ });
+ },
+
+ clearComponentCreationData(dispatch) {
+ dispatch({
+ type: actionTypes.COMPONENT_DATA_CLEAR
+ });
+ },
+
+ closeComponentCreationModal(dispatch) {
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_CLOSE
+ });
+ SoftwareProductComponentsActionHelper.clearComponentCreationData(dispatch);
+ },
+
+ deleteComponent(dispatch, {softwareProductId, componentId, version}) {
+ deleteSoftwareProductComponent(softwareProductId, componentId, version);
+ dispatch({
+ type: actionTypes.COMPONENT_DELETE,
+ componentId: componentId
+ });
+ },
+
+
+
};
export default SoftwareProductComponentsActionHelper;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js
index 9307b099ed..35633b65cf 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js
@@ -18,7 +18,13 @@ import keyMirror from 'nfvo-utils/KeyMirror.js';
export const actionTypes = keyMirror({
COMPONENTS_LIST_UPDATE: null,
COMPONENTS_LIST_EDIT: null,
- COMPONENT_LOAD: null
+ COMPONENT_UPDATE: null,
+ COMPONENT_DATA_CHANGED: null,
+ COMPONENT_DATA_CLEAR: null,
+ COMPONENT_QUESTIONNAIRE_UPDATE: null,
+ COMPONENT_DELETE: null,
+ COMPONENT_LOAD: null,
+ COMPONENT_CREATE_OPEN: null
});
export const storageConstants = keyMirror({
@@ -30,16 +36,20 @@ export const storageConstants = keyMirror({
export const forms = keyMirror({
ALL_SPC_FORMS: null,
- NIC_EDIT_FORM: null
+ NIC_EDIT_FORM: null,
+ CREATE_FORM: null,
+ IMAGE_EDIT_FORM: null
});
export const COMPONENTS_QUESTIONNAIRE = 'component';
+export const COMPONENTS_COMPUTE_QUESTIONNAIRE = 'compute';
export const navigationItems = keyMirror({
STORAGE: 'Storage',
PROCESS_DETAILS: 'Process Details',
MONITORING: 'Monitoring',
NETWORK: 'Network',
+ IMAGES: 'Images',
COMPUTE: 'Compute',
LOAD_BALANCING: 'High Availability & Load Balancing'
});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsList.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsList.js
index f789a92c6f..bd4c2fa884 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsList.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsList.js
@@ -14,21 +14,16 @@
* permissions and limitations under the License.
*/
import {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
import SoftwareProductComponentsListView from './SoftwareProductComponentsListView.jsx';
import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
-import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
-
-
-const mapStateToProps = ({softwareProduct}) => {
- let {softwareProductEditor: {data: currentSoftwareProduct}, softwareProductComponents} = softwareProduct;
- let {componentsList} = softwareProductComponents;
- let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
+import SoftwareProductComponentsActionHelper from '../components/SoftwareProductComponentsActionHelper.js';
+import {actionTypes as globalModalActions} from 'nfvo-components/modal/GlobalModalConstants.js';
- return {
- currentSoftwareProduct,
- isReadOnlyMode,
- componentsList
- };
+const generateMessage = (name) => {
+ return i18n(`Are you sure you want to delete ${name}?`);
};
@@ -36,8 +31,21 @@ const mapActionToProps = (dispatch) => {
return {
onComponentSelect: ({id: softwareProductId, componentId, version}) => {
OnboardingActionHelper.navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version });
- }
+ },
+ onAddComponent: (softwareProductId) => SoftwareProductActionHelper.addComponent(dispatch, {softwareProductId, modalClassName: 'create-vfc-modal'}),
+ onDeleteComponent: (component, softwareProductId, version) => dispatch({
+ type: globalModalActions.GLOBAL_MODAL_WARNING,
+ data:{
+ msg: generateMessage(component.displayName),
+ onConfirmed: ()=>SoftwareProductComponentsActionHelper.deleteComponent(dispatch,
+ {
+ softwareProductId,
+ componentId: component.id,
+ version
+ })
+ }
+ })
};
};
-export default connect(mapStateToProps, mapActionToProps, null, {withRef: true})(SoftwareProductComponentsListView);
+export default connect(null, mapActionToProps, null, {withRef: true})(SoftwareProductComponentsListView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListReducer.js
index c7aaca5573..92211e0fd2 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListReducer.js
@@ -22,6 +22,8 @@ export default (state = [], action) => {
case actionTypes.COMPONENTS_LIST_EDIT:
const indexForEdit = state.findIndex(component => component.id === action.component.id);
return [...state.slice(0, indexForEdit), action.component, ...state.slice(indexForEdit + 1)];
+ case actionTypes.COMPONENT_DELETE:
+ return state.filter(component => component.id !== action.componentId);
default:
return state;
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListView.jsx
index c28831fbde..a2a1964299 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsListView.jsx
@@ -40,11 +40,11 @@ class SoftwareProductComponentsListView extends React.Component {
};
render() {
- let {componentsList = []} = this.props;
+ let {componentsList = [], isManual} = this.props;
return (
<div className=''>
{
- componentsList.length > 0 && this.renderComponents()
+ (componentsList.length > 0 || isManual) && this.renderComponents()
}
</div>
);
@@ -52,15 +52,16 @@ class SoftwareProductComponentsListView extends React.Component {
renderComponents() {
const {localFilter} = this.state;
- let {isReadOnlyMode} = this.props;
-
+ const {isManual, onAddComponent, isReadOnlyMode, currentSoftwareProduct: {id: softwareProductId}, componentsList } = this.props;
return (
<ListEditorView
title={i18n('Virtual Function Components')}
filterValue={localFilter}
placeholder={i18n('Filter Components')}
onFilter={value => this.setState({localFilter: value})}
- isReadOnlyMode={isReadOnlyMode}
+ isReadOnlyMode={isReadOnlyMode || !!this.filterList().length}
+ plusButtonTitle={i18n('Add Component')}
+ onAdd={isManual && componentsList.length === 0 ? () => onAddComponent(softwareProductId) : false}
twoColumns>
{this.filterList().map(component => this.renderComponentsListItem(component))}
</ListEditorView>
@@ -69,11 +70,12 @@ class SoftwareProductComponentsListView extends React.Component {
renderComponentsListItem(component) {
let {id: componentId, name, displayName, description = ''} = component;
- let {currentSoftwareProduct: {id, version}, onComponentSelect} = this.props;
+ let {currentSoftwareProduct: {id, version}, onComponentSelect, isManual, isReadOnlyMode, onDeleteComponent} = this.props;
return (
<ListEditorItemView
key={name + Math.floor(Math.random() * (100 - 1) + 1).toString()}
className='list-editor-item-view'
+ onDelete={isManual && !isReadOnlyMode ? () => onDeleteComponent(component, id, version) : false}
onSelect={() => onComponentSelect({id, componentId, version})}>
<ListEditorItemViewField>
<div className='name'>{displayName}</div>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js
new file mode 100644
index 0000000000..02c09fbdf8
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js
@@ -0,0 +1,169 @@
+/*!
+ * 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 RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
+import Configuration from 'sdc-app/config/Configuration.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {actionTypes} from './computeComponents/computeFlavor/ComputeFlavorConstants.js';
+import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
+import {actionTypes as globalModalActionTypes, modalSizes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import {COMPONENTS_COMPUTE_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+
+function baseUrl(softwareProductId, componentId, version) {
+ const versionId = version.id;
+ const restPrefix = Configuration.get('restPrefix');
+ return `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/components/${componentId}/compute-flavors`;
+}
+
+function baseUrlVSPLevel(softwareProductId, version){
+ const versionId = version.id;
+ const restPrefix = Configuration.get('restPrefix');
+ return `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/compute-flavors`;
+}
+
+function fetchComputesList(softwareProductId, componentId, version){
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, componentId, version)}`);
+}
+
+function fetchComputesListForVSP(softwareProductId, version){
+ return RestAPIUtil.fetch(`${baseUrlVSPLevel(softwareProductId, version)}`);
+}
+
+function fetchCompute(softwareProductId, componentId, computeId, version) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, componentId, version)}/${computeId}`);
+}
+
+function fetchComputeQuestionnaire({softwareProductId, componentId, computeId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, componentId, version)}/${computeId}/questionnaire`);
+}
+
+function postCompute({softwareProductId, componentId, compute, version}) {
+ return RestAPIUtil.post(baseUrl(softwareProductId, componentId, version), compute);
+}
+
+function putCompute({softwareProductId, componentId, compute, version}) {
+ const computeData = {
+ name: compute.name,
+ description: compute.description
+ };
+ return RestAPIUtil.put(`${baseUrl(softwareProductId, componentId, version)}/${compute.id}`, computeData);
+}
+
+function putComputeQuestionnaire({softwareProductId, componentId, computeId, qdata, version}) {
+ return RestAPIUtil.put(`${baseUrl(softwareProductId, componentId, version)}/${computeId}/questionnaire`, qdata);
+}
+
+function deleteCompute({softwareProductId, componentId, computeId, version}) {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, componentId, version)}/${computeId}`);
+}
+
+
+const ComputeFlavorActionHelper = {
+ openComputeEditor(dispatch, {props}) {
+ dispatch({
+ type: actionTypes.computeEditor.LOAD_EDITOR_DATA,
+ compute: props.compute || {}
+ });
+ dispatch({
+ type: globalModalActionTypes.GLOBAL_MODAL_SHOW,
+ data: {
+ modalComponentName: modalContentMapper.COMPONENT_COMPUTE_FLAVOR_EDITOR,
+ modalClassName: `compute-flavor-editor-modal-${props.compute ? 'edit' : 'create'}`,
+ modalComponentProps: {...props, size: props.compute ? modalSizes.LARGE : undefined, dialogClassName:'compute-flavor-editor-modal'},
+ title: `${props.compute ? i18n('Edit Compute Flavor') : i18n('Create New Compute Flavor')}`
+ }
+ });
+ },
+
+ closeComputeEditor(dispatch){
+ dispatch({
+ type: globalModalActionTypes.GLOBAL_MODAL_CLOSE
+ });
+ dispatch({
+ type: actionTypes.computeEditor.CLEAR_DATA
+ });
+ },
+
+ fetchComputesList(dispatch, {softwareProductId, componentId, version}) {
+ return fetchComputesList(softwareProductId, componentId, version).then(response => dispatch({
+ type: actionTypes.COMPUTE_FLAVORS_LIST_LOADED,
+ response
+ }));
+ },
+
+ fetchComputesListForVSP(dispatch, {softwareProductId, version}) {
+ return fetchComputesListForVSP(softwareProductId, version).then(response => dispatch({
+ type: actionTypes.COMPUTE_FLAVORS_LIST_LOADED,
+ response
+ }));
+ },
+
+ loadComputeData({softwareProductId, componentId, computeId, version}) {
+ return fetchCompute(softwareProductId, componentId, computeId, version);
+ },
+
+ loadComputeQuestionnaire(dispatch, {softwareProductId, componentId, computeId, version}) {
+ return fetchComputeQuestionnaire({softwareProductId, componentId, computeId, version}).then(response =>
+ ValidationHelper.qDataLoaded(dispatch, {qName: COMPONENTS_COMPUTE_QUESTIONNAIRE ,response: {
+ qdata: response.data ? JSON.parse(response.data) : {},
+ qschema: JSON.parse(response.schema)
+ }})
+ );
+ },
+
+ loadCompute(dispatch, {softwareProductId, componentId, version, computeId, isReadOnlyMode}){
+ return ComputeFlavorActionHelper.loadComputeData({softwareProductId, componentId, computeId, version}).then(({data}) =>
+ ComputeFlavorActionHelper.loadComputeQuestionnaire(dispatch, {softwareProductId, componentId, computeId, version}).then(() =>
+ ComputeFlavorActionHelper.openComputeEditor(dispatch, {props: {softwareProductId, componentId, version, isReadOnlyMode, compute: {id: computeId, ...data}}})
+ ));
+ },
+
+ saveComputeDataAndQuestionnaire(dispatch, {softwareProductId, componentId, data: compute, qdata, version}) {
+ ComputeFlavorActionHelper.closeComputeEditor(dispatch);
+ if(compute.id) {
+ return Promise.all([
+ putComputeQuestionnaire({softwareProductId, componentId, computeId: compute.id, qdata, version}),
+ putCompute({softwareProductId, componentId, compute, version}).then(() => {
+ dispatch({
+ type: actionTypes.COMPUTE_LIST_EDIT,
+ compute
+ });
+ })
+ ]);
+ }
+ else {
+ return postCompute({softwareProductId, componentId, compute, version}).then(response =>
+ dispatch({
+ type: actionTypes.ADD_COMPUTE,
+ compute: {
+ ...compute,
+ id: response.id,
+ componentId
+ }
+ })
+ );
+ }
+ },
+
+ deleteCompute(dispatch, {softwareProductId, componentId, computeId, version}) {
+ return deleteCompute({softwareProductId, componentId, computeId, version}).then(() => dispatch({
+ type: actionTypes.DELETE_COMPUTE,
+ computeId
+ }));
+ }
+};
+
+export default ComputeFlavorActionHelper;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentCompute.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentCompute.js
index e97477b54d..bb8df29b82 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentCompute.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentCompute.js
@@ -19,18 +19,23 @@ import SoftwareProductComponentsActionHelper from 'sdc-app/onboarding/softwarePr
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
import {COMPONENTS_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import {onboardingMethod} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
-const mapStateToProps = ({softwareProduct}) => {
+const mapStateToProps = ({softwareProduct, currentScreen: {props: {softwareProductId, componentId}}}) => {
let {softwareProductEditor: {data: currentVSP}, softwareProductComponents} = softwareProduct;
- let {componentEditor: {qdata, dataMap, qgenericFieldInfo}} = softwareProductComponents;
+ let {componentEditor: {qdata, dataMap, qgenericFieldInfo}, computeFlavor: {computesList: computeFlavorsList}} = softwareProductComponents;
let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentVSP);
return {
qdata,
dataMap,
qgenericFieldInfo,
- isReadOnlyMode
+ isReadOnlyMode,
+ softwareProductId,
+ componentId,
+ computeFlavorsList,
+ isManual: currentVSP.onboardingMethod === onboardingMethod.MANUAL
};
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx
index 8c197f0d49..dd524a35f3 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx
@@ -15,9 +15,9 @@
*/
import React from 'react';
import Form from 'nfvo-components/input/validation/Form.jsx';
-import VmSizing from './computeComponents/VmSizing.jsx';
import NumberOfVms from './computeComponents/NumberOfVms.jsx';
import GuestOs from './computeComponents/GuestOs.jsx';
+import ComputeFlavors from './computeComponents/ComputeFlavors.js';
import Validator from 'nfvo-utils/Validator.js';
class SoftwareProductComponentComputeView extends React.Component {
@@ -26,13 +26,15 @@ class SoftwareProductComponentComputeView extends React.Component {
dataMap: React.PropTypes.object,
qgenericFieldInfo: React.PropTypes.object,
isReadOnlyMode: React.PropTypes.bool,
+ isManual: React.PropTypes.bool,
onQDataChanged: React.PropTypes.func.isRequired,
qValidateData: React.PropTypes.func.isRequired,
onSubmit: React.PropTypes.func.isRequired
};
render() {
- let {qdata, dataMap, qgenericFieldInfo, isReadOnlyMode, onQDataChanged, qValidateData, onSubmit} = this.props;
+ let {softwareProductId, componentId, version, qdata, dataMap, qgenericFieldInfo, isReadOnlyMode, onQDataChanged, qValidateData,
+ onSubmit, computeFlavorsList, isManual} = this.props;
return (
<div className='vsp-component-questionnaire-view'>
@@ -44,11 +46,12 @@ class SoftwareProductComponentComputeView extends React.Component {
onSubmit={() => onSubmit({qdata})}
className='component-questionnaire-validation-form'
isReadOnlyMode={isReadOnlyMode} >
- <VmSizing onQDataChanged={onQDataChanged} dataMap={dataMap} qgenericFieldInfo={qgenericFieldInfo} />
<NumberOfVms onQDataChanged={onQDataChanged} dataMap={dataMap}
qgenericFieldInfo={qgenericFieldInfo} qValidateData={qValidateData}
customValidations={{'compute/numOfVMs/maximum' : this.validateMax, 'compute/numOfVMs/minimum': this.validateMin}} />
<GuestOs onQDataChanged={onQDataChanged} dataMap={dataMap} qgenericFieldInfo={qgenericFieldInfo} />
+ <ComputeFlavors computeFlavorsList={computeFlavorsList} softwareProductId={softwareProductId} componentId={componentId}
+ version={version} isReadOnlyMode={isReadOnlyMode} isManual={isManual}/>
</Form> }
</div>
);
@@ -60,12 +63,24 @@ class SoftwareProductComponentComputeView extends React.Component {
validateMin(value, state) {
let maxVal = state.dataMap['compute/numOfVMs/maximum'];
- return Validator.validateItem(value,maxVal,'maximum');
+ // we are allowed to have an empty maxval, that will allow all minvals.
+ // if we do not have a minval than there is no point to check it either.
+ if (value === undefined || maxVal === undefined) {
+ return { isValid: true, errorText: '' };
+ } else {
+ return Validator.validateItem(value, maxVal,'maximum');
+ }
}
validateMax(value, state) {
let minVal = state.dataMap['compute/numOfVMs/minimum'];
- return Validator.validateItem(value,minVal,'minimum');
+ if (minVal === undefined ) {
+ // having no minimum is the same as 0, maximum value doesn't need to be checked
+ // against it.
+ return { isValid: true, errorText: '' };
+ } else {
+ return Validator.validateItem(value,minVal,'minimum');
+ }
}
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/ComputeFlavors.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/ComputeFlavors.js
new file mode 100644
index 0000000000..c72d42c11f
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/ComputeFlavors.js
@@ -0,0 +1,116 @@
+/*!
+ * 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 React from 'react';
+import {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
+import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
+import ComputeFlavorActionHelper from 'sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+
+const mapActionsToProps = (dispatch, {softwareProductId, componentId, version}) => {
+ return {
+ onAddComputeClick: (isReadOnlyMode) => ComputeFlavorActionHelper.openComputeEditor(dispatch, {props: {softwareProductId, componentId, isReadOnlyMode, version}}),
+ onEditCompute: ({computeId, isReadOnlyMode}) => ComputeFlavorActionHelper.loadCompute(dispatch, {softwareProductId, componentId, version, computeId, isReadOnlyMode}),
+ onDeleteCompute: ({id, name}) => dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_WARNING,
+ data:{
+ msg: i18n(`Are you sure you want to delete "${name}"?`),
+ onConfirmed: () => ComputeFlavorActionHelper.deleteCompute(dispatch, {softwareProductId, componentId, computeId: id, version})
+ }
+ })
+ };
+};
+
+const computeItemPropType = React.PropTypes.shape({
+ id: React.PropTypes.string,
+ name: React.PropTypes.string,
+ description: React.PropTypes.string
+});
+
+class ComputeFlavors extends React.Component {
+
+ static propTypes = {
+ isReadOnlyMode: React.PropTypes.bool,
+ isManual: React.PropTypes.bool,
+ onAddComputeClick: React.PropTypes.func,
+ computeFlavorsList: React.PropTypes.arrayOf(computeItemPropType)
+ };
+
+ state = {
+ localFilter: ''
+ };
+
+ render() {
+ const {localFilter} = this.state;
+ const {isReadOnlyMode, isManual, onAddComputeClick, onEditCompute, onDeleteCompute} = this.props;
+ return (
+ <div className='computes-list'>
+ <ListEditorView
+ title={i18n('Computes')}
+ plusButtonTitle={i18n('Add Compute')}
+ onAdd={isManual ? () => onAddComputeClick(isReadOnlyMode) : null}
+ isReadOnlyMode={isReadOnlyMode}
+ onFilter={isManual ? value => this.setState({localFilter: value}) : null}
+ filterValue={localFilter}
+ twoColumns>
+ {this.filterList().map(computeItem =>
+ <ComputeItem key={computeItem.id}
+ computeItem={computeItem} isReadOnlyMode={isReadOnlyMode} isManual={isManual}
+ onEditCompute={onEditCompute} onDeleteCompute={onDeleteCompute}/>)
+ }
+ </ListEditorView>
+ </div>
+ );
+ }
+
+ filterList() {
+ const {computeFlavorsList = []} = this.props;
+
+ const {localFilter} = this.state;
+ if (localFilter.trim()) {
+ const filter = new RegExp(escape(localFilter), 'i');
+ return computeFlavorsList.filter(({name = '', description = ''}) => {
+ return escape(name).match(filter) || escape(description).match(filter);
+ });
+ }
+ else {
+ return computeFlavorsList;
+ }
+ }
+}
+
+const ComputeItem = ({computeItem, isReadOnlyMode, isManual, onEditCompute, onDeleteCompute}) => {
+ const {id, name, description} = computeItem;
+ return (
+ <ListEditorItemView
+ key={'item_' + id}
+ className='list-editor-item-view'
+ isReadOnlyMode={isReadOnlyMode}
+ onSelect={() => onEditCompute({computeId: id, isReadOnlyMode})}
+ onDelete={isManual ? () => onDeleteCompute({id, name}) : null}>
+
+ <div className='list-editor-item-view-field'>
+ <div className='name'>{name}</div>
+ </div>
+ <div className='list-editor-item-view-field'>
+ <div className='description'>{description}</div>
+ </div>
+ </ListEditorItemView>
+ );
+};
+
+export default connect(null, mapActionsToProps, null, {withRef: true})(ComputeFlavors);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/GuestOs.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/GuestOs.jsx
index 7a730d6f94..16bf599834 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/GuestOs.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/GuestOs.jsx
@@ -24,17 +24,6 @@ const GuestOs = ({qgenericFieldInfo, dataMap, onQDataChanged}) => {
return(
<div>
<GridSection title={i18n('Guest OS')} >
- <GridItem colSpan={2}>
- <Input
- data-test-id='guestOS-name'
- label={i18n('Guest OS')}
- type='text'
- onChange={(tools) => onQDataChanged({'compute/guestOS/name' : tools})}
- isValid={qgenericFieldInfo['compute/guestOS/name'].isValid}
- errorText={qgenericFieldInfo['compute/guestOS/name'].errorText}
- value={dataMap['compute/guestOS/name']} />
- </GridItem>
- <GridItem colSpan={2}/>
<GridItem>
<div className='vertical-flex'>
<label key='label' className='control-label'>{i18n('OS Bit Size')}</label>
@@ -58,6 +47,16 @@ const GuestOs = ({qgenericFieldInfo, dataMap, onQDataChanged}) => {
<GridItem colSpan={2}/>
<GridItem colSpan={2}>
<Input
+ data-test-id='guestOS-name'
+ label={i18n('Guest OS')}
+ type='textarea'
+ onChange={(tools) => onQDataChanged({'compute/guestOS/name' : tools})}
+ isValid={qgenericFieldInfo['compute/guestOS/name'].isValid}
+ errorText={qgenericFieldInfo['compute/guestOS/name'].errorText}
+ value={dataMap['compute/guestOS/name']} />
+ </GridItem>
+ <GridItem colSpan={2}>
+ <Input
data-test-id='guestOS-tools'
type='textarea'
label={i18n('Guest OS Tools:')}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/NumberOfVms.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/NumberOfVms.jsx
index efeedc653e..ddde4391d9 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/NumberOfVms.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/NumberOfVms.jsx
@@ -45,44 +45,6 @@ const NumberOfVms = ({qgenericFieldInfo, dataMap, onQDataChanged, qValidateData,
errorText={qgenericFieldInfo['compute/numOfVMs/maximum'].errorText}
value={dataMap['compute/numOfVMs/maximum']} />
</GridItem>
- <GridItem>
- <Input
- data-test-id='numOfVMs-CpuOverSubscriptionRatio'
- label={i18n('CPU Oversubscription Ratio')}
- type='select'
- groupClassName='bootstrap-input-options'
- className='input-options-select'
- isValid={qgenericFieldInfo['compute/numOfVMs/CpuOverSubscriptionRatio'].isValid}
- errorText={qgenericFieldInfo['compute/numOfVMs/CpuOverSubscriptionRatio'].errorText}
- value={dataMap['compute/numOfVMs/CpuOverSubscriptionRatio']}
- onChange={(e) => {
- const selectedIndex = e.target.selectedIndex;
- const val = e.target.options[selectedIndex].value;
- onQDataChanged({'compute/numOfVMs/CpuOverSubscriptionRatio' : val});}
- }>
- <option key='placeholder' value=''>{i18n('Select...')}</option>
- {qgenericFieldInfo['compute/numOfVMs/CpuOverSubscriptionRatio'].enum.map(cpuOSR => <option value={cpuOSR.enum} key={cpuOSR.enum}>{cpuOSR.title}</option>)}
- </Input>
- </GridItem>
- <GridItem>
- <Input
- data-test-id='numOfVMs-MemoryRAM'
- type='select'
- label={i18n('Memory - RAM')}
- groupClassName='bootstrap-input-options'
- className='input-options-select'
- isValid={qgenericFieldInfo['compute/numOfVMs/MemoryRAM'].isValid}
- errorText={qgenericFieldInfo['compute/numOfVMs/MemoryRAM'].errorText}
- value={dataMap['compute/numOfVMs/MemoryRAM']}
- onChange={(e) => {
- const selectedIndex = e.target.selectedIndex;
- const val = e.target.options[selectedIndex].value;
- onQDataChanged({'compute/numOfVMs/MemoryRAM' : val});}
- }>
- <option key='placeholder' value=''>{i18n('Select...')}</option>
- {qgenericFieldInfo['compute/numOfVMs/MemoryRAM'].enum.map(mRAM => <option value={mRAM.enum} key={mRAM.enum}>{mRAM.title}</option>)}
- </Input>
- </GridItem>
</GridSection>
);
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/VmSizing.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/VmSizing.jsx
deleted file mode 100644
index 39f84807a2..0000000000
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/VmSizing.jsx
+++ /dev/null
@@ -1,68 +0,0 @@
-/*!
- * 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 React from 'react';
-import i18n from 'nfvo-utils/i18n/i18n.js';
-import Input from 'nfvo-components/input/validation/Input.jsx';
-import GridSection from 'nfvo-components/grid/GridSection.jsx';
-import GridItem from 'nfvo-components/grid/GridItem.jsx';
-const VmSizing = ({qgenericFieldInfo, dataMap, onQDataChanged}) => {
- return(
- <GridSection title={i18n('VM Sizing')}>
- <GridItem>
- <Input
- data-test-id='numOfCPUs'
- type='number'
- label={i18n('Number of CPUs')}
- onChange={(tools) => onQDataChanged({'compute/vmSizing/numOfCPUs' : tools})}
- isValid={qgenericFieldInfo['compute/vmSizing/numOfCPUs'].isValid}
- errorText={qgenericFieldInfo['compute/vmSizing/numOfCPUs'].errorText}
- value={dataMap['compute/vmSizing/numOfCPUs']} />
- </GridItem>
- <GridItem>
- <Input
- data-test-id='fileSystemSizeGB'
- type='number'
- label={i18n('File System Size (GB)')}
- onChange={(tools) => onQDataChanged({'compute/vmSizing/fileSystemSizeGB' : tools})}
- isValid={qgenericFieldInfo['compute/vmSizing/fileSystemSizeGB'].isValid}
- errorText={qgenericFieldInfo['compute/vmSizing/fileSystemSizeGB'].errorText}
- value={dataMap['compute/vmSizing/fileSystemSizeGB']} />
- </GridItem>
- <GridItem>
- <Input
- data-test-id='persistentStorageVolumeSize'
- type='number'
- label={i18n('Persistent Storage/Volume Size (GB)')}
- onChange={(tools) => onQDataChanged({'compute/vmSizing/persistentStorageVolumeSize' : tools})}
- isValid={qgenericFieldInfo['compute/vmSizing/persistentStorageVolumeSize'].isValid}
- errorText={qgenericFieldInfo['compute/vmSizing/persistentStorageVolumeSize'].errorText}
- value={dataMap['compute/vmSizing/persistentStorageVolumeSize']} />
- </GridItem>
- <GridItem>
- <Input
- data-test-id='IOOperationsPerSec'
- type='number'
- label={i18n('I/O Operations (per second)')}
- onChange={(tools) => onQDataChanged({'compute/vmSizing/IOOperationsPerSec' : tools})}
- isValid={qgenericFieldInfo['compute/vmSizing/IOOperationsPerSec'].isValid}
- errorText={qgenericFieldInfo['compute/vmSizing/IOOperationsPerSec'].errorText}
- value={dataMap['compute/vmSizing/IOOperationsPerSec']} />
- </GridItem>
- </GridSection>
- );
-};
-
-export default VmSizing;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorConstants.js
new file mode 100644
index 0000000000..41728eefb0
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorConstants.js
@@ -0,0 +1,32 @@
+/*!
+ * 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 keyMirror from 'nfvo-utils/KeyMirror.js';
+
+export const COMPUTE_FLAVOR_FORM = 'COMPUTE_FLAVOR_FORM';
+
+export const actionTypes = keyMirror({
+ ADD_COMPUTE: null,
+ COMPUTE_FLAVORS_LIST_LOADED: null,
+ COMPUTE_LIST_EDIT: null,
+ EDIT_COMPUTE_FLAVOR: null,
+ DELETE_COMPUTE: null,
+ CONFIRM_DELETE_COMPUTE: null,
+ computeEditor: {
+ LOAD_EDITOR_DATA: null,
+ CLEAR_DATA: null
+ }
+});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js
new file mode 100644
index 0000000000..caec0702fd
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js
@@ -0,0 +1,55 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import ComputeFlavorEditorView from './ComputeFlavorEditorView.jsx';
+import {COMPUTE_FLAVOR_FORM} from './ComputeFlavorConstants.js';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+import ComputeFlavorActionHelper from 'sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import {COMPONENTS_COMPUTE_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+import {onboardingMethod} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
+
+export const mapStateToProps = ({softwareProduct: {softwareProductEditor, softwareProductComponents: {computeFlavor: {computeEditor = {}}}}}) => {
+ const {data: currentSoftwareProduct = {}} = softwareProductEditor;
+ const isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ let {data , qdata, qgenericFieldInfo, dataMap, genericFieldInfo, formReady} = computeEditor;
+ let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
+
+ return {
+ data,
+ qdata,
+ qgenericFieldInfo,
+ dataMap,
+ genericFieldInfo,
+ isReadOnlyMode,
+ isFormValid,
+ formReady,
+ isManual: currentSoftwareProduct.onboardingMethod === onboardingMethod.MANUAL
+ };
+};
+
+
+const mapActionsToProps = (dispatch, {softwareProductId, componentId, version}) => {
+ return {
+ onDataChanged: deltaData => ValidationHelper.dataChanged(dispatch, {deltaData, formName: COMPUTE_FLAVOR_FORM}),
+ onQDataChanged: deltaData => ValidationHelper.qDataChanged(dispatch, {deltaData, qName: COMPONENTS_COMPUTE_QUESTIONNAIRE}),
+ onCancel: () => ComputeFlavorActionHelper.closeComputeEditor(dispatch),
+ onSubmit: ({data, qdata}) => ComputeFlavorActionHelper.saveComputeDataAndQuestionnaire(dispatch, {softwareProductId, componentId, data, qdata, version}),
+ onValidateForm: () => ValidationHelper.validateForm(dispatch, COMPUTE_FLAVOR_FORM)
+ };
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(ComputeFlavorEditorView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditorView.jsx
new file mode 100644
index 0000000000..8f8a504629
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditorView.jsx
@@ -0,0 +1,96 @@
+/*!
+ * 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 React from 'react';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import VmSizing from './VmSizing.jsx';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+class ComputeEditorView extends React.Component {
+
+ static propTypes = {
+ data: React.PropTypes.object,
+ qdata: React.PropTypes.object,
+ qschema: React.PropTypes.object,
+ isReadOnlyMode: React.PropTypes.bool,
+ isManual: React.PropTypes.bool,
+ onDataChanged: React.PropTypes.func.isRequired,
+ onQDataChanged: React.PropTypes.func.isRequired,
+ onSubmit: React.PropTypes.func.isRequired,
+ onCancel: React.PropTypes.func.isRequired
+ };
+
+ render() {
+ let {data = {}, qdata = {}, qgenericFieldInfo, dataMap, genericFieldInfo, isReadOnlyMode, isManual, isFormValid, formReady,
+ onDataChanged, onQDataChanged, onSubmit, onCancel, onValidateForm} = this.props;
+ const {id, name, description} = data;
+ const edittingComputeMode = Boolean(id);
+
+ return (
+ <div className='vsp-component-computeFlavor-view'>
+ {genericFieldInfo && <Form
+ ref={(form) => {
+ this.form = form;
+ }}
+ hasButtons={true}
+ onSubmit={ () => onSubmit({data, qdata}) }
+ onReset={ () => onCancel() }
+ labledButtons={true}
+ isReadOnlyMode={isReadOnlyMode}
+ isValid={isFormValid}
+ formReady={formReady}
+ onValidateForm={() => onValidateForm() }
+ className='component-questionnaire-validation-form'
+ submitButtonText={edittingComputeMode ? i18n('Save') : i18n('Create')}>
+ <GridSection>
+ <GridItem colSpan={edittingComputeMode ? 2 : 4}>
+ <Input
+ disabled={!isManual}
+ data-test-id='name'
+ type='text'
+ label={i18n('Flavor Name')}
+ value={name}
+ onChange={name => onDataChanged({name})}
+ isValid={genericFieldInfo['name'].isValid}
+ errorText={genericFieldInfo['name'].errorText}
+ isRequired/>
+ </GridItem>
+ <GridItem colSpan={edittingComputeMode ? 2 : 4}>
+ <Input
+ data-test-id='description'
+ type='textarea'
+ label={i18n('Description')}
+ value={description}
+ onChange={description => onDataChanged({description})}
+ isValid={genericFieldInfo['description'].isValid}
+ errorText={genericFieldInfo['description'].errorText}/>
+ </GridItem>
+ </GridSection>
+ {edittingComputeMode && <VmSizing qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged}/>}
+ </Form>
+ }
+ </div>
+ );
+ }
+
+ save(){
+ return this.form.handleFormSubmit(new Event('dummy'));
+ }
+}
+
+export default ComputeEditorView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js
new file mode 100644
index 0000000000..6c02f36c90
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js
@@ -0,0 +1,33 @@
+/*!
+ * 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 './ComputeFlavorConstants.js';
+
+export default (state = [], action) => {
+ switch (action.type) {
+ case actionTypes.COMPUTE_FLAVORS_LIST_LOADED:
+ return [...action.response.results];
+ case actionTypes.ADD_COMPUTE:
+ return [...state, action.compute];
+ case actionTypes.COMPUTE_LIST_EDIT:
+ const indexForEdit = state.findIndex(({id}) => id === action.compute.id);
+ return [...state.slice(0, indexForEdit), action.compute, ...state.slice(indexForEdit + 1)];
+ case actionTypes.DELETE_COMPUTE:
+ return state.filter(({id}) => id !== action.computeId);
+ default:
+ return state;
+ }
+}; \ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorReducer.js
new file mode 100644
index 0000000000..a476f85a19
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorReducer.js
@@ -0,0 +1,45 @@
+/*!
+ * 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, COMPUTE_FLAVOR_FORM} from './ComputeFlavorConstants.js';
+
+export default (state = {}, action) => {
+ switch (action.type) {
+ case actionTypes.computeEditor.LOAD_EDITOR_DATA:
+ return {
+ ...state,
+ formName: COMPUTE_FLAVOR_FORM,
+ data: action.compute,
+ formReady: null,
+ genericFieldInfo: {
+ name: {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true }]
+ },
+ description: {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 300}]
+ }
+ }
+ };
+ case actionTypes.computeEditor.CLEAR_DATA:
+ return {};
+ default:
+ return state;
+ }
+};
+
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/VmSizing.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/VmSizing.jsx
new file mode 100644
index 0000000000..8b30468362
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/VmSizing.jsx
@@ -0,0 +1,106 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+const VmSizing = ({qgenericFieldInfo, dataMap, onQDataChanged}) => {
+ return(
+ <GridSection title={i18n('VM Sizing')}>
+ <GridItem>
+ <Input
+ data-test-id='numOfCPUs'
+ type='number'
+ label={i18n('Number of CPUs')}
+ onChange={(tools) => onQDataChanged({'vmSizing/numOfCPUs' : tools})}
+ isValid={qgenericFieldInfo['vmSizing/numOfCPUs'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/numOfCPUs'].errorText}
+ value={dataMap['vmSizing/numOfCPUs']} />
+ </GridItem>
+ <GridItem>
+ <Input
+ data-test-id='fileSystemSizeGB'
+ type='number'
+ label={i18n('File System Size (GB)')}
+ onChange={(tools) => onQDataChanged({'vmSizing/fileSystemSizeGB' : tools})}
+ isValid={qgenericFieldInfo['vmSizing/fileSystemSizeGB'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/fileSystemSizeGB'].errorText}
+ value={dataMap['vmSizing/fileSystemSizeGB']} />
+ </GridItem>
+ <GridItem>
+ <Input
+ data-test-id='persistentStorageVolumeSize'
+ type='number'
+ label={i18n('Persistent Storage/Volume Size (GB)')}
+ onChange={(tools) => onQDataChanged({'vmSizing/persistentStorageVolumeSize' : tools})}
+ isValid={qgenericFieldInfo['vmSizing/persistentStorageVolumeSize'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/persistentStorageVolumeSize'].errorText}
+ value={dataMap['vmSizing/persistentStorageVolumeSize']} />
+ </GridItem>
+ <GridItem>
+ <Input
+ data-test-id='ioOperationsPerSec'
+ type='number'
+ label={i18n('I/O Operations (per second)')}
+ onChange={(tools) => onQDataChanged({'vmSizing/ioOperationsPerSec' : tools})}
+ isValid={qgenericFieldInfo['vmSizing/ioOperationsPerSec'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/ioOperationsPerSec'].errorText}
+ value={dataMap['vmSizing/ioOperationsPerSec']} />
+ </GridItem>
+ <GridItem>
+ <Input
+ data-test-id='numOfVMs-cpuOverSubscriptionRatio'
+ label={i18n('CPU Oversubscription Ratio')}
+ type='select'
+ groupClassName='bootstrap-input-options'
+ className='input-options-select'
+ isValid={qgenericFieldInfo['vmSizing/cpuOverSubscriptionRatio'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/cpuOverSubscriptionRatio'].errorText}
+ value={dataMap['vmSizing/cpuOverSubscriptionRatio']}
+ onChange={(e) => {
+ const selectedIndex = e.target.selectedIndex;
+ const val = e.target.options[selectedIndex].value;
+ onQDataChanged({'vmSizing/cpuOverSubscriptionRatio' : val});}
+ }>
+ <option key='placeholder' value=''>{i18n('Select...')}</option>
+ {qgenericFieldInfo['vmSizing/cpuOverSubscriptionRatio'].enum.map(cpuOSR => <option value={cpuOSR.enum} key={cpuOSR.enum}>{cpuOSR.title}</option>)}
+ </Input>
+ </GridItem>
+ <GridItem>
+ <Input
+ data-test-id='numOfVMs-memoryRAM'
+ type='select'
+ label={i18n('Memory - RAM')}
+ groupClassName='bootstrap-input-options'
+ className='input-options-select'
+ isValid={qgenericFieldInfo['vmSizing/memoryRAM'].isValid}
+ errorText={qgenericFieldInfo['vmSizing/memoryRAM'].errorText}
+ value={dataMap['vmSizing/memoryRAM']}
+ onChange={(e) => {
+ const selectedIndex = e.target.selectedIndex;
+ const val = e.target.options[selectedIndex].value;
+ onQDataChanged({'vmSizing/memoryRAM' : val});}
+ }>
+ <option key='placeholder' value=''>{i18n('Select...')}</option>
+ {qgenericFieldInfo['vmSizing/memoryRAM'].enum.map(mRAM => <option value={mRAM.enum} key={mRAM.enum}>{mRAM.title}</option>)}
+ </Input>
+ </GridItem>
+ </GridSection>
+ );
+};
+
+export default VmSizing;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreation.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreation.js
new file mode 100644
index 0000000000..e85b6b6504
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreation.js
@@ -0,0 +1,50 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import SoftwareProductComponentCreationView from './SoftwareProductComponentCreationView.jsx';
+import SoftwareProductComponentsActionHelper from '../SoftwareProductComponentsActionHelper.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import {forms} from '../SoftwareProductComponentsConstants.js';
+
+export const mapStateToProps = ({softwareProduct}) => {
+ let {softwareProductComponents: {componentEditor: {data, genericFieldInfo, formReady}}, softwareProductEditor: {data: {version}}} = softwareProduct;
+ let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
+ return {
+ data,
+ genericFieldInfo,
+ formReady,
+ isFormValid,
+ version
+ };
+};
+
+
+const mapActionsToProps = (dispatch, {softwareProductId}) => {
+ return {
+ onDataChanged: (deltaData) => ValidationHelper.dataChanged(dispatch, {deltaData, formName: forms.CREATE_FORM}),
+ //onDataChanged: deltaData => SoftwareProductComponentsActionHelper.componentDataChanged(dispatch, {deltaData}),
+ onSubmit: (componentData, version) => {
+ return SoftwareProductComponentsActionHelper.createSoftwareProductComponent(dispatch,
+ {softwareProductId, componentData, version});
+ },
+ onCancel: () => SoftwareProductComponentsActionHelper.closeComponentCreationModal(dispatch),
+ onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName)
+ };
+
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(SoftwareProductComponentCreationView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreationView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreationView.jsx
new file mode 100644
index 0000000000..55bcc818f5
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/creation/SoftwareProductComponentCreationView.jsx
@@ -0,0 +1,79 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import {forms} from '../SoftwareProductComponentsConstants.js';
+
+class ComponentCreationView extends React.Component {
+ render() {
+ let {data = {}, onDataChanged, onCancel, genericFieldInfo} = this.props;
+ let {displayName, description} = data;
+ return(
+ <div>
+ {
+ genericFieldInfo && <Form
+ ref='validationForm'
+ hasButtons={true}
+ onSubmit={ () => this.submit() }
+ onReset={ () => onCancel() }
+ submitButtonText={i18n('Create')}
+ labledButtons={true}
+ isValid={this.props.isFormValid}
+ formReady={this.props.formReady}
+ onValidateForm={() => this.props.onValidateForm(forms.CREATE_FORM) }
+ className='entitlement-pools-form'>
+ <GridSection>
+ <GridItem colSpan={4}>
+ <Input
+ data-test-id='name'
+ onChange={displayName => onDataChanged({displayName})}
+ label={i18n('Name')}
+ isRequired={true}
+ isValid={genericFieldInfo.displayName.isValid}
+ errorText={genericFieldInfo.displayName.errorText}
+ value={displayName}
+ type='text'/>
+ </GridItem>
+ <GridItem colSpan={4}>
+ <Input
+ label={i18n('Description')}
+ onChange={description => onDataChanged({description})}
+ value={description}
+ isValid={genericFieldInfo.description.isValid}
+ errorText={genericFieldInfo.description.errorText}
+ data-test-id='description'
+ type='textarea'/>
+ </GridItem>
+ </GridSection>
+ </Form>
+ }
+ </div>
+ );
+ }
+
+ submit() {
+ const {onSubmit, data, version} = this.props;
+ onSubmit(data, version);
+ }
+}
+
+export default ComponentCreationView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js
index 34374aa7fb..7b4135028b 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneral.js
@@ -22,6 +22,7 @@ import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/Soft
import {forms, COMPONENTS_QUESTIONNAIRE} from '../SoftwareProductComponentsConstants.js';
+import {onboardingMethod} from '../../SoftwareProductConstants.js';
export const mapStateToProps = ({softwareProduct}) => {
@@ -34,6 +35,7 @@ export const mapStateToProps = ({softwareProduct}) => {
componentData,
qdata,
isReadOnlyMode,
+ isManual: currentVSP.onboardingMethod === onboardingMethod.MANUAL,
genericFieldInfo,
qGenericFieldInfo,
dataMap,
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx
index e4595f97d6..6aa51d1609 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/general/SoftwareProductComponentsGeneralView.jsx
@@ -21,7 +21,7 @@ import Form from 'nfvo-components/input/validation/Form.jsx';
import GridSection from 'nfvo-components/grid/GridSection.jsx';
import GridItem from 'nfvo-components/grid/GridItem.jsx';
-const GeneralSection = ({onDataChanged, displayName, vfcCode, description, isReadOnlyMode, genericFieldInfo}) => (
+const GeneralSection = ({onDataChanged, displayName, vfcCode, nfcFunction, description, isReadOnlyMode, genericFieldInfo, isManual}) => (
<GridSection title={i18n('General')}>
{/* disabled until backend will be ready to implement it
<div className='validation-input-wrapper'>
@@ -37,9 +37,9 @@ const GeneralSection = ({onDataChanged, displayName, vfcCode, description, isRea
data-test-id='name'
label={i18n('Name')}
value={displayName}
- disabled={true}
+ disabled={!isManual || isReadOnlyMode}
type='text'/>
- <Input
+ {!isManual && <Input
data-test-id='vfcCode'
label={i18n('Naming Code')}
value={vfcCode}
@@ -47,6 +47,15 @@ const GeneralSection = ({onDataChanged, displayName, vfcCode, description, isRea
errorText={genericFieldInfo.vfcCode.errorText}
onChange={vfcCode => onDataChanged({vfcCode})}
disabled={isReadOnlyMode}
+ type='text'/> }
+ <Input
+ data-test-id='nfcFunction'
+ label={i18n('Function')}
+ value={nfcFunction}
+ isValid={genericFieldInfo.nfcFunction.isValid}
+ errorText={genericFieldInfo.nfcFunction.errorText}
+ onChange={nfcFunction => onDataChanged({nfcFunction})}
+ disabled={isReadOnlyMode}
type='text'/>
</GridItem>
<GridItem colSpan={2}>
@@ -63,7 +72,7 @@ const GeneralSection = ({onDataChanged, displayName, vfcCode, description, isRea
</GridItem>
<GridItem />
</GridSection>
- );
+);
const HypervisorSection = ({dataMap, onQDataChanged, qgenericFieldInfo}) => (
<GridSection title={i18n('Hypervisor')}>
@@ -110,64 +119,26 @@ const HypervisorSection = ({dataMap, onQDataChanged, qgenericFieldInfo}) => (
);
const ImageSection = ({dataMap, onQDataChanged, qgenericFieldInfo}) => (
- <GridSection title={i18n('Image')}>
- <GridItem>
- <Input
- data-test-id='format'
- label={i18n('Image format')}
- type='select'
- className='input-options-select'
- groupClassName='bootstrap-input-options'
- isValid={qgenericFieldInfo['general/image/format'].isValid}
- errorText={qgenericFieldInfo['general/image/format'].errorText}
- value={dataMap['general/image/format']}
- onChange={(e) => {
- const selectedIndex = e.target.selectedIndex;
- const val = e.target.options[selectedIndex].value;
- onQDataChanged({'general/image/format' : val});}
- }>
- <option key='placeholder' value=''>{i18n('Select...')}</option>
- {qgenericFieldInfo['general/image/format'].enum.map(hv => <option value={hv.enum} key={hv.enum}>{hv.title}</option>)}
- </Input>
- </GridItem>
- <GridItem>
- <Input
- data-test-id='providedBy'
- label={i18n('Image provided by')}
- type='select'
- className='input-options-select'
- groupClassName='bootstrap-input-options'
- isValid={qgenericFieldInfo['general/image/providedBy'].isValid}
- errorText={qgenericFieldInfo['general/image/providedBy'].errorText}
- value={dataMap['general/image/providedBy']}
- onChange={(e) => {
- const selectedIndex = e.target.selectedIndex;
- const val = e.target.options[selectedIndex].value;
- onQDataChanged({'general/image/providedBy' : val});}
- }>
- <option key='placeholder' value=''>{i18n('Select...')}</option>
- {qgenericFieldInfo['general/image/providedBy'].enum.map(hv => <option value={hv.enum} key={hv.enum}>{hv.title}</option>)}
- </Input>
- </GridItem>
+ <GridSection title={i18n('Disk')}>
<GridItem>
<Input
data-test-id='bootDiskSizePerVM'
- onChange={(bootDiskSizePerVM) => onQDataChanged({'general/image/bootDiskSizePerVM' : bootDiskSizePerVM})}
+ onChange={(bootDiskSizePerVM) => onQDataChanged({'general/disk/bootDiskSizePerVM' : bootDiskSizePerVM})}
label={i18n('Size of boot disk per VM (GB)')}
type='number'
- isValid={qgenericFieldInfo['general/image/bootDiskSizePerVM'].isValid}
- errorText={qgenericFieldInfo['general/image/bootDiskSizePerVM'].errorText}
- value={dataMap['general/image/bootDiskSizePerVM']}/>
+ isValid={qgenericFieldInfo['general/disk/bootDiskSizePerVM'].isValid}
+ errorText={qgenericFieldInfo['general/disk/bootDiskSizePerVM'].errorText}
+ value={dataMap['general/disk/bootDiskSizePerVM']}/>
</GridItem>
<GridItem>
<Input
data-test-id='ephemeralDiskSizePerVM'
- onChange={(ephemeralDiskSizePerVM) => onQDataChanged({'general/image/ephemeralDiskSizePerVM' : ephemeralDiskSizePerVM})}
+ onChange={(ephemeralDiskSizePerVM) => onQDataChanged({'general/disk/ephemeralDiskSizePerVM' : ephemeralDiskSizePerVM})}
label={i18n('Size of ephemeral disk per VM (GB)')}
type='number'
- isValid={qgenericFieldInfo['general/image/ephemeralDiskSizePerVM'].isValid}
- errorText={qgenericFieldInfo['general/image/ephemeralDiskSizePerVM'].errorText}
- value={dataMap['general/image/ephemeralDiskSizePerVM']}/>
+ isValid={qgenericFieldInfo['general/disk/ephemeralDiskSizePerVM'].isValid}
+ errorText={qgenericFieldInfo['general/disk/ephemeralDiskSizePerVM'].errorText}
+ value={dataMap['general/disk/ephemeralDiskSizePerVM']}/>
</GridItem>
</GridSection>
);
@@ -257,7 +228,7 @@ const CloneSection = ({dataMap, onQDataChanged, qgenericFieldInfo}) => (
class SoftwareProductComponentsGeneralView extends React.Component {
render() {
- let {onQDataChanged, onDataChanged, genericFieldInfo, dataMap, qGenericFieldInfo, componentData: {displayName, vfcCode, description}, isReadOnlyMode} = this.props;
+ let {isManual, onQDataChanged, onDataChanged, genericFieldInfo, dataMap, qGenericFieldInfo, componentData: {displayName, vfcCode, nfcFunction, description}, isReadOnlyMode} = this.props;
return(
<div className='vsp-components-general'>
<div className='general-data'>
@@ -271,7 +242,9 @@ class SoftwareProductComponentsGeneralView extends React.Component {
onDataChanged={onDataChanged}
displayName={displayName}
vfcCode={vfcCode}
+ nfcFunction={nfcFunction}
description={description}
+ isManual={isManual}
isReadOnlyMode={isReadOnlyMode}
genericFieldInfo={genericFieldInfo}/>
<HypervisorSection onQDataChanged={onQDataChanged} dataMap={dataMap} qgenericFieldInfo={qGenericFieldInfo}/>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js
new file mode 100644
index 0000000000..34198281b7
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js
@@ -0,0 +1,169 @@
+/*!
+ * 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 RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import Configuration from 'sdc-app/config/Configuration.js';
+import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {IMAGE_QUESTIONNAIRE} from './SoftwareProductComponentsImageConstants.js';
+import {actionTypes} from './SoftwareProductComponentsImageConstants.js';
+
+function baseUrl(softwareProductId, version, componentId) {
+ const versionId = version.id;
+ const restPrefix = Configuration.get('restPrefix');
+ return `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/components/${componentId}/images`;
+}
+
+function fetchImagesList({softwareProductId, componentId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}`);
+}
+
+function fetchImage({softwareProductId, componentId, imageId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}/${imageId}`);
+}
+
+function destroyImage({softwareProductId, componentId, version, imageId}) {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version, componentId)}/${imageId}`);
+}
+
+function createImage({softwareProductId, componentId, version, data}) {
+ return RestAPIUtil.post(baseUrl(softwareProductId, version, componentId), {
+ fileName: data.fileName
+ });
+}
+
+function fetchImageQuestionnaire({softwareProductId, componentId, imageId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}/${imageId}/questionnaire`);
+}
+
+function saveImage({softwareProductId, version, componentId, image: {id, fileName}}) {
+ return RestAPIUtil.put(`${baseUrl(softwareProductId, version, componentId)}/${id}`,{
+ fileName
+ });
+
+}
+
+function saveImageQuestionnaire({softwareProductId, componentId, version, imageId, qdata}) {
+ return RestAPIUtil.put(`${baseUrl(softwareProductId, version, componentId)}/${imageId}/questionnaire`, qdata);
+}
+
+const SoftwareProductComponentImagesActionHelper = {
+ fetchImagesList(dispatch, {softwareProductId, componentId, version}) {
+ dispatch({
+ type: actionTypes.IMAGES_LIST_UPDATE,
+ response: []
+ });
+
+ return fetchImagesList({softwareProductId, componentId, version}).then((response) => {
+ dispatch({
+ type: actionTypes.IMAGES_LIST_UPDATE,
+ response: response.results,
+ componentId : componentId
+ });
+ });
+ },
+
+ deleteImage(dispatch, {softwareProductId, componentId, version, imageId}) {
+ return destroyImage({softwareProductId, componentId, version, imageId}).then(() => {
+ return SoftwareProductComponentImagesActionHelper.fetchImagesList(dispatch, {softwareProductId, componentId, version});
+ });
+ },
+
+ loadImageData({softwareProductId, componentId, imageId, version}) {
+ return fetchImage({softwareProductId, componentId, imageId, version});
+ },
+
+ openEditImageEditor(dispatch, {image, softwareProductId, componentId, version, isReadOnlyMode, modalClassName}) {
+ return SoftwareProductComponentImagesActionHelper.loadImageData({softwareProductId, componentId, imageId: image.id, version}).then(({data}) => {
+ SoftwareProductComponentImagesActionHelper.loadImageQuestionnaire(dispatch, {
+ softwareProductId,
+ componentId,
+ imageId: image.id,
+ version
+ }).then(() => {
+ SoftwareProductComponentImagesActionHelper.openImageEditor(dispatch, {
+ softwareProductId,
+ componentId,
+ version,
+ isReadOnlyMode,
+ modalClassName,
+ image,
+ data
+ });
+ });
+ });
+ },
+
+ openImageEditor(dispatch, {image = {}, data = {}, softwareProductId, componentId, version, isReadOnlyMode}) {
+
+ let title = (image && image.id) ? i18n('Edit Image') : i18n('Create New Image');
+ let className = (image && image.id) ? 'image-edit-editor-model' : 'image-new-editor-modal';
+
+ dispatch({
+ type: actionTypes.ImageEditor.OPEN,
+ image: {...data, id: image.id}
+ });
+
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_SHOW,
+ data: {
+ modalComponentName: modalContentMapper.SOFTWARE_PRODUCT_COMPONENT_IMAGE_EDITOR,
+ title: title,
+ modalComponentProps: {softwareProductId, componentId, version, isReadOnlyMode, dialogClassName:className}
+ }
+ });
+ },
+
+ closeImageEditor(dispatch) {
+
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_CLOSE
+ });
+
+ dispatch({
+ type: actionTypes.ImageEditor.CLOSE
+ });
+ },
+
+ loadImageQuestionnaire(dispatch, {softwareProductId, componentId, imageId, version}) {
+ return fetchImageQuestionnaire({softwareProductId, componentId, imageId, version}).then((response) => {
+ ValidationHelper.qDataLoaded(dispatch, {qName: IMAGE_QUESTIONNAIRE ,response: {
+ qdata: response.data ? JSON.parse(response.data) : {},
+ qschema: JSON.parse(response.schema)
+ }});
+ });
+ },
+
+ saveImageDataAndQuestionnaire(dispatch, {softwareProductId, componentId, version, data, qdata}) {
+ SoftwareProductComponentImagesActionHelper.closeImageEditor(dispatch);
+ if (data !== null && data.id) {
+ // editor in edit mode
+ return Promise.all([
+ saveImageQuestionnaire({softwareProductId, version, componentId, imageId: data.id, qdata}),
+ saveImage({softwareProductId, version, componentId, image: data}).then(() => {
+ return SoftwareProductComponentImagesActionHelper.fetchImagesList(dispatch, {softwareProductId, componentId, version});
+ })
+ ]);
+ } else {
+ // editor in create mode
+ createImage({softwareProductId, componentId, version, data}).then(() => {
+ return SoftwareProductComponentImagesActionHelper.fetchImagesList(dispatch, {softwareProductId, componentId, version});
+ });
+ }
+ }
+};
+export default SoftwareProductComponentImagesActionHelper;
diff --git a/openecomp-ui/tools/gulp/deployment/gulpfile.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageConstants.js
index bf127e6d19..6b6c9a30e5 100644
--- a/openecomp-ui/tools/gulp/deployment/gulpfile.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageConstants.js
@@ -13,16 +13,15 @@
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
-var gulp = require('gulp');
-var i18nUpdateTask = require('./tools/gulp/tasks/i18nUpdate');
+import keyMirror from 'nfvo-utils/KeyMirror.js';
-gulp.task('i18nUpdate', function() {
+export const actionTypes = keyMirror({
+ IMAGES_LIST_UPDATE: null,
- return i18nUpdateTask({
- warDir: process.cwd(),
- lang: 'en'
- });
+ ImageEditor: {
+ CLOSE: null,
+ OPEN: null
+ }
});
-gulp.task('default', ['i18nUpdate']);
-
+export const IMAGE_QUESTIONNAIRE = 'image';
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditor.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditor.js
new file mode 100644
index 0000000000..49d891c9df
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditor.js
@@ -0,0 +1,63 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import SoftwareProductComponentsImageActionHelper from './SoftwareProductComponentsImageActionHelper.js';
+import SoftwareProductComponentsImageEditorView from './SoftwareProductComponentsImageEditorView.jsx';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+import {onboardingMethod as onboardingMethodTypes} from '../../SoftwareProductConstants.js';
+import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+import {IMAGE_QUESTIONNAIRE} from './SoftwareProductComponentsImageConstants.js';
+
+export const mapStateToProps = ({softwareProduct}) => {
+
+ let {softwareProductEditor: {data:currentSoftwareProduct = {}, isValidityData = true}, softwareProductComponents} = softwareProduct;
+
+ let {images: {imageEditor = {}}} = softwareProductComponents;
+ let {data, qdata, genericFieldInfo, qgenericFieldInfo, dataMap, formReady} = imageEditor;
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ let {version, onboardingMethod} = currentSoftwareProduct;
+ let isManual = onboardingMethod === onboardingMethodTypes.MANUAL;
+ let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo) && ValidationHelper.checkFormValid(qgenericFieldInfo);
+
+ return {
+ version,
+ currentSoftwareProduct,
+ isValidityData,
+ data,
+ qdata,
+ dataMap,
+ isFormValid,
+ formReady,
+ genericFieldInfo,
+ qgenericFieldInfo,
+ isReadOnlyMode,
+ isManual: isManual
+ };
+};
+
+const mapActionsToProps = (dispatch, {softwareProductId, componentId, version}) => {
+ return {
+ onDataChanged: (deltaData) => ValidationHelper.dataChanged(dispatch, {deltaData, formName: forms.IMAGE_EDIT_FORM}),
+ onSubmit: ({data, qdata}) => SoftwareProductComponentsImageActionHelper.saveImageDataAndQuestionnaire(dispatch, {softwareProductId, componentId, version, data, qdata}),
+ onCancel: () => SoftwareProductComponentsImageActionHelper.closeImageEditor(dispatch),
+ onValidateForm: () => ValidationHelper.validateForm(dispatch, forms.IMAGE_EDIT_FORM),
+ onQDataChanged: (deltaData) => ValidationHelper.qDataChanged(dispatch, {deltaData,
+ qName: IMAGE_QUESTIONNAIRE}),
+ };
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(SoftwareProductComponentsImageEditorView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorReducer.js
new file mode 100644
index 0000000000..0ab785a97f
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorReducer.js
@@ -0,0 +1,42 @@
+/*!
+ * 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 './SoftwareProductComponentsImageConstants.js';
+import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+
+export default (state = {}, action) => {
+ switch (action.type) {
+ case actionTypes.ImageEditor.CLOSE:
+ return {};
+ case actionTypes.ImageEditor.OPEN:
+ return {
+ ...state,
+ data: {
+ ...action.image
+ },
+ genericFieldInfo: {
+ 'fileName' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true}, {type: 'validateName', data: true}]
+ }
+ },
+ formName: forms.IMAGE_EDIT_FORM
+ };
+ default:
+ return state;
+ }
+};
+
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorView.jsx
new file mode 100644
index 0000000000..300f8edcc3
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageEditorView.jsx
@@ -0,0 +1,71 @@
+/*!
+ * 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 React from 'react';
+
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+
+import FileDetails from './imagesEditorComponents/FileDetails.jsx';
+import ImageDetails from './imagesEditorComponents/ImageDetails.jsx';
+
+class SoftwareProductComponentsImageEditorView extends React.Component {
+ static propTypes = {
+ onDataChanged: React.PropTypes.func.isRequired,
+ onSubmit: React.PropTypes.func.isRequired,
+ onCancel: React.PropTypes.func.isRequired
+ };
+
+ render() {
+ let {onCancel, onValidateForm, isReadOnlyMode, isFormValid, formReady, data = {}, genericFieldInfo, qgenericFieldInfo, dataMap, onDataChanged, isManual, onQDataChanged} = this.props;
+ let {id, fileName} = data;
+ let editingMode = Boolean(id);
+ return (
+ <div>
+ {genericFieldInfo && <Form
+ ref={(form) => { this.form = form; }}
+ hasButtons={true}
+ onSubmit={ () => this.submit() }
+ onReset={ () => onCancel() }
+ labledButtons={true}
+ isReadOnlyMode={isReadOnlyMode}
+ isValid={isFormValid}
+ formReady={formReady}
+ submitButtonText={editingMode ? i18n('Save') : i18n('Create')}
+ onValidateForm={() => onValidateForm() }
+ className='vsp-components-image-editor'>
+ <div className='editor-data'>
+ <FileDetails
+ editingMode={editingMode}
+ genericFieldInfo={genericFieldInfo}
+ qgenericFieldInfo={qgenericFieldInfo}
+ fileName={fileName}
+ onDataChanged={onDataChanged}
+ isManual={isManual}
+ dataMap={dataMap}
+ onQDataChanged={onQDataChanged}/>
+ {editingMode && <ImageDetails dataMap={dataMap}qgenericFieldInfo={qgenericFieldInfo} onQDataChanged={onQDataChanged}/>}
+ </div>
+ </Form>}
+ </div>
+ );
+ }
+ submit() {
+ let {data, qdata, onSubmit, version} = this.props;
+ onSubmit({data, qdata, version});
+ }
+}
+
+export default SoftwareProductComponentsImageEditorView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js
new file mode 100644
index 0000000000..86c4e072d4
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js
@@ -0,0 +1,88 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import SoftwareProductComponentsImageListView from './SoftwareProductComponentsImageListView.jsx';
+import ImageHelper from './SoftwareProductComponentsImageActionHelper.js';
+import SoftwareProductComponentsImagesActionHelper from './SoftwareProductComponentsImageActionHelper.js';
+import SoftwareProductComponentsActionHelper from '../SoftwareProductComponentsActionHelper.js';
+import {COMPONENTS_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+
+import {onboardingMethod as onboardingMethodTypes} from '../../SoftwareProductConstants.js';
+
+export const mapStateToProps = ({softwareProduct}) => {
+
+ let {softwareProductEditor: {data: currentSoftwareProduct = {}, isValidityData = true}, softwareProductComponents} = softwareProduct;
+ let {images: {imagesList = []}, componentEditor: {data: componentData, qdata, dataMap, qgenericFieldInfo}} = softwareProductComponents;
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ let {version, onboardingMethod} = currentSoftwareProduct;
+ let isManual = onboardingMethod === onboardingMethodTypes.MANUAL;
+
+ return {
+ version,
+ componentData,
+ qdata,
+ dataMap,
+ qgenericFieldInfo,
+ isValidityData,
+ imagesList,
+ isReadOnlyMode,
+ isManual : isManual
+ };
+};
+
+const mapActionsToProps = (dispatch, {softwareProductId, componentId}) => {
+ return {
+ onQDataChanged: (deltaData) => ValidationHelper.qDataChanged(dispatch, {deltaData,
+ qName: COMPONENTS_QUESTIONNAIRE}),
+ onAddImage: (version, isReadOnlyMode) => {
+ SoftwareProductComponentsImagesActionHelper.openImageEditor(dispatch,
+ {isReadOnlyMode, softwareProductId,
+ componentId, version}
+ );},
+ onDeleteImage: ((image, version) => {
+ let shortenedFileName = (image.fileName.length > 40) ? image.fileName.substr(0,40) + '...' : image.fileName;
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_WARNING,
+ data: {
+ msg: i18n(`Are you sure you want to delete "${shortenedFileName}"?`),
+ onConfirmed: () => ImageHelper.deleteImage(dispatch, {
+ softwareProductId,
+ componentId,
+ version,
+ imageId: image.id
+ })
+ }
+ });
+ }),
+ onEditImageClick: (image, version, isReadOnlyMode) => {
+ SoftwareProductComponentsImagesActionHelper.openEditImageEditor(dispatch, {
+ image, isReadOnlyMode, softwareProductId, componentId, version, modalClassName: 'image-modal-edit'}
+ );
+ },
+ onSubmit: ({qdata}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch,
+ {softwareProductId,
+ vspComponentId: componentId,
+ qdata});
+ }
+ };
+};
+
+export default connect(mapStateToProps, mapActionsToProps, null, {withRef: true})(SoftwareProductComponentsImageListView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListReducer.js
new file mode 100644
index 0000000000..5dd2fb623b
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListReducer.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 './SoftwareProductComponentsImageConstants.js';
+
+export default (state = [], action) => {
+ switch (action.type) {
+
+ case actionTypes.IMAGES_LIST_UPDATE:
+ return [...action.response];
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx
new file mode 100644
index 0000000000..ccf5b9d6b1
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx
@@ -0,0 +1,132 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+
+import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
+import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
+import ListEditorItemViewField from 'nfvo-components/listEditor/ListEditorItemViewField.jsx';
+import Input from'nfvo-components/input/validation/Input.jsx';
+
+class SoftwareProductComponentsImageListView extends React.Component {
+ state = {
+ localFilter: ''
+ };
+
+ render() {
+ let {dataMap, onQDataChanged, isReadOnlyMode, qgenericFieldInfo} = this.props;
+ return(
+ <div className='vsp-components-image'>
+ <div className='image-data'>
+ <div>
+ { qgenericFieldInfo && <Form
+ formReady={null}
+ isValid={true}
+ onSubmit={() => this.save()}
+ isReadOnlyMode={isReadOnlyMode}
+ hasButtons={false}>
+
+ <h3 className='section-title'>{i18n('Image')}</h3>
+ <div className='rows-section'>
+ <div className='row-flex-components'>
+ <div className='single-col'>
+ <Input
+ data-test-id='providedBy'
+ label={i18n('Image provided by')}
+ type='select'
+ isValid={qgenericFieldInfo['general/image/providedBy'].isValid}
+ errorText={qgenericFieldInfo['general/image/providedBy'].errorText}
+ value={dataMap['general/image/providedBy']}
+ onChange={(e) => {
+ const selectedIndex = e.target.selectedIndex;
+ const val = e.target.options[selectedIndex].value;
+ onQDataChanged({'general/image/providedBy' : val});}
+ }>
+ <option key='placeholder' value=''>{i18n('Select...')}</option>
+ { qgenericFieldInfo['general/image/providedBy'].enum.map(proto =>
+ <option value={proto.enum} key={proto.enum}>{proto.title}</option>) }
+ </Input>
+ </div>
+ <div className='empty-two-col' />
+ </div>
+ </div>
+
+ </Form> }
+ </div>
+ </div>
+ {this.renderImagesList()}
+ </div>
+ );
+ };
+
+ renderImagesList() {
+ const {localFilter} = this.state;
+ let {isReadOnlyMode, onAddImage, isManual, version} = this.props;
+
+ return (
+ <ListEditorView
+ title={i18n('Images')}
+ filterValue={localFilter}
+ placeholder={i18n('Filter Images by Name')}
+ isReadOnlyMode={isReadOnlyMode}
+ onFilter={value => this.setState({localFilter: value})}
+ onAdd={isManual ? () => onAddImage(version, isReadOnlyMode) : null}
+ plusButtonTitle={i18n('Add Image')}
+ twoColumns>
+ {this.filterList().map(image => this.renderImagesListItem(image, isReadOnlyMode))}
+ </ListEditorView>
+ );
+ };
+
+
+ renderImagesListItem(image, isReadOnlyMode) {
+ let {id, fileName} = image;
+ let {onEditImageClick, version, isManual, onDeleteImage} = this.props;
+ return (
+ <ListEditorItemView
+ key={id}
+ isReadOnlyMode={isReadOnlyMode}
+ onSelect={() => onEditImageClick(image, version, isReadOnlyMode)}
+ onDelete={isManual ? () => onDeleteImage(image, version) : null}>
+
+ <ListEditorItemViewField>
+ <div className='image-filename-cell'><span className='image-filename'>{fileName}</span></div>
+ </ListEditorItemViewField>
+ </ListEditorItemView>
+ );
+ }
+
+ filterList() {
+ let {imagesList} = this.props;
+ let {localFilter} = this.state;
+ if (localFilter.trim()) {
+ const filter = new RegExp(escape(localFilter), 'i');
+ return imagesList.filter(({fileName = ''}) => {
+ return escape(fileName).match(filter);
+ });
+ }
+ else {
+ return imagesList;
+ }
+ }
+
+ save() {
+ let {onSubmit, qdata} = this.props;
+ return onSubmit({qdata});
+ }
+}
+export default SoftwareProductComponentsImageListView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js
new file mode 100644
index 0000000000..20d1f5dd18
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js
@@ -0,0 +1,32 @@
+/*!
+ * 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 './SoftwareProductComponentsImageConstants.js';
+
+export default (state = {}, action) => {
+ switch (action.type) {
+
+ case actionTypes.IMAGES_LIST_UPDATE:
+ if (action.componentId) {
+ return {
+ ...state,
+ [action.componentId] : (action.response && action.response.length > 0)
+ };
+ }
+ return state;
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/FileDetails.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/FileDetails.jsx
new file mode 100644
index 0000000000..ca58b697a2
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/FileDetails.jsx
@@ -0,0 +1,48 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
+
+import Format from './Format.jsx';
+import Version from './Version.jsx';
+
+const FileDetails = ({editingMode, fileName, onDataChanged, isManual, dataMap, onQDataChanged, genericFieldInfo, qgenericFieldInfo}) => {
+ let fileNameCols = (editingMode) ? 3 : 4;
+ return(
+ <GridSection>
+ <GridItem colSpan={fileNameCols}>
+ <Input
+ disabled={!isManual}
+ onChange={fileName => onDataChanged({fileName}, forms.IMAGE_EDIT_FORM)}
+ label={i18n('Image Name')}
+ data-test-id='image-filename'
+ value={fileName}
+ isValid={genericFieldInfo.fileName.isValid}
+ errorText={genericFieldInfo.fileName.errorText}
+ isRequired={true}
+ type='text'
+ className='image-filename'/>
+ </GridItem>
+ {editingMode && <Version isManual={isManual} dataMap={dataMap} qgenericFieldInfo={qgenericFieldInfo} onQDataChanged={onQDataChanged}/>}
+ {editingMode && <Format isManual={isManual} qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged}/>}
+ </GridSection>
+ );
+};
+export default FileDetails;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Format.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Format.jsx
new file mode 100644
index 0000000000..1f71c6b277
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Format.jsx
@@ -0,0 +1,47 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+
+
+const Format = ({isManual, dataMap, qgenericFieldInfo, onQDataChanged}) => {
+ return(
+ <GridItem colSpan={2}>
+ <Input
+ disabled={!isManual}
+ data-test-id='image-format'
+ type='select'
+ label={i18n('Format')}
+ className='input-options-select'
+ groupClassName='bootstrap-input-options'
+ isValid={qgenericFieldInfo['format'].isValid}
+ errorText={qgenericFieldInfo['format'].errorText}
+ value={dataMap['format']}
+ onChange={(e) => {
+ const selectedIndex = e.target.selectedIndex;
+ const val = e.target.options[selectedIndex].value;
+ onQDataChanged({'format' : val});}
+ }>
+ <option key='placeholder' value=''>{i18n('Select...')}</option>
+ {qgenericFieldInfo['format'].enum.map(hv => <option value={hv.enum} key={hv.enum}>{hv.title}</option>)}
+ </Input>
+ </GridItem>
+ );
+};
+export default Format;
+
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/ImageDetails.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/ImageDetails.jsx
new file mode 100644
index 0000000000..24e54bbbcb
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/ImageDetails.jsx
@@ -0,0 +1,39 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+
+const ImageDetails = ({dataMap, qgenericFieldInfo, onQDataChanged}) => {
+ return(
+ <GridSection title={i18n('Image Details')}>
+ <GridItem colSpan={2}>
+ <Input
+ data-test-id='image-md5'
+ className='image-md5'
+ type='text'
+ label={i18n('md5')}
+ onChange={(md5) => onQDataChanged({'md5' : md5})}
+ isValid={qgenericFieldInfo['md5'].isValid}
+ errorText={qgenericFieldInfo['md5'].errorText}
+ value={dataMap['md5']}/>
+ </GridItem>
+ </GridSection>
+ );
+};
+export default ImageDetails;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Version.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Version.jsx
new file mode 100644
index 0000000000..3cac9a51b8
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/imagesEditorComponents/Version.jsx
@@ -0,0 +1,39 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+
+
+const Version = ({isManual, dataMap, qgenericFieldInfo, onQDataChanged}) => {
+ return(
+ <GridItem colSpan={1}>
+ <Input
+ disabled={!isManual}
+ data-test-id='image-version'
+ type='text'
+ className='image-version'
+ label={i18n('Version')}
+ onChange={(version) => onQDataChanged({'version' : version})}
+ isValid={qgenericFieldInfo['version'].isValid}
+ errorText={qgenericFieldInfo['version'].errorText}
+ value={dataMap['version']}/>
+ </GridItem>
+ );
+};
+export default Version;
+
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancingRefView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancingRefView.jsx
index dc86771400..9ae9e359b0 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancingRefView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancingRefView.jsx
@@ -14,7 +14,7 @@
* permissions and limitations under the License.
*/
import React from 'react';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import Form from 'nfvo-components/input/validation/Form.jsx';
@@ -56,7 +56,7 @@ const TextAreaItem = ({item, toggle, expanded, genericFieldInfo, dataMap, onQDat
<div className={expanded ? 'title' : 'title add-padding'}
data-test-id={`btn-${item.key}`}
onClick={() => toggle(item.key)}>
- <SVGIcon name={expanded ? 'chevron-up' : 'chevron-down'}/>
+ <SVGIcon name={expanded ? 'chevronUp' : 'chevronDown'}/>
<span className='title-text'>{i18n(item.description)}</span>
{item.added && <div className='new-line'>{i18n(item.added)}</div>}
</div>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js
index 293e252dca..730beba545 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js
@@ -25,20 +25,19 @@ import i18n from 'nfvo-utils/i18n/i18n.js';
export const mapStateToProps = ({softwareProduct}) => {
let {softwareProductEditor: {data:currentVSP = {}}, softwareProductComponents: {monitoring}} = softwareProduct;
- let {trapFilename, pollFilename} = monitoring;
+ let filenames = monitoring;
let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentVSP);
return {
isReadOnlyMode,
- trapFilename,
- pollFilename
+ filenames
};
};
const mapActionsToProps = (dispatch, {softwareProductId, version, componentId}) => {
return {
onDropMibFileToUpload: (formData, type) =>
- SoftwareProductComponentsMonitoringAction.uploadSnmpFile(dispatch, {
+ SoftwareProductComponentsMonitoringAction.uploadFile(dispatch, {
softwareProductId,
version,
componentId,
@@ -46,7 +45,7 @@ const mapActionsToProps = (dispatch, {softwareProductId, version, componentId})
type
}),
- onDeleteSnmpFile: type => SoftwareProductComponentsMonitoringAction.deleteSnmpFile(dispatch, {
+ onDeleteFile: type => SoftwareProductComponentsMonitoringAction.deleteFile(dispatch, {
softwareProductId,
version,
componentId,
@@ -57,7 +56,7 @@ const mapActionsToProps = (dispatch, {softwareProductId, version, componentId})
type: modalActionTypes.GLOBAL_MODAL_ERROR,
data: {
title: i18n('Upload Failed'),
- msg: i18n('Expected "zip" file. Please check the provided file type.')
+ msg: i18n('Expected "zip" file. Please check the provided file type.')
}
}),
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js
index 64403faa78..3db708bc92 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js
@@ -16,23 +16,13 @@
import i18n from 'nfvo-utils/i18n/i18n.js';
import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
import Configuration from 'sdc-app/config/Configuration.js';
-import SoftwareProductComponentsMonitoringConstants, {actionTypes} from './SoftwareProductComponentsMonitoringConstants.js';
+import {actionTypes} from './SoftwareProductComponentsMonitoringConstants.js';
import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
-const UPLOAD = true;
-
function baseUrl(vspId, version, componentId) {
const versionId = version.id;
const restPrefix = Configuration.get('restPrefix');
- return `${restPrefix}/v1.0/vendor-software-products/${vspId}/versions/${versionId}/components/${componentId}/monitors`;
-}
-
-function snmpTrapUrl(vspId, version, componentId, isUpload) {
- return `${baseUrl(vspId, version, componentId)}/snmp-trap${isUpload ? '/upload' : ''}`;
-}
-
-function snmpPollUrl(vspId, version, componentId, isUpload) {
- return `${baseUrl(vspId, version, componentId)}/snmp${isUpload ? '/upload' : ''}`;
+ return `${restPrefix}/v1.0/vendor-software-products/${vspId}/versions/${versionId}/components/${componentId}/uploads`;
}
let onInvalidFileSizeUpload = (dispatch) => dispatch({
@@ -43,62 +33,42 @@ let onInvalidFileSizeUpload = (dispatch) => dispatch({
}
});
-let uploadSnmpTrapFile = (dispatch, {softwareProductId, version, componentId, formData}) => {
- RestAPIUtil.post(snmpTrapUrl(softwareProductId, version, componentId, UPLOAD), formData).then(()=> dispatch({
- type: actionTypes.SNMP_TRAP_UPLOADED, data: {filename: formData.get('upload').name}
+let uploadFile = (dispatch, {softwareProductId, version, componentId, formData, type}) => {
+ return RestAPIUtil.post(`${baseUrl(softwareProductId, version, componentId)}/types/${type}`, formData).then(()=> dispatch({
+ type: actionTypes.MONITOR_UPLOADED, data: {filename: formData.get('upload').name, type : type}
}));
};
-let uploadSnmpPollFile = (dispatch, {softwareProductId, version, componentId, formData}) => {
- RestAPIUtil.post(snmpPollUrl(softwareProductId, version, componentId, UPLOAD), formData).then(()=> dispatch({
- type: actionTypes.SNMP_POLL_UPLOADED, data: {filename: formData.get('upload').name}
+let deleteFile = (dispatch, {softwareProductId, version, componentId, type}) => {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version, componentId)}/types/${type}`).then(()=> dispatch({
+ type: actionTypes.MONITOR_DELETED,
+ data : { type: type}
}));
};
-let deleteSnmpTrapFile = (dispatch, {softwareProductId, version, componentId}) => {
- RestAPIUtil.destroy(snmpTrapUrl(softwareProductId, version, componentId, !UPLOAD)).then(()=> dispatch({
- type: actionTypes.SNMP_TRAP_DELETED
- }));
-};
-
-let deleteSnmpPollFile = (dispatch, {softwareProductId, version, componentId}) => {
- RestAPIUtil.destroy(snmpPollUrl(softwareProductId, version, componentId, !UPLOAD)).then(()=> dispatch({
- type: actionTypes.SNMP_POLL_DELETED
- }));
-};
const SoftwareProductComponentsMonitoringAction = {
fetchExistingFiles(dispatch, {softwareProductId, version, componentId}){
- RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}/snmp`).then(response =>
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}`).then(response =>
dispatch({
- type: actionTypes.SNMP_FILES_DATA_CHANGE,
- data: {trapFilename: response.snmpTrap, pollFilename: response.snmpPoll}
+ type: actionTypes.MONITOR_FILES_DATA_CHANGE,
+ data: response
})
);
},
- uploadSnmpFile(dispatch, {softwareProductId, version, componentId, formData, type}){
+ uploadFile(dispatch, {softwareProductId, version, componentId, formData, type}){
if (formData.get('upload').size) {
- if (type === SoftwareProductComponentsMonitoringConstants.SNMP_TRAP) {
- uploadSnmpTrapFile(dispatch, {softwareProductId, version, componentId, formData});
- }
- else {
- uploadSnmpPollFile(dispatch, {softwareProductId, version, componentId, formData});
- }
+ return uploadFile(dispatch, {softwareProductId, version, componentId, formData, type});
}
else {
onInvalidFileSizeUpload(dispatch);
}
},
- deleteSnmpFile(dispatch, {softwareProductId, version, componentId, type}){
- if (type === SoftwareProductComponentsMonitoringConstants.SNMP_TRAP) {
- deleteSnmpTrapFile(dispatch, {softwareProductId, version, componentId});
- }
- else {
- deleteSnmpPollFile(dispatch, {softwareProductId, version, componentId});
- }
+ deleteFile(dispatch, {softwareProductId, version, componentId, type}){
+ return deleteFile(dispatch, {softwareProductId, version, componentId, type});
}
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js
index d908d36aaa..bf2cbd2a3f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js
@@ -14,20 +14,31 @@
* permissions and limitations under the License.
*/
import keyMirror from 'nfvo-utils/KeyMirror.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
export const actionTypes = keyMirror({
+ MONITOR_FILES_DATA_CHANGE: null,
+ MONITOR_UPLOADED: null,
+ MONITOR_DELETED: null
+});
- SNMP_FILES_DATA_CHANGE: null,
+export const fileTypes = {
+ SNMP_TRAP: 'SNMP_TRAP',
+ SNMP_POLL: 'SNMP_POLL',
+ VES_EVENT: 'VES_EVENTS'
+};
- SNMP_TRAP_UPLOADED: null,
- SNMP_POLL_UPLOADED: null,
+export const type2Name = {
+ SNMP_TRAP: 'snmpTrap',
+ SNMP_POLL: 'snmpPoll',
+ VES_EVENTS: 'vesEvent'
+};
- SNMP_TRAP_DELETED: null,
- SNMP_POLL_DELETED: null
-});
-export default keyMirror({
- SNMP_TRAP: null,
- SNMP_POLL: null
-});
+export const type2Title = {
+ SNMP_TRAP : i18n('SNMP Trap'),
+ SNMP_POLL : i18n('SNMP Poll'),
+ VES_EVENTS: i18n('VES')
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringReducer.js
index 54513b9634..f5cfe6f06d 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringReducer.js
@@ -13,35 +13,21 @@
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
-import {actionTypes} from './SoftwareProductComponentsMonitoringConstants.js';
+import {actionTypes, type2Name} from './SoftwareProductComponentsMonitoringConstants.js';
export default (state = {}, action) => {
switch (action.type) {
- case actionTypes.SNMP_FILES_DATA_CHANGE:
+ case actionTypes.MONITOR_FILES_DATA_CHANGE:
+ return action.data;
+ case actionTypes.MONITOR_UPLOADED:
return {
...state,
- trapFilename: action.data.trapFilename,
- pollFilename: action.data.pollFilename
+ [type2Name[action.data.type]]: action.data.filename
};
- case actionTypes.SNMP_TRAP_UPLOADED:
+ case actionTypes.MONITOR_DELETED:
return {
...state,
- trapFilename: action.data.filename
- };
- case actionTypes.SNMP_POLL_UPLOADED:
- return {
- ...state,
- pollFilename: action.data.filename
- };
- case actionTypes.SNMP_TRAP_DELETED:
- return {
- ...state,
- trapFilename: undefined
- };
- case actionTypes.SNMP_POLL_DELETED:
- return {
- ...state,
- pollFilename: undefined
+ [type2Name[action.data.type]]: undefined
};
default:
return state;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
index 329cc70353..2ad48ec84b 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
@@ -19,14 +19,15 @@ import ButtonGroup from 'react-bootstrap/lib/ButtonGroup.js';
import ButtonToolbar from 'react-bootstrap/lib/ButtonToolbar.js';
import Button from 'react-bootstrap/lib/Button.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import SoftwareProductComponentsMonitoringConstants from './SoftwareProductComponentsMonitoringConstants.js';
+import {fileTypes, type2Title, type2Name} from './SoftwareProductComponentsMonitoringConstants.js';
+
+
class SoftwareProductComponentsMonitoringView extends Component {
static propTypes = {
isReadOnlyMode: PropTypes.bool,
- trapFilename: PropTypes.string,
- pollFilename: PropTypes.string,
+ filenames: PropTypes.object,
softwareProductId: PropTypes.string,
onDropMibFileToUpload: PropTypes.func,
@@ -38,26 +39,24 @@ class SoftwareProductComponentsMonitoringView extends Component {
};
+
+
render() {
return (
<div className='vsp-component-monitoring'>
- {this.renderDropzoneWithType(SoftwareProductComponentsMonitoringConstants.SNMP_TRAP)}
- {this.renderDropzoneWithType(SoftwareProductComponentsMonitoringConstants.SNMP_POLL)}
+ {this.renderDropzoneWithType(fileTypes.VES_EVENT)}
+ {this.renderDropzoneWithType(fileTypes.SNMP_TRAP)}
+ {this.renderDropzoneWithType(fileTypes.SNMP_POLL)}
</div>
);
}
renderDropzoneWithType(type) {
- let {isReadOnlyMode, trapFilename, pollFilename} = this.props;
- let fileName;
- if (type === SoftwareProductComponentsMonitoringConstants.SNMP_TRAP) {
- fileName = trapFilename;
- }
- else {
- fileName = pollFilename;
- }
+ let {isReadOnlyMode, filenames} = this.props;
+ let fileByType = type2Name[type];
+ let fileName = (filenames) ? filenames[fileByType] : undefined;
let refAndName = `fileInput${type.toString()}`;
- let typeDisplayName = this.getFileTypeDisplayName(type);
+ let typeDisplayName = type2Title[type];
return (
<Dropzone
className={`snmp-dropzone ${this.state.dragging ? 'active-dragging' : ''}`}
@@ -97,7 +96,7 @@ class SoftwareProductComponentsMonitoringView extends Component {
<ButtonToolbar>
<ButtonGroup>
<Button disabled>{filename}</Button>
- <Button className='delete-button' onClick={()=>this.props.onDeleteSnmpFile(type)}>X</Button>
+ <Button className='delete-button' onClick={()=>this.props.onDeleteFile(type)}>X</Button>
</ButtonGroup>
</ButtonToolbar>
);
@@ -126,11 +125,6 @@ class SoftwareProductComponentsMonitoringView extends Component {
this.props.onFileUploadError();
}
}
-
- getFileTypeDisplayName(type) {
- return type === SoftwareProductComponentsMonitoringConstants.SNMP_TRAP ? 'SNMP Trap' : 'SNMP Poll';
- }
-
}
export default SoftwareProductComponentsMonitoringView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreation.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreation.js
new file mode 100644
index 0000000000..865367a734
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreation.js
@@ -0,0 +1,51 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import NICCreationActionHelper from './NICCreationActionHelper.js';
+import NICCreationView from './NICCreationView.jsx';
+import SoftwareProductComponentsNetworkActionHelper from '../SoftwareProductComponentsNetworkActionHelper.js';
+import {networkTypes, NIC_CREATION_FORM_NAME} from '../SoftwareProductComponentsNetworkConstants.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+
+export const mapStateToProps = ({softwareProduct}) => {
+ let {softwareProductEditor: {data:currentSoftwareProduct = {}}, softwareProductComponents} = softwareProduct;
+ let {network: {nicCreation = {}}} = softwareProductComponents;
+ let {data, genericFieldInfo, formReady} = nicCreation;
+ data = {...data, networkType: networkTypes.EXTERNAL};
+ let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
+
+ return {
+ currentSoftwareProduct,
+ data,
+ genericFieldInfo,
+ isFormValid,
+ formReady
+ };
+};
+
+const mapActionsToProps = (dispatch) => {
+ return {
+ onDataChanged: deltaData => ValidationHelper.dataChanged(dispatch, {deltaData, formName: NIC_CREATION_FORM_NAME}),
+ onCancel: () => NICCreationActionHelper.close(dispatch),
+ onSubmit: ({nic, softwareProductId, componentId, version}) => {
+ NICCreationActionHelper.close(dispatch);
+ SoftwareProductComponentsNetworkActionHelper.createNIC(dispatch, {nic, softwareProductId, componentId, version});
+ },
+ onValidateForm: () => ValidationHelper.validateForm(dispatch, NIC_CREATION_FORM_NAME)
+ };
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(NICCreationView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationActionHelper.js
new file mode 100644
index 0000000000..ad28c86b81
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationActionHelper.js
@@ -0,0 +1,47 @@
+/*!
+ * 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 '../SoftwareProductComponentsNetworkConstants';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
+
+export default {
+
+ open(dispatch, {softwareProductId, componentId, modalClassName}) {
+ dispatch({
+ type: actionTypes.NICCreation.OPEN
+ });
+
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_SHOW,
+ data: {
+ modalComponentName: modalContentMapper.NIC_CREATION,
+ title: i18n('Create NEW NIC'),
+ modalClassName,
+ modalComponentProps: {softwareProductId, componentId}
+ }
+ });
+ },
+
+ close(dispatch){
+ dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_CLOSE
+ });
+ dispatch({
+ type: actionTypes.NICCreation.CLEAR_DATA
+ });
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationReducer.js
new file mode 100644
index 0000000000..c7e2495b3d
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationReducer.js
@@ -0,0 +1,49 @@
+/*!
+ * 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, NIC_CREATION_FORM_NAME} from '../SoftwareProductComponentsNetworkConstants.js';
+
+export default (state = {}, action) => {
+ switch (action.type) {
+ case actionTypes.NICCreation.OPEN:
+ return {
+ ...state,
+ data: {},
+ formName: NIC_CREATION_FORM_NAME,
+ formReady: null,
+ genericFieldInfo: {
+ 'description' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 1000}]
+ },
+ 'name' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data : true}]
+ },
+ 'networkDescription' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 50}]
+ }
+ }
+ };
+ case actionTypes.NICCreation.CLEAR_DATA:
+ return {};
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationView.jsx
new file mode 100644
index 0000000000..3cb731a421
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/NICCreation/NICCreationView.jsx
@@ -0,0 +1,123 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+
+const NICPropType = React.PropTypes.shape({
+ id: React.PropTypes.string,
+ name: React.PropTypes.string,
+ description: React.PropTypes.string,
+ networkId: React.PropTypes.string
+});
+
+class NICCreationView extends React.Component {
+
+ static propTypes = {
+ data: NICPropType,
+ onDataChanged: React.PropTypes.func.isRequired,
+ onSubmit: React.PropTypes.func.isRequired,
+ onCancel: React.PropTypes.func.isRequired
+ };
+
+ render() {
+ let {data = {}, onDataChanged, genericFieldInfo, isFormValid, onValidateForm, formReady} = this.props;
+ let {name, description, networkDescription} = data;
+ return (
+ <div>
+ {genericFieldInfo && <Form
+ ref={(form) => this.form = form}
+ hasButtons={true}
+ onSubmit={ () => this.submit() }
+ submitButtonText={data.id ? i18n('Save') : i18n('Create')}
+ onReset={ () => this.props.onCancel() }
+ labledButtons={true}
+ isValid={isFormValid}
+ onValidateForm={() => onValidateForm()}
+ formReady={formReady} >
+ <GridSection>
+ <GridItem colSpan={4}>
+ <Input
+ value={name}
+ label={i18n('Name')}
+ data-test-id='nic-name'
+ onChange={name => onDataChanged({name})}
+ isRequired={true}
+ type='text'
+ isValid={genericFieldInfo['name'].isValid}
+ errorText={genericFieldInfo['name'].errorText}
+ className='field-section'/>
+ <Input
+ value={description}
+ label={i18n('Description')}
+ data-test-id='nic-description'
+ onChange={description => onDataChanged({description})}
+ isValid={genericFieldInfo['description'].isValid}
+ errorText={genericFieldInfo['description'].errorText}
+ type='textarea'
+ className='field-section'/>
+ </GridItem>
+ </GridSection>
+ <GridSection title={i18n('Network')}>
+ <GridItem colSpan={2}>
+ <div className='form-group'>
+ <label className='control-label'>{i18n('Network Type')}</label>
+ <div className='network-type-radio'>
+ <Input
+ label={i18n('Internal')}
+ disabled
+ checked={false}
+ data-test-id='nic-internal'
+ className='network-radio disabled'
+ type='radio'/>
+ <Input
+ label={i18n('External')}
+ disabled
+ checked={true}
+ data-test-id='nic-external'
+ className='network-radio disabled'
+ type='radio'/>
+ </div>
+ </div>
+ </GridItem>
+ <GridItem colSpan={2}>
+ <Input
+ value={networkDescription}
+ label={i18n('Network Description')}
+ data-test-id='nic-network-description'
+ onChange={networkDescription => onDataChanged({networkDescription})}
+ isValid={genericFieldInfo['networkDescription'].isValid}
+ errorText={genericFieldInfo['networkDescription'].errorText}
+ type='text'
+ className='field-section'/>
+ </GridItem>
+ </GridSection>
+ </Form>}
+ </div>
+ );
+ }
+
+
+ submit() {
+ const {data: nic, softwareProductId, componentId, currentSoftwareProduct} = this.props;
+ this.props.onSubmit({nic, softwareProductId, componentId, version: currentSoftwareProduct.version});
+ }
+}
+
+export default NICCreationView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js
index 7cf1f0189e..b47c7e0f99 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditor.js
@@ -20,6 +20,7 @@ import VersionControllerUtils from 'nfvo-components/panel/versionController/Vers
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
import {NIC_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js';
+import {onboardingMethod as onboardingMethodTypes} from '../../SoftwareProductConstants.js';
export const mapStateToProps = ({softwareProduct}) => {
@@ -28,6 +29,7 @@ export const mapStateToProps = ({softwareProduct}) => {
let {network: {nicEditor = {}}} = softwareProductComponents;
let {data, qdata, genericFieldInfo, qgenericFieldInfo, dataMap, formReady} = nicEditor;
let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ let {onboardingMethod} = currentSoftwareProduct;
let protocols = [];
if(qdata && qdata.protocols && qdata.protocols.protocols && qdata.protocols.protocols.length){
protocols = qdata.protocols.protocols;
@@ -47,7 +49,8 @@ export const mapStateToProps = ({softwareProduct}) => {
genericFieldInfo,
qgenericFieldInfo,
isReadOnlyMode,
- protocols
+ protocols,
+ isManual: onboardingMethod === onboardingMethodTypes.MANUAL
};
};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorReducer.js
index b3c9fe5d98..dd37135d77 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorReducer.js
@@ -18,7 +18,7 @@ import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProdu
export default (state = {}, action) => {
switch (action.type) {
- case actionTypes.NICEditor.OPEN:
+ case actionTypes.NICEditor.FILL_DATA:
return {
...state,
data: action.nic,
@@ -31,12 +31,17 @@ export default (state = {}, action) => {
'name' : {
isValid: true,
errorText: '',
+ validations: [{type: 'required', data : true}]
+ },
+ 'networkDescription' : {
+ isValid: true,
+ errorText: '',
validations: []
}
},
formName: forms.NIC_EDIT_FORM
};
- case actionTypes.NICEditor.CLOSE:
+ case actionTypes.NICEditor.CLEAR_DATA:
return {};
default:
return state;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorView.jsx
index aad06c82f0..8a4c55a411 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNICEditorView.jsx
@@ -28,8 +28,9 @@ import NameAndPurpose from './nicEditorComponents/NameAndPurpose.jsx';
class SoftwareProductComponentsNetworkEditorView extends React.Component {
render() {
- let {onCancel, onValidateForm, isReadOnlyMode, isFormValid, formReady, data = {}, qgenericFieldInfo, dataMap, onDataChanged, protocols, onQDataChanged} = this.props;
- let {name, description, networkName} = data;
+ let {onCancel, onValidateForm, isReadOnlyMode, isFormValid, formReady, data = {}, qgenericFieldInfo,
+ dataMap, onDataChanged, protocols, onQDataChanged, isManual, genericFieldInfo} = this.props;
+ let {name, description, networkName, networkType, networkDescription} = data;
let netWorkValues = [{
enum: networkName,
title: networkName
@@ -48,10 +49,10 @@ class SoftwareProductComponentsNetworkEditorView extends React.Component {
onValidateForm={() => onValidateForm() }
className='vsp-components-network-editor'>
<div className='editor-data'>
- <NameAndPurpose name={name} description={description} onDataChanged={onDataChanged} isReadOnlyMode={isReadOnlyMode}/>
+ <NameAndPurpose isManual={isManual} name={name} description={description} onDataChanged={onDataChanged} isReadOnlyMode={isReadOnlyMode} genericFieldInfo={genericFieldInfo} />
<Protocols protocols={protocols} qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged} />
<IpConfig dataMap={dataMap} onQDataChanged={onQDataChanged} />
- <Network networkValues={netWorkValues} />
+ <Network networkDescription={networkDescription} onDataChanged={onDataChanged} networkValues={netWorkValues} isReadOnlyMode={isReadOnlyMode} networkType={networkType} />
<Sizing qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged} />
<InFlowTraffic qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged} />
<OutFlowTraffic qgenericFieldInfo={qgenericFieldInfo} dataMap={dataMap} onQDataChanged={onQDataChanged} />
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js
index bc061469b1..a3cfe65128 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js
@@ -15,8 +15,11 @@
*/
import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
import Configuration from 'sdc-app/config/Configuration.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
import {actionTypes} from './SoftwareProductComponentsNetworkConstants.js';
+import {actionTypes as GlobalModalActions} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {modalContentMapper as modalPagesMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
import {NIC_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js';
@@ -26,6 +29,14 @@ function baseUrl(softwareProductId, version, componentId) {
return `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/components/${componentId}/nics`;
}
+function createNIC({nic, vspId, componentId, version}) {
+ return RestAPIUtil.post(baseUrl(vspId, version, componentId), {
+ name: nic.name,
+ description: nic.description,
+ networkDescription: nic.networkDescription,
+ networkType: nic.networkType
+ });
+}
function fetchNICQuestionnaire({softwareProductId, version, componentId, nicId}) {
return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}/${nicId}/questionnaire`);
@@ -39,11 +50,16 @@ function fetchNICsList({softwareProductId, version, componentId}) {
return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version, componentId)}`);
}
-function saveNIC({softwareProductId, version, componentId, nic: {id, name, description, networkId}}) {
+function deleteNIC({softwareProductId, componentId, nicId, version}) {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version, componentId)}/${nicId}`);
+}
+function saveNIC({softwareProductId, version, componentId, nic: {id, name, description, networkId, networkType, networkDescription}}) {
return RestAPIUtil.put(`${baseUrl(softwareProductId, version, componentId)}/${id}`,{
name,
description,
- networkId
+ networkId,
+ networkDescription,
+ networkType
});
}
@@ -62,23 +78,45 @@ const SoftwareProductComponentNetworkActionHelper = {
});
},
- openNICEditor(dispatch, {nic = {}, data = {}}) {
+ openNICEditor(dispatch, {nic = {}, data = {}, softwareProductId, componentId, isReadOnlyMode, modalClassName}) {
dispatch({
- type: actionTypes.NICEditor.OPEN,
+ type: actionTypes.NICEditor.FILL_DATA,
nic: {...data, id: nic.id}
});
+ dispatch({
+ type: GlobalModalActions.GLOBAL_MODAL_SHOW,
+ data: {
+ modalClassName,
+ modalComponentProps: {softwareProductId, componentId, isReadOnlyMode},
+ modalComponentName: modalPagesMapper.NIC_EDITOR,
+ title: i18n('Edit NIC')
+ }
+ });
},
closeNICEditor(dispatch) {
dispatch({
- type: actionTypes.NICEditor.CLOSE
+ type: GlobalModalActions.GLOBAL_MODAL_CLOSE
+ });
+ dispatch({
+ type: actionTypes.NICEditor.CLEAR_DATA
});
},
+ createNIC(dispatch, {nic, softwareProductId, componentId, version}){
+ return createNIC({nic, vspId: softwareProductId, componentId, version}).then(() => {
+ return SoftwareProductComponentNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
+ });
+ },
loadNICData({softwareProductId, version, componentId, nicId}) {
return fetchNIC({softwareProductId, version, componentId, nicId});
},
+ deleteNIC(dispatch, {softwareProductId, componentId, nicId, version}) {
+ return deleteNIC({softwareProductId, componentId, nicId, version}).then(() => {
+ return SoftwareProductComponentNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
+ });
+ },
loadNICQuestionnaire(dispatch, {softwareProductId, version, componentId, nicId}) {
return fetchNICQuestionnaire({softwareProductId, version, componentId, nicId}).then((response) => {
ValidationHelper.qDataLoaded(dispatch, {qName: NIC_QUESTIONNAIRE ,response: {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js
index 39c55d876c..8ef8fe8c18 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js
@@ -20,9 +20,19 @@ export const actionTypes = keyMirror({
NIC_LIST_UPDATE: null,
NICEditor: {
+ FILL_DATA: null,
+ CLEAR_DATA: null,
+ },
+ NICCreation: {
OPEN: null,
- CLOSE: null
- }
+ CLEAR_DATA: null,
+ DATA_CHANGED: null
+ },
});
+export const networkTypes = {
+ EXTERNAL: 'External',
+ INTERNAL: 'Internal'
+};
export const NIC_QUESTIONNAIRE = 'nic';
+export const NIC_CREATION_FORM_NAME = 'nicCreation';
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkList.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkList.js
index c2bd8ce479..0fa877e90f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkList.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkList.js
@@ -14,6 +14,7 @@
* permissions and limitations under the License.
*/
import {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
import SoftwareProductComponentsActionHelper from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js';
@@ -21,16 +22,17 @@ import SoftwareProductComponentsNetworkListView from './SoftwareProductComponent
import SoftwareProductComponentsNetworkActionHelper from './SoftwareProductComponentsNetworkActionHelper.js';
import {COMPONENTS_QUESTIONNAIRE} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import {actionTypes as GlobalModalActions} from 'nfvo-components/modal/GlobalModalConstants.js';
+import NICCreationActionHelper from './NICCreation/NICCreationActionHelper.js';
+import {onboardingMethod as onboardingMethodTypes} from '../../SoftwareProductConstants.js';
export const mapStateToProps = ({softwareProduct}) => {
let {softwareProductEditor: {data: currentSoftwareProduct = {}, isValidityData = true}, softwareProductComponents} = softwareProduct;
- let {network: {nicEditor = {}, nicList = []}, componentEditor: {data: componentData, qdata, dataMap, qgenericFieldInfo}} = softwareProductComponents;
- let {data} = nicEditor;
+ let {network: {nicList = []}, componentEditor: {data: componentData, qdata, dataMap, qgenericFieldInfo}} = softwareProductComponents;
let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
- let {version} = currentSoftwareProduct;
- let isModalInEditMode = true;
+ let {version, onboardingMethod} = currentSoftwareProduct;
return {
version,
@@ -40,9 +42,8 @@ export const mapStateToProps = ({softwareProduct}) => {
qgenericFieldInfo,
isValidityData,
nicList,
- isDisplayModal: Boolean(data),
- isModalInEditMode,
- isReadOnlyMode
+ isReadOnlyMode,
+ isManual: onboardingMethod === onboardingMethodTypes.MANUAL
};
};
@@ -51,7 +52,16 @@ const mapActionsToProps = (dispatch, {softwareProductId, componentId}) => {
return {
onQDataChanged: (deltaData) => ValidationHelper.qDataChanged(dispatch, {deltaData,
qName: COMPONENTS_QUESTIONNAIRE}),
- onEditNicClick: (nic, version) => {
+ onAddNic: () => NICCreationActionHelper.open(dispatch, {softwareProductId, componentId, modalClassName: 'network-nic-modal-create'}),
+ onDeleteNic: (nic, version) => dispatch({
+ type: GlobalModalActions.GLOBAL_MODAL_WARNING,
+ data:{
+ msg: i18n(`Are you sure you want to delete "${nic.name}"?`),
+ onConfirmed: () => SoftwareProductComponentsNetworkActionHelper.deleteNIC(dispatch, {softwareProductId,
+ componentId, nicId: nic.id, version})
+ }
+ }),
+ onEditNicClick: (nic, version, isReadOnlyMode) => {
Promise.all([
SoftwareProductComponentsNetworkActionHelper.loadNICData({
softwareProductId,
@@ -66,7 +76,8 @@ const mapActionsToProps = (dispatch, {softwareProductId, componentId}) => {
nicId: nic.id
})
]).then(
- ([{data}]) => SoftwareProductComponentsNetworkActionHelper.openNICEditor(dispatch, {nic, data})
+ ([{data}]) => SoftwareProductComponentsNetworkActionHelper.openNICEditor(dispatch, {nic, data,
+ isReadOnlyMode, softwareProductId, componentId, modalClassName: 'network-nic-modal-edit'})
);
},
onSubmit: ({qdata, version}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch,
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
index f715016ba3..5a159b4a87 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
@@ -21,9 +21,7 @@ import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
import ListEditorItemViewField from 'nfvo-components/listEditor/ListEditorItemViewField.jsx';
import Input from'nfvo-components/input/validation/Input.jsx';
-import Modal from 'nfvo-components/modal/Modal.jsx';
-import SoftwareProductComponentsNICEditor from './SoftwareProductComponentsNICEditor.js';
class SoftwareProductComponentsNetworkView extends React.Component {
@@ -32,7 +30,7 @@ class SoftwareProductComponentsNetworkView extends React.Component {
};
render() {
- let {dataMap, qgenericFieldInfo, onQDataChanged, isModalInEditMode, isDisplayModal, softwareProductId, componentId, isReadOnlyMode} = this.props;
+ let {dataMap, qgenericFieldInfo, onQDataChanged, isReadOnlyMode} = this.props;
return(
<div className='vsp-components-network'>
@@ -85,26 +83,14 @@ class SoftwareProductComponentsNetworkView extends React.Component {
</div>
{this.renderNicList()}
</div>
- <Modal show={isDisplayModal} bsSize='large' animation={true} className='network-nic-modal'>
- <Modal.Header>
- <Modal.Title>{isModalInEditMode ? i18n('Edit NIC') : i18n('Create New NIC')}</Modal.Title>
- </Modal.Header>
- <Modal.Body>
- {
- <SoftwareProductComponentsNICEditor
- softwareProductId={softwareProductId}
- componentId={componentId}
- isReadOnlyMode={isReadOnlyMode}/>
- }
- </Modal.Body>
- </Modal>
+
</div>
);
}
renderNicList() {
const {localFilter} = this.state;
- let {isReadOnlyMode} = this.props;
+ let {isReadOnlyMode, onAddNic, isManual} = this.props;
return (
<ListEditorView
title={i18n('Interfaces')}
@@ -112,6 +98,8 @@ class SoftwareProductComponentsNetworkView extends React.Component {
placeholder={i18n('Filter NICs by Name')}
isReadOnlyMode={isReadOnlyMode}
onFilter={value => this.setState({localFilter: value})}
+ onAdd={isManual ? onAddNic : null}
+ plusButtonTitle={i18n('Add NIC')}
twoColumns>
{this.filterList().map(nic => this.renderNicListItem(nic, isReadOnlyMode))}
</ListEditorView>
@@ -120,25 +108,26 @@ class SoftwareProductComponentsNetworkView extends React.Component {
renderNicListItem(nic, isReadOnlyMode) {
let {id, name, description, networkName = ''} = nic;
- let {onEditNicClick, version} = this.props;
+ let {onEditNicClick, version, isManual, onDeleteNic} = this.props;
return (
<ListEditorItemView
key={id}
isReadOnlyMode={isReadOnlyMode}
- onSelect={() => onEditNicClick(nic, version)}>
+ onSelect={() => onEditNicClick(nic, version, isReadOnlyMode)}
+ onDelete={isManual ? () => onDeleteNic(nic, version) : null}>
<ListEditorItemViewField>
<div className='name'>{name}</div>
</ListEditorItemViewField>
<ListEditorItemViewField>
- <div className='details'>
- <div className='title'>{i18n('Purpose of NIC')}</div>
- <div className='description'>{description}</div>
+ <div className={isManual ? 'details-col' : 'details'}>
+ <div className={isManual ? 'manual-title' : 'title'}>{i18n('Purpose of NIC')}</div>
+ <div className={isManual ? 'description' : ''}>{description ? description : i18n('N/A')}</div>
</div>
- <div className='details'>
+ {!isManual && <div className='details'>
<div className='title'>{i18n('Network')}</div>
<div className='artifact-name'>{networkName}</div>
- </div>
+ </div>}
</ListEditorItemViewField>
</ListEditorItemView>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/NameAndPurpose.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/NameAndPurpose.jsx
index 3dc153d27f..bc692e753c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/NameAndPurpose.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/NameAndPurpose.jsx
@@ -19,7 +19,7 @@ import Input from 'nfvo-components/input/validation/Input.jsx';
import GridSection from 'nfvo-components/grid/GridSection.jsx';
import GridItem from 'nfvo-components/grid/GridItem.jsx';
-const NameAndPurpose = ({onDataChanged, isReadOnlyMode, name, description}) => {
+const NameAndPurpose = ({onDataChanged, genericFieldInfo, isReadOnlyMode, name, description, isManual}) => {
return (
<GridSection>
@@ -28,7 +28,11 @@ const NameAndPurpose = ({onDataChanged, isReadOnlyMode, name, description}) => {
label={i18n('Name')}
value={name}
data-test-id='nic-name'
- disabled={true}
+ disabled={!isManual}
+ isRequired={true}
+ onChange={name => onDataChanged({name})}
+ isValid={genericFieldInfo['name'].isValid}
+ errorText={genericFieldInfo['name'].errorText}
type='text' />
</GridItem>
<GridItem colSpan={2}>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/Network.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/Network.jsx
index 43afdbed3a..8d9b79e67f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/Network.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/nicEditorComponents/Network.jsx
@@ -18,15 +18,17 @@ import i18n from 'nfvo-utils/i18n/i18n.js';
import Input from 'nfvo-components/input/validation/Input.jsx';
import GridSection from 'nfvo-components/grid/GridSection.jsx';
import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import { networkTypes } from '../SoftwareProductComponentsNetworkConstants.js';
-const Network = ({networkValues}) => {
+const Network = ({networkValues, networkType, networkDescription, onDataChanged, isReadOnlyMode}) => {
+ const isExternal = networkType === networkTypes.EXTERNAL;
return (
<GridSection title={i18n('Network')}>
<GridItem>
<Input
label={i18n('Internal')}
disabled
- checked={true}
+ checked={!isExternal}
data-test-id='nic-internal'
className='network-radio disabled'
type='radio'/>
@@ -35,12 +37,21 @@ const Network = ({networkValues}) => {
<Input
label={i18n('External')}
disabled
- checked={false}
+ checked={isExternal}
data-test-id='nic-external'
className='network-radio disabled'
type='radio'/>
</GridItem>
<GridItem colSpan={2}>
+ {isExternal ?
+ <Input
+ label={i18n('Network Description')}
+ value={networkDescription}
+ data-test-id='nic-network-description'
+ onChange={networkDescription => onDataChanged({networkDescription})}
+ disabled={isReadOnlyMode}
+ type='text'/>
+ :
<Input
label={i18n('Network')}
data-test-id='nic-network'
@@ -48,8 +59,8 @@ const Network = ({networkValues}) => {
className='input-options-select'
groupClassName='bootstrap-input-options'
disabled={true} >
- {networkValues.map(val => <option key={val.enum} value={val.enum}>{val.title}</option>)}
- </Input>
+ {networkValues.map(val => <option key={val.enum} value={val.enum}>{val.title}</option>)}
+ </Input>}
</GridItem>
</GridSection>
);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentProcessesList.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentProcessesList.js
index a8cb709194..826201162c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentProcessesList.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentProcessesList.js
@@ -47,7 +47,7 @@ const mapActionsToProps = (dispatch, {componentId, softwareProductId}) => {
onDeleteProcessClick: (process, version) => dispatch({
type: modalActionTypes.GLOBAL_MODAL_WARNING,
data:{
- msg: i18n('Are you sure you want to delete "{name}"?', {name: process.name}),
+ msg: i18n(`Are you sure you want to delete "${process.name}"?`),
onConfirmed: ()=> SoftwareProductComponentProcessesActionHelper.deleteProcess(dispatch,
{process, softwareProductId, version, componentId})
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentsProcessesListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentsProcessesListView.jsx
index 650d6d5ebc..93d5ce886a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentsProcessesListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/processes/SoftwareProductComponentsProcessesListView.jsx
@@ -44,7 +44,7 @@ class SoftwareProductProcessesView extends React.Component {
return (
<div className='vsp-processes-page'>
<div className='software-product-view'>
- <div className='software-product-landing-view-right-side flex-column'>
+ <div className='software-product-landing-view-right-side vsp-components-processes-page flex-column'>
{this.renderEditor()}
{this.renderProcessList()}
</div>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationActionHelper.js
index 3b434e3ba4..a22b517fa0 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationActionHelper.js
@@ -17,7 +17,7 @@ import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
import Configuration from 'sdc-app/config/Configuration.js';
import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
-import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {actionTypes as modalActionTypes, modalSizes} from 'nfvo-components/modal/GlobalModalConstants.js';
import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
import {actionTypes} from './SoftwareProductCreationConstants.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
@@ -48,9 +48,10 @@ const SoftwareProductCreationActionHelper = {
type: modalActionTypes.GLOBAL_MODAL_SHOW,
data: {
modalComponentName: modalContentMapper.SOFTWARE_PRODUCT_CREATION,
- title: i18n('New Software Product'),
+ title: i18n('New Software Product'),
modalComponentProps: {
- vendorId
+ vendorId,
+ size: modalSizes.LARGE
}
}
});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationReducer.js
index f7a738518e..a7db2b2357 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationReducer.js
@@ -15,6 +15,7 @@
*/
import {actionTypes, SP_CREATION_FORM_NAME} from './SoftwareProductCreationConstants.js';
+
export default (state = {}, action) => {
switch (action.type) {
case actionTypes.OPEN:
@@ -50,6 +51,11 @@ export default (state = {}, action) => {
isValid: true,
errorText: '',
validations: [{type: 'required', data: true}, {type: 'maxLength', data: 25}, {type: 'validateName', data: true}]
+ },
+ 'onboardingMethod' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'requiredChooseOption', data: true}]
}
},
showModal: true
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 11b696855b..11f3543e39 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreationView.jsx
@@ -18,10 +18,14 @@ import i18n from 'nfvo-utils/i18n/i18n.js';
import Validator from 'nfvo-utils/Validator.js';
import Input from 'nfvo-components/input/validation/Input.jsx';
import Form from 'nfvo-components/input/validation/Form.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+
import {SP_CREATION_FORM_NAME} from './SoftwareProductCreationConstants.js';
import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js';
import SoftwareProductCategoriesHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductCategoriesHelper.js';
+import {onboardingMethod as onboardingMethodConst} from '../SoftwareProductConstants.js';
const SoftwareProductPropType = React.PropTypes.shape({
id: React.PropTypes.string,
@@ -46,7 +50,7 @@ class SoftwareProductCreationView extends React.Component {
render() {
let {softwareProductCategories, data = {}, onDataChanged, onCancel, genericFieldInfo, disableVendor} = this.props;
- let {name, description, vendorId, subCategory} = data;
+ let {name, description, vendorId, subCategory, onboardingMethod} = data;
const vendorList = this.getVendorList();
return (
@@ -58,10 +62,11 @@ class SoftwareProductCreationView extends React.Component {
onReset={() => onCancel() }
labledButtons={true}
isValid={this.props.isFormValid}
+ submitButtonText={i18n('Create')}
formReady={this.props.formReady}
onValidateForm={() => this.validate() }>
- <div className='software-product-form-row'>
- <div className='software-product-inline-section'>
+ <GridSection>
+ <GridItem colSpan='2'>
<Input
value={name}
label={i18n('Name')}
@@ -76,6 +81,7 @@ class SoftwareProductCreationView extends React.Component {
label={i18n('Vendor')}
type='select'
value={vendorId}
+ overlayPos='bottom'
isRequired={true}
disabled={disableVendor}
onChange={e => this.onSelectVendor(e)}
@@ -108,8 +114,8 @@ class SoftwareProductCreationView extends React.Component {
</optgroup>)
}
</Input>
- </div>
- <div className='software-product-inline-section'>
+ </GridItem>
+ <GridItem colSpan='2' stretch>
<Input
value={description}
label={i18n('Description')}
@@ -120,9 +126,10 @@ class SoftwareProductCreationView extends React.Component {
errorText={genericFieldInfo.description.errorText}
type='textarea'
className='field-section'
- data-test-id='new-vsp-description' />
- </div>
- </div>
+ data-test-id='new-vsp-description'/>
+ </GridItem>
+ </GridSection>
+ <OnboardingProcedure genericFieldInfo={genericFieldInfo} onboardingMethod={onboardingMethod} onDataChanged={onDataChanged} />
</Form>}
</div>
);
@@ -174,4 +181,33 @@ class SoftwareProductCreationView extends React.Component {
}
}
+const OnboardingProcedure = ({onboardingMethod, onDataChanged, genericFieldInfo}) => {
+ return(
+ <GridSection title={i18n('Onboarding procedure')}>
+ <GridItem colSpan={4}>
+ <Input
+ label={i18n('HEAT file')}
+ overlayPos='top'
+ isValid={genericFieldInfo.onboardingMethod.isValid}
+ checked={onboardingMethod === onboardingMethodConst.HEAT}
+ errorText={genericFieldInfo.onboardingMethod.errorText}
+ onChange={() => onDataChanged({onboardingMethod:'HEAT'},SP_CREATION_FORM_NAME)}
+ type='radio'
+ data-test-id='new-vsp-creation-procedure-heat' />
+ </GridItem>
+ <GridItem colSpan={4}>
+ <Input
+ label={i18n('Manual')}
+ overlayPos='bottom'
+ checked={onboardingMethod === onboardingMethodConst.MANUAL}
+ isValid={genericFieldInfo.onboardingMethod.isValid}
+ errorText={genericFieldInfo.onboardingMethod.errorText}
+ onChange={() => onDataChanged({onboardingMethod:'Manual'},SP_CREATION_FORM_NAME)}
+ type='radio'
+ data-test-id='new-vsp-creation-procedure-manual' />
+ </GridItem>
+ </GridSection>
+ );
+};
+
export default SoftwareProductCreationView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
index da975a7be2..2e0cd340de 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
@@ -60,6 +60,7 @@ export default class SoftwareProductDependenciesView extends React.Component {
<div className='software-product-dependencies-title'>{i18n('Dependencies')}</div>
<SelectActionTable
columns={['Source', 'Relation Type', 'Target']}
+ numOfIcons={2}
isReadOnlyMode={isReadOnlyMode}
onAdd={canAdd ? onAddDependency : undefined}
onAddItem={i18n('Add Rule')}>
@@ -68,7 +69,8 @@ export default class SoftwareProductDependenciesView extends React.Component {
key={dependency.id}
onDelete={() => onDataChanged(softwareProductDependencies.filter(currentDependency => currentDependency.id !== dependency.id))}
overlayMsg={i18n('There is a loop between selections')}
- hasError={dependency.hasCycle}>
+ hasError={dependency.hasCycle}
+ hasErrorIndication>
<SelectActionTableCell
options={this.filterSources({componentsOptions, sourceToTargetMapping, selectedSourceId: dependency.sourceId, selectedTargetId: dependency.targetId})}
selected={dependency.sourceId}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeployment.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeployment.js
new file mode 100644
index 0000000000..98f773b465
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeployment.js
@@ -0,0 +1,52 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import SoftwareProductDeploymentView from './SoftwareProductDeploymentView.jsx';
+import SoftwareProductDeploymentActionHelper from './SoftwareProductDeploymentActionHelper.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+
+export function mapStateToProps({softwareProduct}) {
+ let {softwareProductEditor: {data: currentSoftwareProduct = {}},softwareProductComponents: {componentsList}, softwareProductDeployment: {deploymentFlavors}} = softwareProduct;
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ return {
+ isReadOnlyMode,
+ deploymentFlavors,
+ componentsList
+ };
+}
+
+function mapActionToProps(dispatch, {softwareProductId, version}) {
+ let modalClassName = 'deployment-flavor-editor';
+ return {
+ onAddDeployment: componentsList => SoftwareProductDeploymentActionHelper.openDeploymentFlavorEditor(dispatch, {softwareProductId, modalClassName, componentsList, version}),
+ onDeleteDeployment: ({id, model}) => dispatch({
+ type: modalActionTypes.GLOBAL_MODAL_WARNING,
+ data:{
+ msg: i18n(`Are you sure you want to delete "${model}"?`),
+ onConfirmed: () => SoftwareProductDeploymentActionHelper.deleteDeploymentFlavor(dispatch, {softwareProductId, deploymentFlavorId: id, version})
+ }
+ }),
+ onEditDeployment: (deploymentFlavor, componentsList) =>
+ SoftwareProductDeploymentActionHelper.fetchDeploymentFlavor({softwareProductId, deploymentFlavorId: deploymentFlavor.id, version}).then(response =>
+ SoftwareProductDeploymentActionHelper
+ .openDeploymentFlavorEditor(dispatch, {softwareProductId, componentsList, modalClassName, deploymentFlavor: {...response.data, id: response.id}, isEdit: true, version}),
+ )
+ };
+}
+
+export default connect(mapStateToProps, mapActionToProps, null, {withRef: true})(SoftwareProductDeploymentView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js
new file mode 100644
index 0000000000..bd802b38f4
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js
@@ -0,0 +1,101 @@
+import {actionTypes} from './SoftwareProductDeploymentConstants.js';
+import {actionTypes as GlobalModalActions} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {modalContentMapper} from 'sdc-app/common/modal/ModalContentMapper.js';
+import RestAPIUtil from 'nfvo-utils/RestAPIUtil.js';
+import Configuration from 'sdc-app/config/Configuration.js';
+import pickBy from 'lodash/pickBy';
+
+function baseUrl(vspId, version) {
+ const versionId = version.id;
+ const restPrefix = Configuration.get('restPrefix');
+ return `${restPrefix}/v1.0/vendor-software-products/${vspId}/versions/${versionId}/deployment-flavors`;
+}
+
+function fetchDeploymentFlavorsList({softwareProductId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version)}`);
+}
+
+function fetchDeploymentFlavor({softwareProductId, deploymentFlavorId, version}) {
+ return RestAPIUtil.fetch(`${baseUrl(softwareProductId, version)}/${deploymentFlavorId}`);
+}
+
+function deleteDeploymentFlavor({softwareProductId, deploymentFlavorId, version}) {
+ return RestAPIUtil.destroy(`${baseUrl(softwareProductId, version)}/${deploymentFlavorId}`);
+}
+
+function createDeploymentFlavor({softwareProductId, data, version}) {
+ return RestAPIUtil.post(`${baseUrl(softwareProductId, version)}`, data);
+}
+
+function editDeploymentFlavor({softwareProductId, deploymentFlavorId, data, version}) {
+ return RestAPIUtil.put(`${baseUrl(softwareProductId, version)}/${deploymentFlavorId}`, data);
+}
+
+const SoftwareProductDeploymentActionHelper = {
+ fetchDeploymentFlavorsList(dispatch, {softwareProductId, version}) {
+ return fetchDeploymentFlavorsList({softwareProductId, version}).then(response => {
+ dispatch({
+ type: actionTypes.FETCH_SOFTWARE_PRODUCT_DEPLOYMENT_FLAVORS,
+ deploymentFlavors: response.results
+ });
+ });
+ },
+
+ fetchDeploymentFlavor({softwareProductId, deploymentFlavorId, version}) {
+ return fetchDeploymentFlavor({softwareProductId, deploymentFlavorId, version});
+ },
+
+ deleteDeploymentFlavor(dispatch, {softwareProductId, deploymentFlavorId, version}) {
+ return deleteDeploymentFlavor({softwareProductId, deploymentFlavorId, version}).then(() => {
+ return SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
+ });
+ },
+
+ createDeploymentFlavor(dispatch, {softwareProductId, data, version}) {
+ return createDeploymentFlavor({softwareProductId, data, version}).then(() => {
+ return SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
+ });
+ },
+
+ editDeploymentFlavor(dispatch, {softwareProductId, deploymentFlavorId, data, version}) {
+ let dataWithoutId = pickBy(data, (val, key) => key !== 'id');
+ return editDeploymentFlavor({softwareProductId, deploymentFlavorId, data: dataWithoutId, version}).then(() => {
+ return SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
+ });
+ },
+
+ closeDeploymentFlavorEditor(dispatch) {
+ dispatch({
+ type: actionTypes.deploymentFlavorEditor.SOFTWARE_PRODUCT_DEPLOYMENT_CLEAR_DATA
+ });
+ dispatch({
+ type: GlobalModalActions.GLOBAL_MODAL_CLOSE
+ });
+ },
+
+ openDeploymentFlavorEditor(dispatch, {softwareProductId, modalClassName, deploymentFlavor = {}, componentsList, isEdit = false, version}) {
+ let alteredDeploymentFlavor = {...deploymentFlavor};
+ if (componentsList.length) {
+ alteredDeploymentFlavor = {...alteredDeploymentFlavor, componentComputeAssociations: deploymentFlavor.componentComputeAssociations ?
+ [{...deploymentFlavor.componentComputeAssociations[0], componentId: componentsList[0].id}]
+ :
+ [{componentId: componentsList[0].id, computeFlavorId: null}]
+ };
+ }
+ dispatch({
+ type: actionTypes.deploymentFlavorEditor.SOFTWARE_PRODUCT_DEPLOYMENT_FILL_DATA,
+ deploymentFlavor: alteredDeploymentFlavor
+ });
+ dispatch({
+ type: GlobalModalActions.GLOBAL_MODAL_SHOW,
+ data: {
+ modalComponentName: modalContentMapper.DEPLOYMENT_FLAVOR_EDITOR,
+ modalComponentProps: {softwareProductId, version},
+ modalClassName,
+ title: isEdit ? 'Edit Deployment Flavor' : 'Create a New Deployment Flavor'
+ }
+ });
+ },
+};
+
+export default SoftwareProductDeploymentActionHelper;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentConstants.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentConstants.js
new file mode 100644
index 0000000000..51469b461c
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentConstants.js
@@ -0,0 +1,28 @@
+/*!
+ * 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 keyMirror from 'nfvo-utils/KeyMirror.js';
+
+export const actionTypes = keyMirror({
+ FETCH_SOFTWARE_PRODUCT_DEPLOYMENT_FLAVORS: null,
+
+ deploymentFlavorEditor: {
+ DATA_CHANGED: null,
+ SOFTWARE_PRODUCT_DEPLOYMENT_FILL_DATA: null,
+ SOFTWARE_PRODUCT_DEPLOYMENT_CLEAR_DATA: null
+ }
+});
+
+export const DEPLOYMENT_FLAVORS_FORM_NAME = 'DEPLOYMENT_FLAVORS_FORM_NAME';
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentListReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentListReducer.js
new file mode 100644
index 0000000000..8eb91e8fcb
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentListReducer.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 './SoftwareProductDeploymentConstants.js';
+
+export default (state = [], action) => {
+ switch (action.type) {
+ case actionTypes.FETCH_SOFTWARE_PRODUCT_DEPLOYMENT_FLAVORS:
+ return [...action.deploymentFlavors];
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentView.jsx
new file mode 100644
index 0000000000..81477ecff7
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentView.jsx
@@ -0,0 +1,94 @@
+/*!
+ * 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 React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+
+import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
+import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
+import ListEditorItemViewField from 'nfvo-components/listEditor/ListEditorItemViewField.jsx';
+
+export default class SoftwareProductDeployment extends React.Component {
+ state = {
+ localFilter: ''
+ };
+
+ static propTypes = {
+ onAddDeployment: React.PropTypes.func.isRequired,
+ onDeleteDeployment: React.PropTypes.func.isRequired,
+ onEditDeployment: React.PropTypes.func.isRequired,
+ isReadOnlyMode: React.PropTypes.bool.isRequired
+ };
+
+ render() {
+ return (
+ <div>
+ {this.renderList()}
+ </div>
+ );
+ }
+
+ renderList() {
+ let {onAddDeployment, isReadOnlyMode, componentsList} = this.props;
+ return (
+ <ListEditorView
+ plusButtonTitle={i18n('Add Deployment Flavor')}
+ filterValue={this.state.localFilter}
+ placeholder={i18n('Filter Deployment')}
+ onAdd={() => onAddDeployment(componentsList)}
+ isReadOnlyMode={isReadOnlyMode}
+ title={i18n('Deployment Flavors')}
+ onFilter={value => this.setState({localFilter: value})}
+ twoColumns>
+ {this.filterList().map(deploymentFlavor => this.renderListItem(deploymentFlavor, isReadOnlyMode))}
+ </ListEditorView>
+ );
+ }
+
+ renderListItem(deploymentFlavor, isReadOnlyMode) {
+ let {id, model, description} = deploymentFlavor;
+ let {onEditDeployment, onDeleteDeployment, componentsList} = this.props;
+ return (
+ <ListEditorItemView
+ key={id}
+ className='list-editor-item-view'
+ isReadOnlyMode={isReadOnlyMode}
+ onSelect={() => onEditDeployment(deploymentFlavor, componentsList)}
+ onDelete={() => onDeleteDeployment(deploymentFlavor)}>
+ <ListEditorItemViewField>
+ <div className='model'>{model}</div>
+ </ListEditorItemViewField>
+ <ListEditorItemViewField>
+ <div className='description'>{description}</div>
+ </ListEditorItemViewField>
+ </ListEditorItemView>
+ );
+ }
+
+ filterList() {
+ let {deploymentFlavors} = this.props;
+ let {localFilter} = this.state;
+
+ if (localFilter.trim()) {
+ const filter = new RegExp(escape(localFilter), 'i');
+ return deploymentFlavors.filter(({model = '', description = ''}) => {
+ return escape(model).match(filter) || escape(description).match(filter);
+ });
+ }
+ else {
+ return deploymentFlavors;
+ }
+ }
+}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js
new file mode 100644
index 0000000000..6b924a2816
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js
@@ -0,0 +1,88 @@
+/*!
+ * 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 {connect} from 'react-redux';
+import SoftwareProductDeploymentEditorView from './SoftwareProductDeploymentEditorView.jsx';
+import SoftwareProdcutDeploymentActionHelper from '../SoftwareProductDeploymentActionHelper.js';
+import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+
+import {DEPLOYMENT_FLAVORS_FORM_NAME} from '../SoftwareProductDeploymentConstants.js';
+
+export function mapStateToProps({licenseModel, softwareProduct}) {
+ let {
+ softwareProductEditor: {
+ data: currentSoftwareProduct = {}
+ },
+ softwareProductComponents: {
+ componentsList,
+ computeFlavor: {
+ computesList
+ }
+ },
+ softwareProductDeployment: {
+ deploymentFlavors,
+ deploymentFlavorEditor: {
+ data = {},
+ genericFieldInfo,
+ formReady
+ }
+ }
+ } = softwareProduct;
+
+ let {
+ featureGroup: {
+ featureGroupsList
+ }
+ } = licenseModel;
+
+ let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
+ let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
+ let selectedFeatureGroupsIds = currentSoftwareProduct.licensingData ? currentSoftwareProduct.licensingData.featureGroups || [] : [];
+ let selectedFeatureGroupsList = featureGroupsList
+ .filter(featureGroup => selectedFeatureGroupsIds.includes(featureGroup.id))
+ .map(featureGroup => ({value: featureGroup.id, label: featureGroup.name}));
+
+ let DFNames = {};
+
+ deploymentFlavors.map(deployment => {
+ DFNames[deployment.model] = deployment.id;
+ });
+
+ return {
+ data,
+ selectedFeatureGroupsList,
+ genericFieldInfo,
+ DFNames,
+ isFormValid,
+ formReady,
+ isReadOnlyMode,
+ componentsList,
+ computesList,
+ isEdit: Boolean(data.id)
+ };
+}
+
+function mapActionsToProps(dispatch, {softwareProductId, version}) {
+ return {
+ onDataChanged: (deltaData, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName: DEPLOYMENT_FLAVORS_FORM_NAME, customValidations}),
+ onClose: () => SoftwareProdcutDeploymentActionHelper.closeDeploymentFlavorEditor(dispatch),
+ onCreate: data => SoftwareProdcutDeploymentActionHelper.createDeploymentFlavor(dispatch, {softwareProductId, data, version}),
+ onEdit: data => SoftwareProdcutDeploymentActionHelper.editDeploymentFlavor(dispatch, {softwareProductId, deploymentFlavorId: data.id, data, version}),
+ onValidateForm: () => ValidationHelper.validateForm(dispatch, DEPLOYMENT_FLAVORS_FORM_NAME)
+ };
+}
+
+export default connect(mapStateToProps, mapActionsToProps)(SoftwareProductDeploymentEditorView);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorReducer.js
new file mode 100644
index 0000000000..70836e8ff9
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorReducer.js
@@ -0,0 +1,44 @@
+/*!
+ * 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, DEPLOYMENT_FLAVORS_FORM_NAME} from '../SoftwareProductDeploymentConstants.js';;
+
+export default (state = {}, action) => {
+ switch (action.type) {
+ case actionTypes.deploymentFlavorEditor.SOFTWARE_PRODUCT_DEPLOYMENT_FILL_DATA:
+ return {
+ ...state,
+ data: action.deploymentFlavor,
+ formReady: null,
+ formName: DEPLOYMENT_FLAVORS_FORM_NAME,
+ genericFieldInfo: {
+ 'description' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'maxLength', data: 500}]
+ },
+ 'model' : {
+ isValid: true,
+ errorText: '',
+ validations: [{type: 'required', data: true}]
+ }
+ }
+ };
+ case actionTypes.deploymentFlavorEditor.SOFTWARE_PRODUCT_DEPLOYMENT_CLEAR_DATA:
+ return {};
+ default:
+ return state;
+ }
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorView.jsx
new file mode 100644
index 0000000000..2d621cd2f5
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorView.jsx
@@ -0,0 +1,137 @@
+import React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import SelectInput from 'nfvo-components/input/SelectInput.jsx';
+import SelectActionTable from 'nfvo-components/table/SelectActionTable.jsx';
+import SelectActionTableRow from 'nfvo-components/table/SelectActionTableRow.jsx';
+import SelectActionTableCell from 'nfvo-components/table/SelectActionTableCell.jsx';
+import Validator from 'nfvo-utils/Validator.js';
+
+export default class SoftwareProductDeploymentEditorView extends React.Component {
+ render() {
+ let {data, isEdit, onClose, onDataChanged, isReadOnlyMode, selectedFeatureGroupsList, componentsList, computesList, genericFieldInfo} = this.props;
+ let {model, description, featureGroupId, componentComputeAssociations = []} = data;
+ let featureGroupsExist = selectedFeatureGroupsList.length > 0;
+ return (
+ <div>
+ {genericFieldInfo && <Form
+ ref='validationForm'
+ hasButtons={true}
+ labledButtons={true}
+ isReadOnlyMode={isReadOnlyMode}
+ onSubmit={ () => this.submit() }
+ submitButtonText={isEdit ? i18n('Save') : i18n('Create')}
+ onReset={ () => onClose() }
+ onValidateForm={() => this.validate() }
+ isValid={this.props.isFormValid}
+ formReady={this.props.formReady}
+ className='vsp-deployment-editor'>
+ <GridSection>
+ <GridItem colSpan={1}>
+ <Input
+ onChange={model => onDataChanged({model}, {model: model => this.validateName(model)})}
+ label={i18n('Model')}
+ value={model}
+ data-test-id='deployment-model'
+ isValid={genericFieldInfo.model.isValid}
+ errorText={genericFieldInfo.model.errorText}
+ isRequired={true}
+ type='text'/>
+ </GridItem>
+ <GridItem colSpan={3}>
+ <Input
+ onChange={description => onDataChanged({description})}
+ label={i18n('Description')}
+ value={description}
+ data-test-id='deployment-description'
+ isValid={genericFieldInfo.description.isValid}
+ errorText={genericFieldInfo.description.errorText}
+ type='text'/>
+ </GridItem>
+ </GridSection>
+ <GridSection className={`deployment-feature-groups-section${!featureGroupsExist ? ' no-feature-groups' : ''}`} title={i18n('License Details')}>
+ <GridItem colSpan={1}>
+ <SelectInput
+ data-test-id='deployment-feature-groups'
+ label={i18n('Feature Group')}
+ value={featureGroupId}
+ onChange={featureGroup => onDataChanged({featureGroupId: featureGroup ? featureGroup.value : null})}
+ type='select'
+ clearable={true}
+ disabled={isReadOnlyMode || !featureGroupsExist}
+ className='field-section'
+ options={selectedFeatureGroupsList}/>
+ </GridItem>
+ </GridSection>
+ {!featureGroupsExist && <GridSection className='deployment-feature-group-warning-section'>
+ <GridItem colSpan={3}>
+ <span>{i18n('Please assign Feature Groups in VSP General')}</span>
+ </GridItem>
+ </GridSection>}
+ <GridSection title={i18n('Assign VFCs and Compute Flavors')} className='vfc-table'>
+ <GridItem colSpan={4}>
+ <SelectActionTable
+ columns={['Virtual Function Components', 'Compute Flavors']}
+ numOfIcons={0}>
+ {componentComputeAssociations.map( (association, index) =>
+ <SelectActionTableRow key={association.componentId}>
+ <SelectActionTableCell
+ options={
+ componentsList
+ .map(component => ({value: component.id, label: component.displayName}) )
+ }
+ selected={association.componentId}
+ onChange={componentId => {
+ let newAssociations = [...componentComputeAssociations];
+ newAssociations[index] = {...newAssociations[index], componentId};
+ onDataChanged({componentComputeAssociations: newAssociations});
+ }}
+ disabled={true}/>
+ <SelectActionTableCell
+ options={
+ computesList
+ .filter(compute => compute.componentId === association.componentId)
+ .map(compute => ({value: compute.computeFlavorId, label: compute.name}) )
+ }
+ selected={association.computeFlavorId}
+ onChange={computeFlavorId => {
+ let newAssociations = [...componentComputeAssociations];
+ newAssociations[index] = {...newAssociations[index], computeFlavorId};
+ onDataChanged({componentComputeAssociations: newAssociations});
+ }}
+ disabled={isReadOnlyMode}/>
+ </SelectActionTableRow>
+ )}
+ </SelectActionTable>
+ </GridItem>
+ </GridSection>
+ </Form>}
+ </div>
+ );
+ }
+
+ validateName(value) {
+ const {data: {id = ''}, DFNames} = this.props;
+ const isExists = Validator.isItemNameAlreadyExistsInList({itemId: id, itemName: value, list: DFNames});
+
+ return !isExists ? {isValid: true, errorText: ''} :
+ {isValid: false, errorText: i18n('Deployment flavor by the name \'' + value + '\' already exists. Deployment flavor name must be unique')};
+ }
+
+ submit(){
+ let {isEdit, onCreate, onEdit, onClose, data} = this.props;
+ if (isEdit) {
+ onEdit(data);
+ } else {
+ onCreate(data);
+ }
+ onClose();
+ }
+
+ validate() {
+ this.props.onValidateForm();
+ }
+}
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 e8091bf8d1..8806ffd0bf 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js
@@ -20,6 +20,7 @@ import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js
import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
import LandingPageView from './SoftwareProductLandingPageView.jsx';
import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import {onboardingMethod} from '../SoftwareProductConstants.js';
export const mapStateToProps = ({softwareProduct, licenseModel: {licenseAgreement}}) => {
let {softwareProductEditor: {data:currentSoftwareProduct = {}}, softwareProductComponents, softwareProductCategories = []} = softwareProduct;
@@ -52,7 +53,8 @@ export const mapStateToProps = ({softwareProduct, licenseModel: {licenseAgreemen
fullCategoryDisplayName
},
isReadOnlyMode,
- componentsList
+ componentsList,
+ isManual: currentSoftwareProduct.onboardingMethod === onboardingMethod.MANUAL
};
};
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 5fbf1b74b0..d3738e3ea4 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx
@@ -19,11 +19,10 @@ import Dropzone from 'react-dropzone';
import i18n from 'nfvo-utils/i18n/i18n.js';
-import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
-import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
-import ListEditorItemViewField from 'nfvo-components/listEditor/ListEditorItemViewField.jsx';
-import SVGIcon from 'nfvo-components/icon/SVGIcon.jsx';
+
+import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
+import SoftwareProductComponentsList from '../components/SoftwareProductComponentsList.js';
const SoftwareProductPropType = React.PropTypes.shape({
name: React.PropTypes.string,
@@ -47,7 +46,7 @@ const ComponentPropType = React.PropTypes.shape({
class SoftwareProductLandingPageView extends React.Component {
state = {
- localFilter: '',
+
fileName: '',
dragging: false,
files: []
@@ -67,13 +66,13 @@ class SoftwareProductLandingPageView extends React.Component {
};
render() {
- let {currentSoftwareProduct, isReadOnlyMode, componentsList = []} = this.props;
+ let {currentSoftwareProduct, isReadOnlyMode, isManual, onDetailsSelect, componentsList} = this.props;
return (
<div className='software-product-landing-wrapper'>
<Dropzone
className={classnames('software-product-landing-view', {'active-dragging': this.state.dragging})}
- onDrop={files => this.handleImportSubmit(files, isReadOnlyMode)}
- onDragEnter={() => this.handleOnDragEnter(isReadOnlyMode)}
+ onDrop={files => this.handleImportSubmit(files, isReadOnlyMode, isManual)}
+ onDragEnter={() => this.handleOnDragEnter(isReadOnlyMode, isManual)}
onDragLeave={() => this.setState({dragging:false})}
multiple={false}
disableClick={true}
@@ -84,68 +83,29 @@ class SoftwareProductLandingPageView extends React.Component {
<div className='draggable-wrapper'>
<div className='software-product-landing-view-top'>
<div className='row'>
- {this.renderProductSummary(currentSoftwareProduct)}
- {this.renderProductDetails(currentSoftwareProduct, isReadOnlyMode)}
+ <ProductSummary currentSoftwareProduct={currentSoftwareProduct} onDetailsSelect={onDetailsSelect} />
+ {isManual ?
+ <div className='details-panel'/>
+ : this.renderProductDetails(currentSoftwareProduct, isReadOnlyMode)}
</div>
</div>
</div>
</Dropzone>
- {
- componentsList.length > 0 && this.renderComponents()
- }
+ <SoftwareProductComponentsList
+ isReadOnlyMode={isReadOnlyMode}
+ componentsList={componentsList}
+ isManual={isManual}
+ currentSoftwareProduct={currentSoftwareProduct}/>
</div>
);
}
- handleOnDragEnter(isReadOnlyMode) {
- if (!isReadOnlyMode) {
+ handleOnDragEnter(isReadOnlyMode, isManual) {
+ if (!isReadOnlyMode && !isManual) {
this.setState({dragging: true});
}
}
- renderProductSummary(currentSoftwareProduct) {
- let {name = '', description = '', vendorName = '', fullCategoryDisplayName = '', licenseAgreementName = ''} = currentSoftwareProduct;
- let {onDetailsSelect} = this.props;
- return (
- <div className='details-panel'>
- <div className='software-product-landing-view-heading-title'>{i18n('Software Product Details')}</div>
- <div
- className='software-product-landing-view-top-block clickable'
- onClick={() => onDetailsSelect(currentSoftwareProduct)}>
- <div className='details-container'>
- <div className='single-detail-section title-section'>
- <div className='single-detail-section title-text'>
- {name}
- </div>
- </div>
- <div className='details-section'>
- <div className='multiple-details-section'>
- <div className='detail-col' >
- <div className='title'>{i18n('Vendor')}</div>
- <div className='description'>{vendorName}</div>
- </div>
- <div className='detail-col'>
- <div className='title'>{i18n('Category')}</div>
- <div className='description'>{fullCategoryDisplayName}</div>
- </div>
- <div className='detail-col'>
- <div className='title extra-large'>{i18n('License Agreement')}</div>
- <div className='description'>
- {this.renderLicenseAgreement(licenseAgreementName)}
- </div>
- </div>
- </div>
- <div className='single-detail-section'>
- <div className='title'>{i18n('Description')}</div>
- <div className='description'>{description}</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- );
- }
-
renderProductDetails(currentSoftwareProduct, isReadOnlyMode) {
let {validationData} = currentSoftwareProduct;
let {onAttachmentsSelect} = this.props;
@@ -181,64 +141,8 @@ class SoftwareProductLandingPageView extends React.Component {
);
}
- renderComponents() {
- const {localFilter} = this.state;
-
- return (
- <ListEditorView
- title={i18n('Virtual Function Components')}
- filterValue={localFilter}
- placeholder={i18n('Filter Components')}
- onFilter={value => this.setState({localFilter: value})}
- twoColumns>
- {this.filterList().map(component => this.renderComponentsListItem(component))}
- </ListEditorView>
- );
- }
-
- renderComponentsListItem(component) {
- let {id: componentId, name, displayName, description = ''} = component;
- let {currentSoftwareProduct: {id}, onComponentSelect} = this.props;
- return (
- <ListEditorItemView
- key={name + Math.floor(Math.random() * (100 - 1) + 1).toString()}
- className='list-editor-item-view'
- onSelect={() => onComponentSelect({id, componentId})}>
- <ListEditorItemViewField>
- <div className='name'>{displayName}</div>
- </ListEditorItemViewField>
- <ListEditorItemViewField>
- <div className='description'>{description}</div>
- </ListEditorItemViewField>
- </ListEditorItemView>
- );
- }
-
- renderLicenseAgreement(licenseAgreementName) {
- if (licenseAgreementName !== null && !licenseAgreementName) {
- return (<div className='missing-license'><SVGIcon name='exclamation-triangle-full'/><div className='warning-text'>{i18n('Missing')}</div></div>);
- }
- return (licenseAgreementName);
- }
-
-
- filterList() {
- let {componentsList = []} = this.props;
-
- let {localFilter} = this.state;
- if (localFilter.trim()) {
- const filter = new RegExp(escape(localFilter), 'i');
- return componentsList.filter(({displayName = '', description = ''}) => {
- return escape(displayName).match(filter) || escape(description).match(filter);
- });
- }
- else {
- return componentsList;
- }
- }
-
- handleImportSubmit(files, isReadOnlyMode) {
- if (isReadOnlyMode) {
+ handleImportSubmit(files, isReadOnlyMode, isManual) {
+ if (isReadOnlyMode || isManual) {
return;
}
if (files[0] && files[0].size) {
@@ -280,4 +184,54 @@ class SoftwareProductLandingPageView extends React.Component {
}
}
+const ProductSummary = ({currentSoftwareProduct, onDetailsSelect}) => {
+ let {name = '', description = '', vendorName = '', fullCategoryDisplayName = '', licenseAgreementName = ''} = currentSoftwareProduct;
+ return (
+ <div className='details-panel'>
+ <div className='software-product-landing-view-heading-title'>{i18n('Software Product Details')}</div>
+ <div
+ className='software-product-landing-view-top-block clickable'
+ onClick={() => onDetailsSelect(currentSoftwareProduct)}>
+ <div className='details-container'>
+ <div className='single-detail-section title-section'>
+ <div className='single-detail-section title-text'>
+ {name}
+ </div>
+ </div>
+ <div className='details-section'>
+ <div className='multiple-details-section'>
+ <div className='detail-col' >
+ <div className='title'>{i18n('Vendor')}</div>
+ <div className='description'>{vendorName}</div>
+ </div>
+ <div className='detail-col'>
+ <div className='title'>{i18n('Category')}</div>
+ <div className='description'>{fullCategoryDisplayName}</div>
+ </div>
+ <div className='detail-col'>
+ <div className='title extra-large'>{i18n('License Agreement')}</div>
+ <div className='description'>
+ <LicenseAgreement licenseAgreementName={licenseAgreementName}/>
+ </div>
+ </div>
+ </div>
+ <div className='single-detail-section'>
+ <div className='title'>{i18n('Description')}</div>
+ <div className='description'>{description}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+
+const LicenseAgreement = ({licenseAgreementName}) => {
+ if (!licenseAgreementName) {
+ return (<div className='missing-license'><SVGIcon name='exclamationTriangleFull'/><div className='warning-text'>{i18n('Missing')}</div></div>);
+ }
+ return <div>{licenseAgreementName}</div>;
+};
+
export default SoftwareProductLandingPageView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcesses.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcesses.js
index 66926ce4b3..afd6331324 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcesses.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcesses.js
@@ -42,7 +42,7 @@ const mapActionsToProps = (dispatch, {softwareProductId}) => {
onDeleteProcess: (process, version) => dispatch({
type: modalActionTypes.GLOBAL_MODAL_WARNING,
data:{
- msg: i18n('Are you sure you want to delete "{name}"?', {name: process.name}),
+ msg: i18n(`Are you sure you want to delete "${process.name}"?`),
onConfirmed: ()=> SoftwareProductProcessesActionHelper.deleteProcess(dispatch,
{process, softwareProductId, version})
}
diff --git a/openecomp-ui/src/sdc-app/punch-outs.js b/openecomp-ui/src/sdc-app/punch-outs.js
index 78b64da846..125050bfdb 100644
--- a/openecomp-ui/src/sdc-app/punch-outs.js
+++ b/openecomp-ui/src/sdc-app/punch-outs.js
@@ -13,6 +13,7 @@
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
+import 'sdc-ui/css/style.css';
import '../../resources/scss/onboarding.scss';
import 'dox-sequence-diagram-ui/src/main/webapp/res/sdc-sequencer.scss';
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js
index 58e5db7a7d..6e751dcc53 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js
@@ -14,8 +14,9 @@
* permissions and limitations under the License.
*/
import {Factory} from 'rosie';
+import randomstring from 'randomstring';
-export default new Factory()
+export const ComputeFlavorQData = new Factory()
.attrs({
'vmSizing':{
'numOfCPUs': 3,
@@ -26,6 +27,19 @@ export default new Factory()
}
});
+export const ComputeFlavorBaseData = new Factory()
+ .attrs({
+ name: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ id: randomstring.generate()
+ });
+
+export const ComponentComputeFactory = new Factory()
+ .attrs({
+ computesList: [],
+ computeEditor: {}
+ });
+
export const VSPComponentsComputeDataMapFactory = new Factory()
.attrs({
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js
index a98249bf14..1a356be315 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js
@@ -22,6 +22,8 @@ export const VSPComponentsFactory = new Factory()
.attr('displayName', ['componentName', 'componentType'], (componentName, componentType) => `${componentName}_${componentType}`)
.attr('name', ['displayName'], displayName => `com.ecomp.d2.resource.vfc.nodes.heat.${displayName}`)
.attr('id', () => randomstring.generate())
+ .attr('vfcCode', 'code')
+ .attr('nfcFunction', 'function')
.attr('description', 'description');
export const VSPComponentsGeneralFactory = new Factory()
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
index 6bfa091fd3..550e1a6d6c 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
@@ -15,18 +15,24 @@
*/
import {Factory} from 'rosie';
import randomstring from 'randomstring';
+import {type2Name, fileTypes} from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js';
+
+export const trap = type2Name[fileTypes.SNMP_TRAP];
+export const poll = type2Name[fileTypes.SNMP_POLL];
+export const ves = type2Name[fileTypes.VES_EVENT];
export const VSPComponentsMonitoringRestFactory = new Factory()
- .option('snmpTrapFlag', false)
- .option('snmpPollFlag', false)
- .attr('snmpTrap', ['snmpTrapFlag'], snmpTrapFlag => snmpTrapFlag ? randomstring.generate() : undefined)
- .attr('snmpPoll', ['snmpPollFlag'], snmpPollFlag => snmpPollFlag ? randomstring.generate() : undefined);
+ .option('createTrap', false)
+ .option('createPoll', false)
+ .option('createVes', false)
+
+ .attr(trap, ['createTrap'], (createTrap) => {return (createTrap) ? randomstring.generate() : undefined})
+ .attr(poll, ['createPoll'], (createPoll) => {return (createPoll) ? randomstring.generate() : undefined})
+ .attr(ves, ['createVes'], (createVes) => {return (createVes) ? randomstring.generate() : undefined});
+
export const VSPComponentsMonitoringViewFactory = new Factory()
- .extend(VSPComponentsMonitoringRestFactory)
- .after(monitoring => {
- monitoring['trapFilename'] = monitoring['snmpTrap'];
- monitoring['pollFilename'] = monitoring['snmpPoll'];
- delete monitoring['snmpTrap'];
- delete monitoring['snmpPoll'];
- });
+ .extend(VSPComponentsMonitoringRestFactory);
+// .after(monitoring => {
+
+// });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js
index f08d282131..1226ec8317 100644
--- a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js
@@ -17,6 +17,13 @@ import {Factory} from 'rosie';
import randomstring from 'randomstring';
import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+export const VSPComponentsNicPostFactory = new Factory()
+.attrs({
+ name: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ networkDescription: () => randomstring.generate(),
+ networkType: 'External'
+});
export const VSPComponentsNicFactory = new Factory()
.attrs({
name: () => randomstring.generate(),
@@ -32,7 +39,8 @@ export const VSPComponentsNicWithIdFactory = new Factory()
export const VSPComponentsNetworkFactory = new Factory()
.attrs({
nicEditor: {},
- nicList: []
+ nicList: [],
+ nicCreation: {}
});
export const VSPComponentsNetworkQDataFactory = new Factory()
@@ -57,13 +65,18 @@ export const VSPComponentsNicFactoryGenericFieldInfo = new Factory()
.attrs({
'description' : {
isValid: true,
- errorText: '',
- validations: []
+ errorText: '',
+ validations: []
},
'name' : {
isValid: true,
- errorText: '',
- validations: []
+ errorText: '',
+ validations: [{type: 'required', data : true}]
+ },
+ 'networkDescription' : {
+ isValid: true,
+ errorText: '',
+ validations: []
}
});
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDeploymentFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDeploymentFactories.js
new file mode 100644
index 0000000000..0f81abae61
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDeploymentFactories.js
@@ -0,0 +1,33 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+import randomstring from 'randomstring';
+
+Factory.define('VSPDeploymentBaseFactory')
+ .attrs({
+ name: () => randomstring.generate(),
+ selectedComponent: () => randomstring.generate(),
+ selectedFeatureGroup: () => randomstring.generate(),
+ description: 'string'
+ });
+
+export const VSPDeploymentPostFactory = new Factory()
+ .extend('VSPDeploymentBaseFactory');
+
+export const VSPDeploymentStoreFactory = new Factory()
+ .extend('VSPDeploymentBaseFactory')
+ .extend(IdMixin); \ No newline at end of file
diff --git a/openecomp-ui/test/nfvo-components/activity-log/ActivityLog.test.js b/openecomp-ui/test/activity-log/ActivityLog.test.js
index 2f377a3539..00aff49b26 100644
--- a/openecomp-ui/test/nfvo-components/activity-log/ActivityLog.test.js
+++ b/openecomp-ui/test/activity-log/ActivityLog.test.js
@@ -17,10 +17,10 @@
import React from 'react';
import {mount} from 'enzyme';
import {cloneAndSet} from 'test-utils/Util.js';
-import ActivityLogView, {ActivityListItem} from 'nfvo-components/activity-log/ActivityLogView.jsx';
+import ActivityLogView, {ActivityListItem} from 'sdc-app/common/activity-log/ActivityLogView.jsx';
import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
-import ActivityLogActionHelper from 'nfvo-components/activity-log/ActivityLogActionHelper.js';
-import {mapStateToProps} from 'nfvo-components/activity-log/ActivityLog.js';
+import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
+import {mapStateToProps} from 'sdc-app/common/activity-log/ActivityLog.js';
import {storeCreator} from 'sdc-app/AppStore.js';
import mockRest from 'test-utils/MockRest.js';
import {ActivityLogStoreFactory} from 'test-utils/factories/activity-log/ActivityLogFactories.js';
diff --git a/openecomp-ui/test/nfvo-components/listEditor/listEditor.test.js b/openecomp-ui/test/nfvo-components/listEditor/listEditor.test.js
index c1f823c3fc..029ea31889 100644
--- a/openecomp-ui/test/nfvo-components/listEditor/listEditor.test.js
+++ b/openecomp-ui/test/nfvo-components/listEditor/listEditor.test.js
@@ -71,7 +71,7 @@ describe('listEditor Module Tests', function () {
</ListEditorItemView>
);
expect(itemView).toBeTruthy();
- let sliderIcon = TestUtils.findRenderedDOMComponentWithClass(itemView, 'trash-o');
+ let sliderIcon = TestUtils.findRenderedDOMComponentWithClass(itemView, 'trashO');
TestUtils.Simulate.click(sliderIcon);
});
diff --git a/openecomp-ui/test/nfvo-components/panel/VersionController/versionController.test.js b/openecomp-ui/test/nfvo-components/panel/VersionController/versionController.test.js
index 8f2b7e7e88..7d4d57eb35 100644
--- a/openecomp-ui/test/nfvo-components/panel/VersionController/versionController.test.js
+++ b/openecomp-ui/test/nfvo-components/panel/VersionController/versionController.test.js
@@ -131,8 +131,7 @@ describe('versionController UI Component', () => {
let callVCActionProps = { ...props, version: '1.0', callVCAction: function(){} };
let versionController = mount(<VersionController isCheckedOut={true} status={statusEnum.CHECK_OUT_STATUS} {...callVCActionProps} />);
let elem = versionController.find('[data-test-id="vc-checkout-btn"]');
- let svgIcon = versionController.find('.version-controller-lock-closed');
-
+ let svgIcon = versionController.find('.versionControllerLockClosed');
expect(elem).toBeTruthy();
expect(elem.length).toEqual(1);
expect(svgIcon.hasClass('disabled')).toBe(true);
@@ -142,7 +141,7 @@ describe('versionController UI Component', () => {
let callVCActionProps = { ...props, version: '1.0', callVCAction: function(){} };
let versionController = mount(<VersionController isCheckedOut={false} status={statusEnum.CHECK_IN_STATUS} {...callVCActionProps} />);
let elem = versionController.find('[data-test-id="vc-checkout-btn"]');
- let svgIcon = versionController.find('.version-controller-lock-closed');
+ let svgIcon = versionController.find('.versionControllerLockClosed');
expect(elem).toBeTruthy();
expect(elem.length).toBe(1);
diff --git a/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentComputeEditor.test.js b/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentComputeEditor.test.js
new file mode 100644
index 0000000000..c14246f810
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentComputeEditor.test.js
@@ -0,0 +1,85 @@
+/*!
+ * 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 React from 'react';
+import TestUtils from 'react-addons-test-utils';
+import {mapStateToProps as computeEditorMapStateToProps} from 'sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditor.js';
+import ComputeEditorView from 'sdc-app/onboarding/softwareProduct/components/compute/computeComponents/computeFlavor/ComputeFlavorEditorView.jsx';
+
+import {SoftwareProductFactory} from 'test-utils/factories/softwareProduct/SoftwareProductFactory.js';
+import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js';
+import {ComputeFlavorBaseData, ComputeFlavorQData, VSPComponentsComputeDataMapFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js';
+
+
+describe('Software Product Component Compute-Editor Mapper and View Classes.', () => {
+
+ it('Compute Editor - mapStateToProps mapper exists', () => {
+ expect(computeEditorMapStateToProps).toBeTruthy();
+ });
+
+ it('Compute Editor - mapStateToProps data test', () => {
+ const currentSoftwareProduct = VSPEditorFactory.build();
+
+ var obj = {
+ softwareProduct: SoftwareProductFactory.build({
+ softwareProductEditor: {
+ data: currentSoftwareProduct
+ },
+ softwareProductComponents: {
+ computeFlavor: {
+ computeEditor: {
+ data: {},
+ qdata: {},
+ qgenericFieldInfo: {},
+ dataMap: {},
+ genericFieldInfo: {},
+ formReady: true
+ }
+ }
+ }
+ })
+ };
+
+ var results = computeEditorMapStateToProps(obj);
+ expect(results.data).toBeTruthy();
+ expect(results.qdata).toBeTruthy();
+ expect(results.qgenericFieldInfo).toBeTruthy();
+ expect(results.dataMap).toBeTruthy();
+ expect(results.genericFieldInfo).toBeTruthy();
+ expect(results.isReadOnlyMode).toBeTruthy();
+ expect(results.isFormValid).toBeTruthy();
+ expect(results.formReady).toBeTruthy();
+ });
+
+ it('Compute Editor - View Test', () => {
+
+ const props = {
+ data: ComputeFlavorBaseData.build(),
+ qdata: ComputeFlavorQData.build(),
+ dataMap: VSPComponentsComputeDataMapFactory.build(),
+ isReadOnlyMode: false,
+ onDataChanged: () => {},
+ onQDataChanged: () => {},
+ onSubmit: () => {},
+ onCancel: () => {}
+ };
+
+ var renderer = TestUtils.createRenderer();
+ renderer.render(<ComputeEditorView {...props}/>);
+ var renderedOutput = renderer.getRenderOutput();
+ expect(renderedOutput).toBeTruthy();
+
+ });
+});
diff --git a/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentsComputes.test.js b/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentsComputes.test.js
new file mode 100644
index 0000000000..6d2361b20d
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/components/compute/SoftwareProductComponentsComputes.test.js
@@ -0,0 +1,48 @@
+/*!
+ * 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 deepFreeze from 'deep-freeze';
+import React from 'react';
+import TestUtils from 'react-addons-test-utils';
+import {storeCreator} from 'sdc-app/AppStore.js';
+import ComputeFlavors from 'sdc-app/onboarding/softwareProduct/components/compute/computeComponents/ComputeFlavors.js';
+import {ComputeFlavorBaseData} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js';
+
+const softwareProductId = '123';
+const componentId = '111';
+
+describe('Software Product Component ComputeFlavors - View Classes.', () => {
+
+ it('ComputeFlavors List View Test', () => {
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const ComputeFlavorsList = ComputeFlavorBaseData.buildList(1);
+
+ var renderer = TestUtils.createRenderer();
+ renderer.render(
+ <ComputeFlavors
+ store={store}
+ ComputeFlavorsList={ComputeFlavorsList}
+ softwareProductId={softwareProductId}
+ componentId={componentId}
+ isReadOnlyMode={false}/>
+ );
+ var renderedOutput = renderer.getRenderOutput();
+ expect(renderedOutput).toBeTruthy();
+ });
+});
+
diff --git a/openecomp-ui/test/softwareProduct/components/compute/test.js b/openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperHeatMode.test.js
index 8d2d1fbb2f..4fe9408e34 100644
--- a/openecomp-ui/test/softwareProduct/components/compute/test.js
+++ b/openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperHeatMode.test.js
@@ -21,14 +21,14 @@ import {storeCreator} from 'sdc-app/AppStore.js';
import Configuration from 'sdc-app/config/Configuration.js';
import SoftwareProductComponentsActionHelper from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js';
-import {default as VSPComponentsComputeFactory, VSPComponentsComputeDataMapFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js';
+import {ComputeFlavorQData, VSPComponentsComputeDataMapFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js';
import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
const softwareProductId = '123';
const vspComponentId = '111';
const version = VersionControllerUtilsFactory.build().version;
-describe('Software Product Components Compute Module Tests', function () {
+describe('Software Product Components Compute Module Tests - HEAT mode', function () {
let restPrefix = '';
@@ -41,7 +41,7 @@ describe('Software Product Components Compute Module Tests', function () {
const store = storeCreator();
deepFreeze(store.getState());
- const compute = VSPComponentsComputeFactory.build();
+ const compute = ComputeFlavorQData.build();
const dataMap = VSPComponentsComputeDataMapFactory.build();
const softwareProductComponentCompute = {
@@ -75,7 +75,7 @@ describe('Software Product Components Compute Module Tests', function () {
const store = storeCreator();
deepFreeze(store.getState());
- const compute = VSPComponentsComputeFactory.build();
+ const compute = ComputeFlavorQData.build();
const softwareProductComponentQuestionnaire = {
data: null,
diff --git a/openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperManualMode.test.js b/openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperManualMode.test.js
new file mode 100644
index 0000000000..ca3d12f3e9
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/components/compute/VSPComponentComputeActionHelperManualMode.test.js
@@ -0,0 +1,198 @@
+/*!
+ * 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 deepFreeze from 'deep-freeze';
+import mockRest from 'test-utils/MockRest.js';
+import {cloneAndSet} from 'test-utils/Util.js';
+import {storeCreator} from 'sdc-app/AppStore.js';
+import Configuration from 'sdc-app/config/Configuration.js';
+import ComputeFlavorActionHelper from 'sdc-app/onboarding/softwareProduct/components/compute/ComputeFlavorActionHelper.js';
+import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js';
+
+import {ComputeFlavorQData, ComputeFlavorBaseData, ComponentComputeFactory, VSPComponentsComputeDataMapFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js';
+
+const softwareProductId = '123';
+const vspComponentId = '111';
+const computeId = '111';
+const version = VSPEditorFactory.build().version;
+
+
+describe('Software Product Components Compute Module Tests - Manual mode', function () {
+
+ let restPrefix = '';
+
+ beforeAll(function() {
+ restPrefix = Configuration.get('restPrefix');
+ deepFreeze(restPrefix);
+ });
+
+
+ it('Close Compute Flavor editor', () => {
+
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const compute = ComponentComputeFactory.build();
+ deepFreeze(compute);
+
+ const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.computeFlavor', compute);
+
+ ComputeFlavorActionHelper.closeComputeEditor(store.dispatch);
+ expect(store.getState()).toEqual(expectedStore);
+ });
+
+ it('Get Computes List', () => {
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const computesList = ComputeFlavorBaseData.buildList(2);
+ deepFreeze(computesList);
+
+ const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.computeFlavor.computesList', computesList);
+
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {results: computesList};
+ });
+
+ return ComputeFlavorActionHelper.fetchComputesList(store.dispatch, {softwareProductId, componentId: vspComponentId, version}).then(() => {
+ expect(store.getState()).toEqual(expectedStore);
+ });
+ });
+
+ it('Load Compute data & Questionnaire', () => {
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const computeData = {
+ ...ComputeFlavorBaseData.build(),
+ id: computeId
+ };
+ deepFreeze(computeData);
+ const qdata = ComputeFlavorQData.build();
+ const dataMap = VSPComponentsComputeDataMapFactory.build();
+
+ const softwareProductComponentCompute = {
+ data: JSON.stringify(qdata),
+ schema: JSON.stringify(qdata)
+ };
+ deepFreeze(softwareProductComponentCompute);
+
+
+ const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.computeFlavor.computeEditor', {
+ data: computeData,
+ qdata,
+ dataMap,
+ qgenericFieldInfo: {},
+ genericFieldInfo: {},
+ formReady: true
+ });
+
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors/${computeId}`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {data: computeData};
+ });
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors/${computeId}/questionnaire`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return softwareProductComponentCompute;
+ });
+
+ return ComputeFlavorActionHelper.loadComputeData({softwareProductId, componentId: vspComponentId, version, computeId}).then(() => {
+ ComputeFlavorActionHelper.loadComputeQuestionnaire(store.dispatch, {softwareProductId, componentId: vspComponentId, computeId, version}).then(() =>
+ expect(store.getState()).toEqual(expectedStore));
+ });
+ });
+
+ it('Save Compute Flavor data and questionnaire', () => {
+
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const qdata = ComputeFlavorQData.build();
+ const data = ComputeFlavorBaseData.build();
+
+ const compute = {...data, id: computeId};
+
+ const computeObj = {
+ computeEditor: {},
+ computesList: [
+ compute
+ ]
+ };
+
+ const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.computeFlavor', computeObj);
+ deepFreeze(expectedStore);
+
+ mockRest.addHandler('put', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors/${computeId}/questionnaire`);
+ expect(data).toEqual(qdata);
+ expect(options).toEqual(undefined);
+ return {returnCode: 'OK'};
+ });
+
+ mockRest.addHandler('put', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors/${computeId}`);
+ expect(data).toEqual(data);
+ expect(options).toEqual(undefined);
+ return {returnCode: 'OK'};
+ });
+
+ return ComputeFlavorActionHelper.saveComputeDataAndQuestionnaire(store.dispatch, {softwareProductId, componentId: vspComponentId, qdata, data: compute, version}).then(() => {
+ expect(store.getState()).toEqual(expectedStore);
+ });
+ });
+
+ it('Delete Compute Flavor', () => {
+ const compute = ComponentComputeFactory.build();
+ const computesList = [compute];
+ deepFreeze(computesList);
+
+ const store = storeCreator({
+ softwareProduct: {
+ softwareProductComponents: {
+ computeFlavor: {
+ computesList: computesList
+ }
+ }
+ }
+ });
+ deepFreeze(store.getState());
+
+ const computeId = compute.id;
+
+ const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.computeFlavor.computesList', []);
+
+ mockRest.addHandler('destroy', ({data, options, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${vspComponentId}/compute-flavors/${computeId}`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {
+ results: {
+ returnCode: 'OK'
+ }
+ };
+ });
+
+ return ComputeFlavorActionHelper.deleteCompute(store.dispatch, {softwareProductId, componentId: vspComponentId, computeId, version}).then(() => {
+ expect(store.getState()).toEqual(expectedStore);
+ });
+ });
+});
diff --git a/openecomp-ui/test/softwareProduct/components/general/ComponentGeneralActionHelper.test.js b/openecomp-ui/test/softwareProduct/components/general/ComponentGeneralActionHelper.test.js
new file mode 100644
index 0000000000..cef4b3a16e
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/components/general/ComponentGeneralActionHelper.test.js
@@ -0,0 +1,48 @@
+/*!
+ * 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 deepFreeze from 'deep-freeze';
+import mockRest from 'test-utils/MockRest.js';
+import {storeCreator} from 'sdc-app/AppStore.js';
+import SoftwareProductComponentsActionHelper from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js';
+import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
+import {VSPComponentsFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js';
+
+const softwareProductId = '123';
+const version = VersionControllerUtilsFactory.build().version;
+
+describe('Software Product Components Action Helper Tests', function () {
+
+ it('Load components list', () => {
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const expectedComponentData = VSPComponentsFactory.build();
+ deepFreeze(expectedComponentData);
+
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return ({results: [expectedComponentData]});
+ });
+
+ return SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(store.dispatch, {softwareProductId, version}).then(() => {
+ expect(store.getState().softwareProduct.softwareProductComponents.componentsList).toEqual([expectedComponentData]);
+ });
+
+ });
+});
diff --git a/openecomp-ui/test/softwareProduct/components/general/SoftwareProductComponentsGeneral.test.js b/openecomp-ui/test/softwareProduct/components/general/SoftwareProductComponentsGeneral.test.js
index 4f6512ad15..edc7fca6a1 100644
--- a/openecomp-ui/test/softwareProduct/components/general/SoftwareProductComponentsGeneral.test.js
+++ b/openecomp-ui/test/softwareProduct/components/general/SoftwareProductComponentsGeneral.test.js
@@ -70,8 +70,7 @@ describe('SoftwareProductComponentsGeneral Mapper and View Classes', () => {
const versionControllerData = VSPComponentsVersionControllerFactory.build();
const componentData = {
- name: '',
- description: ''
+ name: ''
};
var renderer = TestUtils.createRenderer();
diff --git a/openecomp-ui/test/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.test.js b/openecomp-ui/test/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.test.js
index 24658f1b30..423a7b39f6 100644
--- a/openecomp-ui/test/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.test.js
+++ b/openecomp-ui/test/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.test.js
@@ -19,11 +19,12 @@ import TestUtils from 'react-addons-test-utils';
import {mapStateToProps} from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js';
import SoftwareProductComponentsMonitoringView from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx';
-import {VSPComponentsMonitoringViewFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js';
+import {VSPComponentsMonitoringViewFactory, trap, poll, ves} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js';
import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
const version = VersionControllerUtilsFactory.build();
+
describe('SoftwareProductComponentsMonitoring Module Tests', function () {
it('should mapper exist', () => {
@@ -33,24 +34,36 @@ describe('SoftwareProductComponentsMonitoring Module Tests', function () {
it('should return empty file names', () => {
let softwareProduct = {softwareProductEditor: {data: {...version}}, softwareProductComponents: {monitoring: {}}};
var results = mapStateToProps({softwareProduct});
- expect(results.trapFilename).toEqual(undefined);
- expect(results.pollFilename).toEqual(undefined);
+ expect(results.filenames[trap]).toEqual(undefined);
+ expect(results.filenames[poll]).toEqual(undefined);
+ expect(results.filenames[ves]).toEqual(undefined);
});
it('should return trap file name', () => {
- const monitoring = VSPComponentsMonitoringViewFactory.build({}, {snmpTrapFlag: true});
+ const monitoring = VSPComponentsMonitoringViewFactory.build({}, {createTrap: true});
+ let softwareProduct = {softwareProductEditor: {data: {...version}}, softwareProductComponents: {monitoring}};
+ var results = mapStateToProps({softwareProduct});
+ expect(results.filenames[trap]).toEqual(monitoring[trap]);
+ expect(results.filenames[poll]).toEqual(undefined);
+ expect(results.filenames[ves]).toEqual(undefined);
+ });
+
+ it('should return ves events file name', () => {
+ const monitoring = VSPComponentsMonitoringViewFactory.build({}, {createVes: true});
let softwareProduct = {softwareProductEditor: {data: {...version}}, softwareProductComponents: {monitoring}};
var results = mapStateToProps({softwareProduct});
- expect(results.trapFilename).toEqual(monitoring.trapFilename);
- expect(results.pollFilename).toEqual(undefined);
+ expect(results.filenames[ves]).toEqual(monitoring[ves]);
+ expect(results.filenames[poll]).toEqual(undefined);
+ expect(results.filenames[trap]).toEqual(undefined);
});
it('should return poll file names', () => {
- const monitoring = VSPComponentsMonitoringViewFactory.build({}, {snmpPollFlag: true});
+ const monitoring = VSPComponentsMonitoringViewFactory.build({}, {createPoll: true});
let softwareProduct = {softwareProductEditor: {data: {...version}}, softwareProductComponents: {monitoring}};
var results = mapStateToProps({softwareProduct});
- expect(results.trapFilename).toEqual(undefined);
- expect(results.pollFilename).toEqual(monitoring.pollFilename);
+ expect(results.filenames[poll]).toEqual(monitoring[poll]);
+ expect(results.filenames[trap]).toEqual(undefined);
+ expect(results.filenames[ves]).toEqual(undefined);
let renderer = TestUtils.createRenderer();
renderer.render(<SoftwareProductComponentsMonitoringView {...results} />);
@@ -58,12 +71,13 @@ describe('SoftwareProductComponentsMonitoring Module Tests', function () {
expect(renderedOutput).toBeTruthy();
});
- it('should return both file names', () => {
- const monitoring = VSPComponentsMonitoringViewFactory.build({}, {snmpTrapFlag: true, snmpPollFlag: true});
+ it('should return all file names', () => {
+ const monitoring = VSPComponentsMonitoringViewFactory.build({}, {createTrap: true, createVes: true, createPoll: true});
let softwareProduct = {softwareProductEditor: {data: {...version}}, softwareProductComponents: {monitoring}};
var results = mapStateToProps({softwareProduct});
- expect(results.trapFilename).toEqual(monitoring.trapFilename);
- expect(results.pollFilename).toEqual(monitoring.pollFilename);
+ expect(results.filenames[poll]).toEqual(monitoring[poll]);
+ expect(results.filenames[trap]).toEqual(monitoring[trap]);
+ expect(results.filenames[ves]).toEqual(monitoring[ves]);
let renderer = TestUtils.createRenderer();
renderer.render(<SoftwareProductComponentsMonitoringView {...results} />);
diff --git a/openecomp-ui/test/softwareProduct/components/monitoring/test.js b/openecomp-ui/test/softwareProduct/components/monitoring/test.js
index dd0f850a89..8fafcdb968 100644
--- a/openecomp-ui/test/softwareProduct/components/monitoring/test.js
+++ b/openecomp-ui/test/softwareProduct/components/monitoring/test.js
@@ -18,8 +18,9 @@ import mockRest from 'test-utils/MockRest.js';
import {storeCreator} from 'sdc-app/AppStore.js';
import SoftwareProductComponentsMonitoringConstants from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js';
import SoftwareProductComponentsMonitoringActionHelper from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
+import {fileTypes} from 'sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringConstants.js';
-import {VSPComponentsMonitoringRestFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js';
+import {VSPComponentsMonitoringRestFactory, trap, poll, ves} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js';
import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
const softwareProductId = '123';
@@ -40,171 +41,103 @@ describe('Software Product Components Monitoring Module Tests', function () {
let emptyResult = VSPComponentsMonitoringRestFactory.build();
mockRest.addHandler('fetch', ({ baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/uploads`);
return emptyResult;
});
- SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
- softwareProductId,
- version,
- componentId
- });
- setTimeout(()=> {
+ return SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {softwareProductId, version, componentId}).then(() => {
var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(emptyResult.snmpPoll);
- expect(monitoring.trapFilename).toEqual(emptyResult.snmpTrap);
+ expect(monitoring[trap]).toEqual(emptyResult[trap]);
+ expect(monitoring[poll]).toEqual(emptyResult[poll]);
+ expect(monitoring[ves]).toEqual(emptyResult[ves]);
done();
- }, 0);
+ });
+
});
it('Fetch for existing files - only snmp trap file exists', done => {
- let response = VSPComponentsMonitoringRestFactory.build({}, {snmpTrapFlag: true});
+ let response = VSPComponentsMonitoringRestFactory.build({}, {createTrap: true});
mockRest.addHandler('fetch', ({ baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/uploads`);
return response;
});
- SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
- softwareProductId,
- version,
- componentId
- });
- setTimeout(()=> {
- var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(response.snmpPoll);
- expect(monitoring.trapFilename).toEqual(response.snmpTrap);
- done();
- }, 0);
- });
-
- it('Fetch for existing files - only snmp poll file exists', done => {
- let response = VSPComponentsMonitoringRestFactory.build({}, {snmpPollFlag: true});
+ return SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {softwareProductId, version, componentId}).then(() => {
- mockRest.addHandler('fetch', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
- return response;
- });
-
- SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
- softwareProductId,
- version,
- componentId
- });
- setTimeout(()=> {
var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(response.snmpPoll);
- expect(monitoring.trapFilename).toEqual(response.snmpTrap);
+ expect(monitoring[poll]).toEqual(undefined);
+ expect(monitoring[trap]).toEqual(response[trap]);
+ expect(monitoring[ves]).toEqual(undefined);
done();
- }, 0);
+ });
});
- it('Fetch for existing files - both files exist', done => {
- let response = VSPComponentsMonitoringRestFactory.build({}, {snmpTrapFlag: true, snmpPollFlag: true});
+
+ it('Fetch for existing files - all files exist', done => {
+ let response = VSPComponentsMonitoringRestFactory.build({}, {createSnmp: true, createPoll: true, createVes: true});
mockRest.addHandler('fetch', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/uploads`);
return response;
});
- SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {
- softwareProductId,
- version,
- componentId
- });
- setTimeout(()=> {
+ return SoftwareProductComponentsMonitoringActionHelper.fetchExistingFiles(store.dispatch, {softwareProductId, version, componentId}).then(() => {
+
var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(response.snmpPoll);
- expect(monitoring.trapFilename).toEqual(response.snmpTrap);
+ expect(monitoring[trap]).toEqual(response[trap]);
+ expect(monitoring[poll]).toEqual(response[poll]);
+ expect(monitoring[ves]).toEqual(response[ves]);
done();
- }, 0);
+ });
});
- it('Upload snmp trap file', done => {
+ it('Upload file', done => {
mockRest.addHandler('post', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp-trap/upload`);
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/uploads/types/${fileTypes.SNMP_TRAP}`);
return {};
});
var debug = {hello: 'world'};
let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
let formData = new FormData();
formData.append('upload', file);
- SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
+ return SoftwareProductComponentsMonitoringActionHelper.uploadFile(store.dispatch, {
softwareProductId,
version,
componentId,
formData,
fileSize: file.size,
- type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
- });
- setTimeout(()=> {
+ type: fileTypes.SNMP_TRAP
+ }).then(() => {
var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(undefined);
- expect(monitoring.trapFilename).toEqual('blob');
+ expect(monitoring[poll]).toEqual(undefined);
+ expect(monitoring[ves]).toEqual(undefined);
+ expect(monitoring[trap]).toEqual('blob');
done();
- }, 0);
- });
- it('Upload snmp poll file', done => {
- mockRest.addHandler('post', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp/upload`);
- return {};
- });
- var debug = {hello: 'world'};
- let file = new Blob([JSON.stringify(debug, null, 2)], {type: 'application/json'});;
- let formData = new FormData();
- formData.append('upload', file);
- SoftwareProductComponentsMonitoringActionHelper.uploadSnmpFile(store.dispatch, {
- softwareProductId,
- version,
- componentId,
- formData,
- fileSize: file.size,
- type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
});
- setTimeout(()=> {
- var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual('blob');
- expect(monitoring.trapFilename).toEqual(undefined);
- done();
- }, 0);
});
it('Delete snmp trap file', done => {
mockRest.addHandler('destroy', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp-trap`);
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/uploads/types/${fileTypes.SNMP_TRAP}`);
return {};
});
- SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
- softwareProductId,
- version,
- componentId,
- type: SoftwareProductComponentsMonitoringConstants.SNMP_TRAP
- });
- setTimeout(()=> {
- var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.trapFilename).toEqual(undefined);
- done();
- }, 0);
- });
- it('Delete snmp poll file', done => {
- mockRest.addHandler('destroy', ({baseUrl}) => {
- expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/monitors/snmp`);
- return {};
- });
- SoftwareProductComponentsMonitoringActionHelper.deleteSnmpFile(store.dispatch, {
+
+ return SoftwareProductComponentsMonitoringActionHelper.deleteFile(store.dispatch, {
softwareProductId,
version,
componentId,
- type: SoftwareProductComponentsMonitoringConstants.SNMP_POLL
- });
- setTimeout(()=> {
+ type: fileTypes.SNMP_TRAP
+ }).then((dispatch) => {
var {softwareProduct: {softwareProductComponents: {monitoring}}} = store.getState();
- expect(monitoring.pollFilename).toEqual(undefined);
+ expect(monitoring[trap]).toEqual(undefined);
done();
- }, 0);
+ });
});
+
+
});
diff --git a/openecomp-ui/test/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.test.js b/openecomp-ui/test/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.test.js
index f5a10e23c9..b6050265a6 100644
--- a/openecomp-ui/test/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.test.js
+++ b/openecomp-ui/test/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.test.js
@@ -19,7 +19,7 @@ import {cloneAndSet} from 'test-utils/Util.js';
import {storeCreator} from 'sdc-app/AppStore.js';
import SoftwareProductComponentsNetworkActionHelper from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
-import {VSPComponentsNicFactory, VSPComponentsNetworkFactory, VSPComponentsNetworkQDataFactory, VSPComponentsNetworkDataMapFactory, VSPComponentsNicFactoryGenericFieldInfo} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js';
+import {VSPComponentsNicPostFactory, VSPComponentsNicFactory, VSPComponentsNetworkFactory, VSPComponentsNetworkQDataFactory, VSPComponentsNetworkDataMapFactory, VSPComponentsNicFactoryGenericFieldInfo} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js';
import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
import VSPQSchemaFactory from 'test-utils/factories/softwareProduct/SoftwareProductQSchemaFactory.js';
import {forms} from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
@@ -55,7 +55,60 @@ describe('Software Product Components Network Action Helper Tests', function ()
});
});
-
+ it('Add NIC', () => {
+ const store = storeCreator();
+ deepFreeze(store.getState());
+
+ const NICPostRequest = VSPComponentsNicPostFactory.build();
+
+ const expectedNIC = VSPComponentsNicFactory.build({...NICPostRequest, id: nicId});
+
+ mockRest.addHandler('post', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/nics`);
+ expect(data).toEqual(NICPostRequest);
+ expect(options).toEqual(undefined);
+ return {
+ nicId
+ };
+ });
+
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/nics`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {results: [expectedNIC]};
+ });
+
+ mockRest.addHandler('destroy', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/nics/${nicId}`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {};
+ });
+
+ mockRest.addHandler('fetch', ({options, data, baseUrl}) => {
+ expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/components/${componentId}/nics`);
+ expect(data).toEqual(undefined);
+ expect(options).toEqual(undefined);
+ return {results: []};
+ });
+
+ const network = VSPComponentsNetworkFactory.build({
+ nicList: [expectedNIC]
+ });
+
+ const networkAfterDelete = VSPComponentsNetworkFactory.build();
+
+ let expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.network', network);
+
+ return SoftwareProductComponentsNetworkActionHelper.createNIC(store.dispatch, {nic: NICPostRequest, softwareProductId, componentId, version}).then(() => {
+ expect(store.getState()).toEqual(expectedStore);
+ return SoftwareProductComponentsNetworkActionHelper.deleteNIC(store.dispatch, {softwareProductId, componentId, nicId, version});
+ }).then(() => {
+ let expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductComponents.network', networkAfterDelete);
+ expect(store.getState()).toEqual(expectedStore);
+ });
+ });
it('open NICE editor', () => {
const store = storeCreator();
@@ -83,7 +136,7 @@ describe('Software Product Components Network Action Helper Tests', function ()
SoftwareProductComponentsNetworkActionHelper.openNICEditor(store.dispatch, {nic, data});
- expect(store.getState()).toEqual(expectedStore);
+ expect(store.getState().softwareProduct.softwareProductComponents.network).toEqual(expectedStore.softwareProduct.softwareProductComponents.network);
});
it('close NICE editor', () => {
@@ -102,7 +155,7 @@ describe('Software Product Components Network Action Helper Tests', function ()
});
it('Load NIC data', () => {
-
+ mockRest.resetQueue();
const expectedData = VSPComponentsNicFactory.build();
deepFreeze(expectedData);
@@ -121,7 +174,7 @@ describe('Software Product Components Network Action Helper Tests', function ()
it('load NIC Questionnaire', () => {
-
+ mockRest.resetQueue();
const store = storeCreator();
deepFreeze(store.getState());
@@ -171,6 +224,7 @@ describe('Software Product Components Network Action Helper Tests', function ()
const network = {
nicEditor: {},
+ nicCreation: {},
nicList: [
expectedData
]
diff --git a/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentEditor.test.js b/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentEditor.test.js
new file mode 100644
index 0000000000..4277f28ee8
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentEditor.test.js
@@ -0,0 +1,81 @@
+/*!
+ * 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 React from 'react';
+import TestUtils from 'react-addons-test-utils';
+import { mapStateToProps } from 'sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js';
+import SoftwareProductDeploymentEditorView from 'sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditorView.jsx';
+import { VSPComponentsFactory } from 'test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js';
+import { VSPEditorFactoryWithLicensingData } from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js';
+import { FeatureGroupStoreFactory } from 'test-utils/factories/licenseModel/FeatureGroupFactories.js';
+
+describe('Software Product Deployment Editor Module Tests', function () {
+
+ it('should mapper exist', () => {
+ expect(mapStateToProps).toBeTruthy();
+ });
+
+ it('should return empty data', () => {
+
+ const currentSoftwareProduct = VSPEditorFactoryWithLicensingData.build();
+ const componentsList = VSPComponentsFactory.buildList(1);
+ const featureGroupsList = FeatureGroupStoreFactory.buildList(2);
+
+ var state = {
+ softwareProduct: {
+ softwareProductEditor: {
+ data: currentSoftwareProduct
+ },
+ softwareProductDeployment:
+ {
+ deploymentFlavors: [],
+ deploymentFlavorEditor: {data: {}}
+ },
+ softwareProductComponents: {
+ componentsList,
+ computeFlavor: {
+ computesList: []
+ }
+ }
+ },
+ licenseModel: {
+ featureGroup: {
+ featureGroupsList
+ }
+ }
+ };
+
+ var results = mapStateToProps(state);
+ expect(results.data).toEqual({});
+ });
+
+ it('jsx view test', () => {
+ const componentsList = VSPComponentsFactory.buildList(1);
+ var renderer = TestUtils.createRenderer();
+ renderer.render(
+ <SoftwareProductDeploymentEditorView
+ isReadOnlyMode={true}
+ selectedFeatureGroupsList={[]}
+ componentsList={componentsList}
+ data={{}}
+ onDataChanged={() => {}}
+ onSubmit={() => {}}
+ onClose={() => {}}/>
+ );
+ var renderedOutput = renderer.getRenderOutput();
+ expect(renderedOutput).toBeTruthy();
+ });
+
+});
diff --git a/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentView.test.js b/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentView.test.js
new file mode 100644
index 0000000000..9700efe98a
--- /dev/null
+++ b/openecomp-ui/test/softwareProduct/deployment/SoftwareProductDeploymentView.test.js
@@ -0,0 +1,77 @@
+/*!
+ * 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 React from 'react';
+import TestUtils from 'react-addons-test-utils';
+import {mapStateToProps} from 'sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeployment.js';
+import SoftwareProductDeploymentView from 'sdc-app/onboarding/softwareProduct/deployment/SoftwareProductDeploymentView.jsx';
+
+import {VSPDeploymentStoreFactory} from 'test-utils/factories/softwareProduct/SoftwareProductDeploymentFactories.js';
+import {VSPComponentsFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js';
+import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js';
+
+describe('SoftwareProductDeployment Mapper and View Classes', () => {
+ it ('mapStateToProps mapper exists', () => {
+ expect(mapStateToProps).toBeTruthy();
+ });
+
+ it ('mapStateToProps data test', () => {
+
+ const currentSoftwareProduct = VSPEditorFactory.build();
+
+ const deploymentFlavors = VSPDeploymentStoreFactory.buildList(2);
+
+ const componentsList = VSPComponentsFactory.buildList(1);
+
+ var state = {
+ softwareProduct: {
+ softwareProductEditor: {
+ data: currentSoftwareProduct
+ },
+ softwareProductDeployment:
+ {
+ deploymentFlavors,
+ deploymentFlavorsEditor: {data: {}}
+ },
+ softwareProductComponents: {
+ componentsList
+ }
+ }
+ };
+ var results = mapStateToProps(state);
+ expect(results.deploymentFlavors).toBeTruthy();
+ });
+
+ it ('view simple test', () => {
+
+ const currentSoftwareProduct = VSPEditorFactory.build();
+
+ const deploymentFlavors = VSPDeploymentStoreFactory.buildList(2);
+
+ var renderer = TestUtils.createRenderer();
+ renderer.render(
+ <SoftwareProductDeploymentView
+ deploymentFlavors={deploymentFlavors}
+ currentSoftwareProduct={currentSoftwareProduct}
+ onAddDeployment={() => {}}
+ onEditDeployment={() => {}}
+ onDeleteDeployment={() => {}}
+ isReadOnlyMode={false} />
+ );
+ var renderedOutput = renderer.getRenderOutput();
+ expect(renderedOutput).toBeTruthy();
+
+ });
+});
diff --git a/openecomp-ui/test/softwareProduct/landingPage/landingPage.test.js b/openecomp-ui/test/softwareProduct/landingPage/landingPage.test.js
index f06ad61e4f..4da0ec98d4 100644
--- a/openecomp-ui/test/softwareProduct/landingPage/landingPage.test.js
+++ b/openecomp-ui/test/softwareProduct/landingPage/landingPage.test.js
@@ -28,6 +28,8 @@ import {default as VspQdataFactory} from 'test-utils/factories/softwareProduct/
import {VSPComponentsFactory} from 'test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js';
import {FinalizedLicenseModelFactory} from 'test-utils/factories/licenseModel/LicenseModelFactories.js';
+import { Provider } from 'react-redux';
+import {storeCreator} from 'sdc-app/AppStore.js';
import {mapStateToProps} from 'sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js';
import SoftwareProductLandingPageView from 'sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx';
@@ -95,8 +97,9 @@ describe('Software Product Landing Page: ', function () {
componentsList: VSPComponentsFactory.buildList(2)
};
- let vspLandingView = TestUtils.renderIntoDocument(<SoftwareProductLandingPageView
- {...params}/>);
+ const store = storeCreator();
+ let vspLandingView = TestUtils.renderIntoDocument(<Provider store={store}><SoftwareProductLandingPageView
+ {...params}/></Provider>);
expect(vspLandingView).toBeTruthy();
});
@@ -108,11 +111,16 @@ describe('Software Product Landing Page: ', function () {
componentsList: VSPComponentsFactory.buildList(2)
};
- let vspLandingView = TestUtils.renderIntoDocument(<SoftwareProductLandingPageView
- {...params}/>);
+ const store = storeCreator();
+ let vspLandingView = TestUtils.renderIntoDocument(<Provider store={store}><SoftwareProductLandingPageView
+ {...params}/></Provider>);
+ let vspLandingViewWrapper = TestUtils.findRenderedComponentWithType(
+ vspLandingView,
+ SoftwareProductLandingPageView
+ );
expect(vspLandingView).toBeTruthy();
- vspLandingView.handleOnDragEnter(false);
- expect(vspLandingView.state.dragging).toEqual(true);
+ vspLandingViewWrapper.handleOnDragEnter(false);
+ expect(vspLandingViewWrapper.state.dragging).toEqual(true);
});
@@ -126,10 +134,7 @@ describe('Software Product Landing Page: ', function () {
onUpload: dummyFunc,
onInvalidFileSizeUpload: dummyFunc
};
-
- let vspLandingView = TestUtils.renderIntoDocument(<SoftwareProductLandingPageView
- {...params}/>);
- expect(vspLandingView).toBeTruthy();
+
const files = [
{
name: 'aaa',
@@ -137,16 +142,24 @@ describe('Software Product Landing Page: ', function () {
}
];
- vspLandingView.handleImportSubmit(files, false);
- expect(vspLandingView.state.dragging).toEqual(false);
- expect(vspLandingView.state.fileName).toEqual(files[0].name);
+ const store = storeCreator();
+
+ let vspLandingView = TestUtils.renderIntoDocument(<Provider store={store}><SoftwareProductLandingPageView {...params}/></Provider>);
+ let vspLandingViewWrapper = TestUtils.findRenderedComponentWithType(
+ vspLandingView,
+ SoftwareProductLandingPageView
+ );
+ expect(vspLandingView).toBeTruthy();
+ vspLandingViewWrapper.handleImportSubmit(files, false);
+ expect(vspLandingViewWrapper.state.dragging).toEqual(false);
+ expect(vspLandingViewWrapper.state.fileName).toEqual(files[0].name);
const files1 = [
{
name: 'bbb',
size: 0
}
];
- vspLandingView.handleImportSubmit(files1, false);
+ vspLandingViewWrapper.handleImportSubmit(files1, false);
});
it('vsp landing handleImportSubmit with damaged file test ', () => {
@@ -160,8 +173,15 @@ describe('Software Product Landing Page: ', function () {
onInvalidFileSizeUpload: dummyFunc
};
- let vspLandingView = TestUtils.renderIntoDocument(<SoftwareProductLandingPageView
- {...params}/>);
+ const store = storeCreator();
+
+ let vspLandingView = TestUtils.renderIntoDocument(<Provider store={store}><SoftwareProductLandingPageView
+ {...params}/></Provider>);
+
+ let vspLandingViewWrapper = TestUtils.findRenderedComponentWithType(
+ vspLandingView,
+ SoftwareProductLandingPageView
+ );
expect(vspLandingView).toBeTruthy();
const files = [
{
@@ -170,8 +190,8 @@ describe('Software Product Landing Page: ', function () {
}
];
- vspLandingView.handleImportSubmit(files, false);
- expect(vspLandingView.state.dragging).toEqual(false);
- expect(vspLandingView.state.fileName).toEqual('');
+ vspLandingViewWrapper.handleImportSubmit(files, false);
+ expect(vspLandingViewWrapper.state.dragging).toEqual(false);
+ expect(vspLandingViewWrapper.state.fileName).toEqual('');
});
});
diff --git a/openecomp-ui/tools/gulp/deployment/package.json b/openecomp-ui/tools/gulp/deployment/package.json
deleted file mode 100644
index 5f049057fc..0000000000
--- a/openecomp-ui/tools/gulp/deployment/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "sdc-client-tools",
- "version": "9.3.0",
- "description": "Service Designer & Catalog Client Tools",
- "dependencies": {},
- "devDependencies": {
- "bluebird": "^2.10.1",
- "gulp": "^3.9.0",
- "gulp-rename": "^1.2.2",
- "gulp-replace": "^0.5.4",
- "prompt": "^0.2.14"
- },
- "author": "OPENECOMP",
- "license": "LicenseRef-LICENSE",
- "scripts": {
- "start": "gulp run",
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "engines": {
- "node": ">=0.12.7",
- "npm": ">=2.11.3"
- }
-}
diff --git a/openecomp-ui/tools/gulp/deployment/tools/gulp/tasks/i18nUpdate.js b/openecomp-ui/tools/gulp/deployment/tools/gulp/tasks/i18nUpdate.js
deleted file mode 100644
index d35ae2dafc..0000000000
--- a/openecomp-ui/tools/gulp/deployment/tools/gulp/tasks/i18nUpdate.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/*!
- * 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.
- */
-var gulp, replace, rename, fs, prompt, Promise;
-
-function mergePromptOptions(options) {
-
- return new Promise(function(resolve, reject) {
- var lang = options.lang;
- var warDir = options.warDir;
- prompt.start();
- prompt.get([
- {
- description: 'Enter war directory',
- default: warDir,
- name: 'warDir'
- },
- {
- description: 'Enter locale.json parent directory name',
- default: lang,
- name: 'lang'
- }
- ], function (err, result) {
-
- if(err) {
- reject(new Error('mergePromptOptions::>\n ' + err));
- return;
- }
-
- var warDir = result.warDir;
- var lang = result.lang;
-
- console.log('\nlocale.json parent directory name> "' + lang + '"');
- console.log('war director>"' + warDir + '"');
-
- resolve({
- warDir: warDir,
- lang: lang
- });
- });
- });
-}
-
-function isBundleExists(path) {
- return new Promise(function(resolve) {
- fs.stat(path, function(err) {
- resolve(null == err);
- /*if null == err then file exists.*/
- });
- });
-}
-
-function copyEnglishBundle(enBundlePath, lang) {
- return new Promise(function(resolve, reject) {
- gulp.src(enBundlePath, {base: './'})
- .pipe(rename({basename: 'bundle_' + lang}))
- .pipe(gulp.dest('./'))
- .on('end', function() {
- resolve();
- })
- .on('error', function(err) {
- reject(new Error('copyEnglishBundle::>\n ' + err));
- });
- });
-}
-
-function getLocaleContent(localePath) {
-
- return new Promise(function(resolve, reject) {
- fs.readFile(localePath, {encoding: 'utf-8'}, function(err,data){
- if(err) {
- reject('getLocaleContent()::>\n ' + err);
- return;
- }
- resolve(data);
- });
- });
-
-}
-
-function extractLocaleJsonContent(localeDataStr) {
-
- var localeJsonStrI18nStartIdx = localeDataStr.indexOf('I18N_IDENTIFIER_START');
- var localeJsonStrI18nEndIdx = localeDataStr.indexOf('I18N_IDENTIFIER_END');
-
- if(-1 === localeJsonStrI18nStartIdx || -1 === localeJsonStrI18nEndIdx) {
- return Promise.reject(new Error('extractLocaleJsonContent::> localeDataStr must contain %I18N_IDENTIFIER_START% and %I18N_IDENTIFIER_END%'));
- }
-
- var localeJsonStr = localeDataStr.substring(
- localeDataStr.indexOf('{', localeJsonStrI18nStartIdx),
- localeDataStr.lastIndexOf('}', localeJsonStrI18nEndIdx) + 1
- );
-
- try {
- JSON.parse(localeJsonStr);
- } catch(e) {
- return Promise.reject(new Error('extractLocaleJsonContent::> localeDataStr must contain a valid json between %I18N_IDENTIFIER_START% and %I18N_IDENTIFIER_END%=>' + e));
- }
-
- return Promise.resolve(localeJsonStr);
-}
-
-function setBundleLocaleContent(bundlePath, localeJsonStr) {
- return new Promise(function(resolve, reject) {
- gulp.src(bundlePath, {base: './'})
- .pipe(replace(/I18N_IDENTIFIER_START(.|[\r\n])*?I18N_IDENTIFIER_END/i, function(expr) {
- return expr.substring(0, expr.indexOf('{')) + localeJsonStr + expr.substring(expr.lastIndexOf('}') + 1);
- }))
- .pipe(gulp.dest('./'))
- .on('end', function() {
- resolve();
- })
- .on('error', function(err) {
- reject(new Error('setBundleLocaleContent::>\n ' + err));
- });
- });
-}
-
-
-function update(options) {
-
- gulp = require('gulp');
- replace = require('gulp-replace');
- rename = require('gulp-rename');
- fs = require('fs');
- prompt = require('prompt');
- Promise = require('bluebird');
-
- return mergePromptOptions(options).then(function(mergedOptions) {
- var lang = mergedOptions.lang;
- var warDir = mergedOptions.warDir;
-
- var bundlePath = warDir + '/js/bundle_' + lang + '.js';
- var localePath = warDir + '/i18n/' + lang + '/locale.json';
-
- return isBundleExists(bundlePath)
- .then(function(isBundleExist) {
- var englishBundlePath;
- if(!isBundleExist) {
- englishBundlePath = warDir + '/js/bundle_en.js';
- return copyEnglishBundle(englishBundlePath, lang);
- }
- })
- .then(getLocaleContent.bind(null, localePath))
- .then(extractLocaleJsonContent)
- .then(setBundleLocaleContent.bind(null, bundlePath));
- });
-
-}
-
-
-
-module.exports = update; \ No newline at end of file
diff --git a/openecomp-ui/tools/gulp/tasks/i18n.js b/openecomp-ui/tools/gulp/tasks/i18n.js
index a17e8466b7..85d5c37734 100644
--- a/openecomp-ui/tools/gulp/tasks/i18n.js
+++ b/openecomp-ui/tools/gulp/tasks/i18n.js
@@ -17,56 +17,13 @@ var gulp = require('gulp');
var fs = require('fs');
var replace = require('gulp-replace');
var clean = require('gulp-clean');
-var mkdirp = require('mkdirp');
-
-/**
- *
- * @param options.localesPath
- * @param options.lang = options.lang
- *
- * @returns {string}
- */
-function composeLocalesDirPath(options) {
- return options.localesPath + options.lang;
-}
-
-/**
- *
- * @param options.localesPath
- * @param options.lang
- *
- * @returns {string}
- */
-function composeLocaleFilePath(options) {
- return composeLocalesDirPath(options) + '/locale.json';
-}
-
-
-/**
- *
- * @param options.localesPath
- * @param options.lang = options.lang
- */
-function ensureLocalesDir(options) {
-
- return new Promise(function (resolve, reject) {
- mkdirp(composeLocalesDirPath(options), function (err) {
- if (err) {
- reject(err);
- }
- else {
- resolve();
- }
- });
- });
-}
-
+var tap = require('gulp-tap');
/**
*
* @param options
- * @param options.outputPath
- * @param options.localesPath
- * @param options.lang = options.lang
+ * @param options.outDir
+ * @param options.srcDir
+ * @param options.i18nBundles - optional. if given will check the that all keys from js are mapped
*
*/
function i18nTask(options) {
@@ -75,31 +32,66 @@ function i18nTask(options) {
function addWord(expr) {
var word = expr.substring('i18n(\''.length, expr.length - 1);
- i18nJson[word] = word;
+ if (word !== '') {
+ i18nJson[word] = word;
+ }
return expr;
}
- return ensureLocalesDir(options).then(function () {
- return new Promise(function(resolve, reject) {
- gulp.src(options.outputPath + '**/*.js', {base: './'})
- .pipe(replace(/i18n\('.*?'/g, addWord))
- .pipe(clean())
- .pipe(gulp.dest('./'))
- .on('end', function () {
-
- var i18nJsonWrapper = { dataWrapperArr: ["I18N_IDENTIFIER_START", i18nJson, "I18N_IDENTIFIER_END"] , i18nDataIdx: 1};
-
- fs.writeFile(composeLocaleFilePath(options), JSON.stringify(i18nJsonWrapper), function (err) {
+ let createBundle = new Promise(function(resolve, reject) {
+ gulp.src(options.srcDir + '**/*.{js,jsx}', {base: './'})
+ .pipe(replace(/i18n\('.*?'/g, addWord))
+ .pipe(clean())
+ .pipe(gulp.dest('./'))
+ .on('end', function () {
+ console.log('Retrieved keys from static references.');
+ if (options.i18nBundles === undefined) {
+ // creating the file from the words saved during the replace
+ let outfile = options.outDir + '/bundleForStaticKeys.json';
+ fs.writeFile(outfile,JSON.stringify(i18nJson, null, '\t'), function (err) {
if (err) {
reject(err);
}
else resolve();
});
- }).on('error', function (err) {
- reject(err);
- });
+ console.log('Bundle with static keys was created under: ' + outfile);
+ }
+ resolve();
+ }).on('error', function (err) {
+ reject(err);
});
});
+
+
+ if (options.i18nBundles === undefined) {
+ return createBundle;
+ } else {
+ return createBundle.then(() => {
+ new Promise(function (resolve, reject) {
+ gulp.src(options.i18nBundles)
+ .pipe(tap(function (file) {
+ console.log('Checking against bundle: ' + file.path);
+ let bundle = JSON.parse(file.contents.toString());
+ for (entry in i18nJson) {
+ if (!bundle[entry]) {
+ console.log('Missing Key: ' + entry);
+ } else {
+ delete bundle[entry];
+ }
+ }
+ for (entry in bundle) {
+ console.log('Unused in static files: ' + entry);
+ }
+ }))
+ .pipe(gulp.dest('./'))
+ .on('end', function () {
+ console.log('done');
+ }).on('error', function (err) {
+ reject(err);
+ });
+ });
+ });
+ }
}
module.exports = i18nTask;
diff --git a/openecomp-ui/tools/gulp/tasks/prod.js b/openecomp-ui/tools/gulp/tasks/prod.js
index cb6e251430..509bec857a 100644
--- a/openecomp-ui/tools/gulp/tasks/prod.js
+++ b/openecomp-ui/tools/gulp/tasks/prod.js
@@ -15,65 +15,51 @@
*/
'use strict';
-let gulp, replace, Promise, webpack, webpackProductionConfig;
+let gulp, replace, Promise, webpack, webpackProductionConfig,cloneDeep, tap;
+let langs = [];
-const supportedLanguages = ['en'];
-
-function start(options) {
-
- let promises = [buildIndex(options)];
- supportedLanguages.forEach(function (lang) {
- promises.push(bundleJS(options, lang));
- });
- return Promise.all(promises);
-}
-
-function bundleJS(options, lang) {
+/*
+Runs the webpack build.
+Will first seach for the resource bundles to see how many languages are supported and then run a build per langauage
+ */
+function buildWebPackForLanguage(prodConfig, lang) {
return new Promise(function (resolve, reject) {
- let prodConfig = webpackProductionConfig;
- prodConfig.resolve.alias.i18nJson = options.outDir + '/i18n/' + lang + '/locale.json';
- prodConfig.output.filename = jsFileByLang(options.outFileName, lang);
webpack(prodConfig, function (err, stats) {
- console.log('[webpack:build]', stats.toString());
+ console.log('[webpack:build ' + prodConfig.output.filename + ']', stats.toString());
if (err || stats.hasErrors()) {
- console.log('bundleJS : Failure!!', '\n -language: ', lang);
+ console.log('webpack:build : Failure!! ' + prodConfig.output.filename + ']');
reject(err || stats.toJson().errors);
}
else {
- console.log('bundleJS : Done', '\n -language: ', lang);
+ console.log('webpack:build : Done ' + prodConfig.output.filename + ']');
resolve();
}
});
});
}
-
-function buildIndex(options) {
-
- return new Promise(function (resolve, reject) {
-
- // gulp.src returns a stream object
- gulp.src(options.outDir + '/index.html')
- .pipe(replace(/\/\/<!--prod:delete-->(.|[\r\n])*?<!--\/prod:delete-->/g, ''))//in script occurrences.
- .pipe(replace(/<!--prod:delete-->(.|[\r\n])*?<!--\/prod:delete-->/g, ''))//out of script occurrences.
- .pipe(replace(/<!--prod:add(-->)?/g, ''))
- .pipe(replace(/\/\/<!--prod:supported-langs-->(.|[\r\n])*?<!--\/prod:supported-langs-->/g, supportedLanguages.map(function (val) {
- return "'" + val + "'";
- }).toString()))
+/*
+ // this will check in the src directory which language bundles we have and will
+ // create the array to that we can run a webpack build per language afterwards
+ */
+function getSupportedLanguages(options) {
+ return new Promise((resolve, reject) => {
+ gulp.src(options.i18nBundles)
+ .pipe(tap(function(file) {
+ let languageStartIndex = file.path.lastIndexOf('i18n') + 5;
+ let languageStr = file.path.indexOf('.json') - languageStartIndex;
+ let currentLang = file.path.substr(languageStartIndex, languageStr);
+ console.log('Found bundle ' + file.path + ' for [' + currentLang + ']');
+ langs[currentLang] = file.path;
+ }))
.pipe(gulp.dest(options.outDir))
.on('end', function () {
- console.log('buildIndex : Done');
resolve();
})
.on('error', function (e) {
- console.log('buildIndex : Failure!!');
+ console.log('getLanguages : Failure!!');
reject(e);
});
});
-
-}
-
-function jsFileByLang(fileName, lang) {
- return fileName.replace(/.js$/, '_' + lang + '.js');
}
/**
@@ -85,22 +71,27 @@ function prodTask(options) {
replace = require('gulp-replace');
Promise = require('bluebird');
webpack = require('webpack');
+ cloneDeep = require('lodash/cloneDeep');
+ tap = require('gulp-tap');
+
+ // updating webpack for the production build. no need for sourcemaps in this case.
webpackProductionConfig = require('../../../webpack.production');
- webpackProductionConfig.module.rules = webpackProductionConfig.module.rules.filter(rule => ((rule.enforce !== 'pre') || (rule.enforce === 'pre' && rule.loader !== 'source-map-loader')));
- webpackProductionConfig.module.rules.forEach(loader => {
- if (loader.use && loader.use[0].loader === 'style-loader') {
- loader.use = loader.use.map(loaderObj => loaderObj.loader.replace('?sourceMap', ''));
+
+ // get the languages so that we can bulid per language with the correct bundle
+ let getLanguages =getSupportedLanguages(options);
+ // this will run a webpack build per language
+ return getLanguages.then(() => {
+ let promises = [];
+ for (var lang in langs) {
+ let prodConfig = cloneDeep(webpackProductionConfig);
+ prodConfig.resolve.alias.i18nJson = langs[lang];
+ prodConfig.output.filename = (options.outFileName || '[name].js').replace(/.js$/, '_' + lang + '.js');
+ promises.push(buildWebPackForLanguage(prodConfig, lang));
}
+ return Promise.all(promises);
});
-
- webpackProductionConfig.module.rules.push({test: /config.json$/, use: [{loader:'config-json-loader'}]});
-
- return start({
- outFileName: options.outFileName || '[name].js',
- outDir: options.outDir
- });
}
module.exports = prodTask;
diff --git a/openecomp-ui/webapp-onboarding/WEB-INF/web.xml b/openecomp-ui/webapp-onboarding/WEB-INF/web.xml
index 6dd619fbbc..7840279895 100644
--- a/openecomp-ui/webapp-onboarding/WEB-INF/web.xml
+++ b/openecomp-ui/webapp-onboarding/WEB-INF/web.xml
@@ -41,6 +41,12 @@
<param-name>etags</param-name>
<param-value>true</param-value>
</init-param>
+ <init-param>
+ <param-name>redirects-list</param-name>
+ <param-value>
+ /v1.0/healthcheck
+ </param-value>
+ </init-param>
</servlet>
<servlet-mapping>
diff --git a/openecomp-ui/webpack.common.js b/openecomp-ui/webpack.common.js
index 01f6d98b21..ebe4a8454a 100644
--- a/openecomp-ui/webpack.common.js
+++ b/openecomp-ui/webpack.common.js
@@ -13,7 +13,7 @@ module.exports = {
resolve: {
modules: [path.resolve('.'), path.join(__dirname, 'node_modules')],
alias: {
- i18nJson: 'nfvo-utils/i18n/locale.json',
+ i18nJson: 'nfvo-utils/i18n/en.json', // only for default build, not through gulp
'nfvo-utils': 'src/nfvo-utils',
'nfvo-components': 'src/nfvo-components',
'sdc-app': 'src/sdc-app',
diff --git a/openecomp-ui/webpack.production.js b/openecomp-ui/webpack.production.js
index 1bb9420d33..2dea2170ae 100644
--- a/openecomp-ui/webpack.production.js
+++ b/openecomp-ui/webpack.production.js
@@ -3,9 +3,14 @@
let path = require('path');
let webpack = require('webpack');
+let cloneDeep = require('lodash/cloneDeep');
+let assign = require('lodash/assign');
let webpackCommon = require('./webpack.common');
-let webpackDevConfig = Object.assign({}, webpackCommon, {
+// copying the common config
+let webpackProdConfig = cloneDeep(webpackCommon);
+// setting production settings
+assign( webpackProdConfig, {
devtool: undefined,
cache: true,
output: {
@@ -42,4 +47,11 @@ let webpackDevConfig = Object.assign({}, webpackCommon, {
]
});
-module.exports = webpackDevConfig;
+webpackProdConfig.module.rules = webpackProdConfig.module.rules.filter(rule => ((rule.enforce !== 'pre') || (rule.enforce === 'pre' && rule.loader !== 'source-map-loader')));
+webpackProdConfig.module.rules.forEach(loader => {
+ if (loader.use && loader.use[0].loader === 'style-loader') {
+ loader.use = loader.use.map(loaderObj => loaderObj.loader.replace('?sourceMap', ''));
+ }
+});
+webpackProdConfig.module.rules.push({test: /config.json$/, use: [{loader:'config-json-loader'}]});
+module.exports = webpackProdConfig;
diff --git a/pom.xml b/pom.xml
index b1dfc96bcd..dcb086ce71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
<!-- ==================== -->
<build.type>-SNAPSHOT</build.type>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <sprint.number>73</sprint.number>
+ <sprint.number>74</sprint.number>
<!-- 3rd parties versions -->
<lang3.version>3.3.2</lang3.version>
@@ -549,11 +549,11 @@
<enabled>false</enabled>
</snapshots>
</repository>
- <repository>
+<!-- <repository>
<id>central</id>
<name>Official Maven repository</name>
<url>http://repo2.maven.org/maven2/</url>
- </repository>
+ </repository>-->
<repository>
<id>ecomp-releases</id>
<name>Release Repository</name>
diff --git a/sdc-os-chef/sdc-backend/Dockerfile b/sdc-os-chef/sdc-backend/Dockerfile
index e872919a11..3a39d257e3 100644
--- a/sdc-os-chef/sdc-backend/Dockerfile
+++ b/sdc-os-chef/sdc-backend/Dockerfile
@@ -1,4 +1,13 @@
-FROM jetty:9.3-jre8
+FROM jetty:9.3.15-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
diff --git a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb
index 7cf8d6b7b8..60f1d98415 100644
--- a/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb
+++ b/sdc-os-chef/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/templates/default/BE-configuration.yaml.erb
@@ -22,7 +22,7 @@ beProtocol: http
beSslPort: <%= @ssl_port %>
version: 1.0
released: 2012-11-30
-toscaConformanceLevel: 3.0
+toscaConformanceLevel: 4.0
minToscaConformanceLevel: 3.0
titanCfgFile: /var/lib/jetty/config/catalog-be/titan.properties
@@ -67,7 +67,7 @@ users:
cassandraConfig:
cassandraHosts: [<%= @cassandra_ip %>]
- localDataCenter:
+ localDataCenter: <%= @DC_NAME %>
reconnectTimeout : 30000
authenticate: true
username: asdc_user
@@ -80,6 +80,7 @@ cassandraConfig:
- { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
#Application-specific settings of ES
elasticSearch:
@@ -287,6 +288,9 @@ serviceDeploymentArtifacts:
AAI_SERVICE_MODEL:
acceptedTypes:
- xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
AAI_VF_MODULE_MODEL:
acceptedTypes:
- xml
@@ -525,6 +529,7 @@ onboarding:
host: <%= @host_ip %>
port: <%= @catalog_port %>
downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
# #GSS IDNS
diff --git a/sdc-os-chef/sdc-cassandra/Dockerfile b/sdc-os-chef/sdc-cassandra/Dockerfile
index 3e9295db5e..7af6de1de4 100644
--- a/sdc-os-chef/sdc-cassandra/Dockerfile
+++ b/sdc-os-chef/sdc-cassandra/Dockerfile
@@ -1,5 +1,14 @@
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 \
diff --git a/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb b/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb
index 4d5f979f56..bc96582615 100644
--- a/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb
+++ b/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/templates/default/configuration.yaml.erb
@@ -22,7 +22,8 @@ beProtocol: http
beSslPort: <%= @ssl_port %>
version: 1.0
released: 2012-11-30
-toscaConformanceLevel: 3.0
+toscaConformanceLevel: 4.0
+minToscaConformanceLevel: 3.0
titanCfgFile: <%= @titan_Path %>/titan.properties
titanInMemoryGraph: false
@@ -80,6 +81,7 @@ cassandraConfig:
- { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @dc1 %>','<%= @rep_factor %>']}
#Application-specific settings of ES
elasticSearch:
@@ -519,6 +521,7 @@ onboarding:
host: <%= @host_ip %>
port: <%= @catalog_port %>
downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
# #GSS IDNS
diff --git a/sdc-os-chef/sdc-elasticsearch/Dockerfile b/sdc-os-chef/sdc-elasticsearch/Dockerfile
index de3d43e7f9..89516a6727 100644
--- a/sdc-os-chef/sdc-elasticsearch/Dockerfile
+++ b/sdc-os-chef/sdc-elasticsearch/Dockerfile
@@ -1,5 +1,14 @@
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
diff --git a/sdc-os-chef/sdc-frontend/Dockerfile b/sdc-os-chef/sdc-frontend/Dockerfile
index a59d868f7f..17034ef9e0 100644
--- a/sdc-os-chef/sdc-frontend/Dockerfile
+++ b/sdc-os-chef/sdc-frontend/Dockerfile
@@ -1,5 +1,14 @@
FROM jetty:9.3.15-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
diff --git a/sdc-os-chef/sdc-kibana/Dockerfile b/sdc-os-chef/sdc-kibana/Dockerfile
index be5446e2e9..a42225a91c 100644
--- a/sdc-os-chef/sdc-kibana/Dockerfile
+++ b/sdc-os-chef/sdc-kibana/Dockerfile
@@ -1,5 +1,14 @@
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
diff --git a/sdc-os-chef/sdc-os-common/templates/default/BE-configuration.yaml.erb b/sdc-os-chef/sdc-os-common/templates/default/BE-configuration.yaml.erb
index b26cd9019c..d7acdac3e3 100644
--- a/sdc-os-chef/sdc-os-common/templates/default/BE-configuration.yaml.erb
+++ b/sdc-os-chef/sdc-os-common/templates/default/BE-configuration.yaml.erb
@@ -22,7 +22,7 @@ beProtocol: http
beSslPort: <%= @ssl_port %>
version: 1.0
released: 2012-11-30
-toscaConformanceLevel: 3.0
+toscaConformanceLevel: 4.0
minToscaConformanceLevel: 3.0
titanCfgFile: <%= @titan_Path %>/titan.properties
@@ -67,7 +67,7 @@ users:
cassandraConfig:
cassandraHosts: [<%= @cassandra_ip %>]
- localDataCenter:
+ localDataCenter: <%= @dc1 %>
reconnectTimeout : 30000
authenticate: true
username: asdc_user
@@ -80,6 +80,8 @@ cassandraConfig:
- { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
- { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @DC_NAME %>','<%= @rep_factor %>']}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @dc1 %>', '<%= @rep_factor %>']}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['<%= @dc1 %>', '<%= @rep_factor %>', '<%= @dc2 %>', '<%= @rep_factor %>']}
#Application-specific settings of ES
elasticSearch:
@@ -140,6 +142,7 @@ resourceTypes: &allResourceTypes
- VF
- VFCMT
- Abstract
+ - CVFC
# validForResourceTypes usage
# validForResourceTypes:
@@ -176,6 +179,8 @@ toscaArtifacts:
#Informational artifacts placeHolder
excludeResourceCategory:
- Generic
+excludeResourceType:
+ - PNF
informationalResourceArtifacts:
features:
displayName: Features
@@ -293,6 +298,9 @@ serviceDeploymentArtifacts:
AAI_VF_INSTANCE_MODEL:
acceptedTypes:
- xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
OTHER:
acceptedTypes:
@@ -484,7 +492,15 @@ resourceInformationalArtifacts:
validForResourceTypes: *allResourceTypes
OTHER:
acceptedTypes:
- validForResourceTypes: *allResourceTypes
+ validForResourceTypes:
+ - VFC
+ - CVFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - PNF
SNMP_POLL:
acceptedTypes:
validForResourceTypes: *allResourceTypes
@@ -496,6 +512,7 @@ resourceInformationalArtifacts:
validForResourceTypes:
- VF
- VFC
+ - CVFC
resourceInformationalDeployedArtifacts:
@@ -525,6 +542,7 @@ onboarding:
host: <%= @host_ip %>
port: <%= @catalog_port %>
downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
# #GSS IDNS
@@ -584,6 +602,8 @@ vfModuleProperties:
genericAssetNodeTypes:
VFC: org.openecomp.resource.abstract.nodes.VFC
+ CVFC: org.openecomp.resource.abstract.nodes.VFC
VF : org.openecomp.resource.abstract.nodes.VF
+ PNF: org.openecomp.resource.abstract.nodes.PNF
Service: org.openecomp.resource.abstract.nodes.service
diff --git a/sdc-os-chef/sdc-sanity/Dockerfile b/sdc-os-chef/sdc-sanity/Dockerfile
index dd486102c5..2b29131d81 100644
--- a/sdc-os-chef/sdc-sanity/Dockerfile
+++ b/sdc-os-chef/sdc-sanity/Dockerfile
@@ -1,4 +1,13 @@
FROM ubuntu
+
+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 && apt-get -y install --no-install-recommends apt-utils
RUN apt-get -y install curl
RUN apt-get -y install vim
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
index 3977f16d5a..ea1c9eff8d 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/api/Urls.java
@@ -117,19 +117,19 @@ public interface Urls {
// *****************************************ECOMP User
// URL's*****************************************************
- final String ECOMP_PUSH_USER = "http://%s:%s/api/user";
+ final String ECOMP_PUSH_USER = "http://%s:%s/api/v2/user";
- final String ECOMP_EDIT_USER = "http://%s:%s/api/user/%s";
+ final String ECOMP_EDIT_USER = "http://%s:%s/api/v2/user/%s";
- final String ECOMP_GET_USER = "http://%s:%s/api/user/%s";
+ final String ECOMP_GET_USER = "http://%s:%s/api/v2/user/%s";
- final String ECOMP_GET_ALL_USERS = "http://%s:%s/api/users";
+ final String ECOMP_GET_ALL_USERS = "http://%s:%s/api/v2/users";
- final String ECOMP_GET_ALL_AVAILABLE_ROLES = "http://%s:%s/api/roles";
+ final String ECOMP_GET_ALL_AVAILABLE_ROLES = "http://%s:%s/api/v2/roles";
- final String ECOMP_PUSH_USER_ROLES = "http://%s:%s/api/user/%s/roles";
+ final String ECOMP_PUSH_USER_ROLES = "http://%s:%s/api/v2/user/%s/roles";
- final String ECOMP_GET_USER_ROLES = "http://%s:%s/api/user/%s/roles";
+ final String ECOMP_GET_USER_ROLES = "http://%s:%s/api/v2/user/%s/roles";
// *****************************************Elements*************************************************************
final String GET_TAGS_LIST = "http://%s:%s/sdc2/rest/v1/tags";
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/attribute/ComponentInstanceAttributeTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/attribute/ComponentInstanceAttributeTest.java
index b1d04ba88d..537a70984e 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/attribute/ComponentInstanceAttributeTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/attribute/ComponentInstanceAttributeTest.java
@@ -74,7 +74,7 @@ public class ComponentInstanceAttributeTest extends ComponentBaseTest {
.filter(att -> att.getName().equals("private_address")).findAny().get();
// update attribute on vfc instance
final Resource vfWithInsatncePreUpdate = swallowException(
- () -> (Resource) AtomicOperationUtils.getCompoenntObject(vf, UserRoleEnum.DESIGNER));
+ () -> (Resource) AtomicOperationUtils.getComponentObject(vf, UserRoleEnum.DESIGNER));
ComponentInstanceProperty attributeOfRI = attributeGetter.apply(vfWithInsatncePreUpdate);
final String newAttValue = "NewValue";
attributeOfRI.setValue(newAttValue);
@@ -86,7 +86,7 @@ public class ComponentInstanceAttributeTest extends ComponentBaseTest {
BaseRestUtils.acceptHeaderData));
// Retrieve updated vf and verify attribute was updated
final Resource vfWithInsatncePostUpdate = swallowException(
- () -> (Resource) AtomicOperationUtils.getCompoenntObject(vf, UserRoleEnum.DESIGNER));
+ () -> (Resource) AtomicOperationUtils.getComponentObject(vf, UserRoleEnum.DESIGNER));
ComponentInstanceProperty updatedAttribute = attributeGetter.apply(vfWithInsatncePostUpdate);
assertEquals(updatedAttribute.getValue(), newAttValue);
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
index 6e36e1b675..45c6b18b59 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/AndreyTest.java
@@ -45,26 +45,33 @@ import org.testng.annotations.Test;
public class AndreyTest {
+ private static ToscaDefinition parseToscaYamlToJavaObject;
+
+
public static void main(String[] args) throws Exception {
ToscaDefinition toscaDefinition;
System.out.println("start " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
// File path = new File("C:/Data/D2.0/TOSCA_Ex/Definitions/tosca_definition_version.yaml");
// File path = new File("C:/Data/D2.0/TOSCA_Ex/resource-Vl11Vl10-template.yml");
- File path = new File("C:/Data/D2.0/TOSCA_Ex/service-Servicepxtc-template US822998.yml");
- File csarPath = new File("C:/Data/D2.0/TOSCA_Ex/Nested.csar");
+// File path = new File("C:/Data/D2.0/TOSCA_Ex/service-Servicepxtc-template US822998.yml");
+// File path = new File("C:/Data/FileToParse/Definitions/service-Ciservice513e6fa67d07-template.yml");
+ toscaDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(new File("C:/Data/FileToParse/LDSA/LDSA_amdocs.csar"));
+// File path = new File("C:/Data/FileToParse/Definitions/resource-Civfonboarded2016006VvmVvm301607E2100a9b04-template.yml");
+// File csarPath = new File("C:/Data/D2.0/TOSCA_Ex/Nested.csar");
- toscaDefinition = ToscaParserUtils.parseToscaYamlToJavaObject(path);
+
+// toscaDefinition = ToscaParserUtils.parseToscaYamlToJavaObject(path);
System.out.println("listTypeHeatMetaDefinition start " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
- List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition = CsarParserUtils.getListTypeHeatMetaDefinition(csarPath);
+// List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition = CsarParserUtils.getListTypeHeatMetaDefinition(csarPath);
System.out.println("get service start " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
- System.out.println(listTypeHeatMetaDefinition);
- for(TypeHeatMetaDefinition typeHeatMetaDefinition : listTypeHeatMetaDefinition){
- for(GroupHeatMetaDefinition groupHeatMetaDefinition : typeHeatMetaDefinition.getGroupHeatMetaDefinition()){
- List<HeatMetaFirstLevelDefinition> artifactList = groupHeatMetaDefinition.getArtifactList();
- boolean isBase = groupHeatMetaDefinition.getPropertyHeatMetaDefinition().getValue();
- }
-
- }
+// System.out.println(listTypeHeatMetaDefinition);
+// for(TypeHeatMetaDefinition typeHeatMetaDefinition : listTypeHeatMetaDefinition){
+// for(GroupHeatMetaDefinition groupHeatMetaDefinition : typeHeatMetaDefinition.getGroupHeatMetaDefinition()){
+// List<HeatMetaFirstLevelDefinition> artifactList = groupHeatMetaDefinition.getArtifactList();
+// boolean isBase = groupHeatMetaDefinition.getPropertyHeatMetaDefinition().getValue();
+// }
+//
+// }
System.out.println("Finished");
System.out.println("get service start " + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()));
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
index c52ee470cf..66bc153e70 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/general/BasicHttpAuthenticationTest.java
@@ -238,7 +238,7 @@ public class BasicHttpAuthenticationTest extends ComponentBaseTest {
assertTrue(restResponse.getHeaderFields().containsKey(WWW_AUTHENTICATE));
List<String> getAuthenticateHeader = restResponse.getHeaderFields().get(WWW_AUTHENTICATE);
assertEquals("www-authenticate header contains more then one value", 1, getAuthenticateHeader.size());
- assertTrue(getAuthenticateHeader.get(0).equals("Basic realm=" + "\"ASDC\""));
+ assertTrue(getAuthenticateHeader.get(0).equals("Basic realm=" + "\"SDC\""));
validateAuditAuthentication("", AUTH_REQUIRED, ComponentTypeEnum.SERVICE);
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
index 163504fbb0..a6088deac0 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ExportToscaTest.java
@@ -50,6 +50,7 @@ import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstInputsMap;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.ComponentInstanceInput;
+import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.InputDefinition;
@@ -316,9 +317,9 @@ public class ExportToscaTest extends ComponentBaseTest {
//6 add instance inputs in service
RestResponse getComponentInstanceInputsResponse = InputsRestUtils.getComponentInstanceInputs(service, vfi);
BaseValidationUtils.checkSuccess(getComponentInstanceInputsResponse);
- List<InputDefinition> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<InputDefinition>>(){}.getType());
+ List<ComponentInstancePropInput> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<ComponentInstancePropInput>>(){}.getType());
// Take only the 2 first inputs
- List<InputDefinition> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
+ List<ComponentInstancePropInput> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
//7 Build component instances input map to add to server
ComponentInstInputsMap buildComponentInstInputsMap = buildComponentInstInputsMap(vfi.getUniqueId(), inputsToAdd);
@@ -447,8 +448,8 @@ public class ExportToscaTest extends ComponentBaseTest {
}
return masterArtifact;
}
- private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<InputDefinition> inputs) {
- Map<String, List<InputDefinition>> map = new HashMap<>();
+ private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<ComponentInstancePropInput> inputs) {
+ Map<String, List<ComponentInstancePropInput>> map = new HashMap<>();
map.put(addToInput, inputs);
ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
componentInstInputsMap.setComponentInstanceInputsMap(map);
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaResourceTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaResourceTest.java
index 8ce8dc5433..b460b9fce0 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaResourceTest.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaResourceTest.java
@@ -1816,8 +1816,8 @@ public class ImportToscaResourceTest extends ComponentBaseTest {
importReqDetailsFather.compareRequirementsOrCapabilities(capabilities, capabilitiesFromResponse);
}
- // DE202329
- @Test(enabled = false)
+ // DE202329 - TDP -154379
+ @Test(enabled = true)
public void requirementWithMissingTypeTest() throws Exception {
String fatherName = "father";
String fatherFileName = "DerivedFromWebApplication_HasNoReqType.yml";
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
index 345b81eb3e..560e5389fe 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/inputs/InputsApiTests.java
@@ -37,6 +37,7 @@ import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentInstInputsMap;
import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
@@ -130,10 +131,10 @@ public class InputsApiTests extends ComponentBaseTest {
ComponentInstance vfInstance = serviceInstances.get(0);
RestResponse getComponentInstanceInputsResponse = InputsRestUtils.getComponentInstanceInputs(service, vfInstance);
BaseValidationUtils.checkSuccess(getComponentInstanceInputsResponse);
- List<InputDefinition> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<InputDefinition>>(){}.getType());
+ List<ComponentInstancePropInput> instanceInputs = new Gson().fromJson(getComponentInstanceInputsResponse.getResponse(), new TypeToken<ArrayList<ComponentInstancePropInput>>(){}.getType());
// Take only the 2 first inputs
- List<InputDefinition> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
+ List<ComponentInstancePropInput> inputsToAdd = instanceInputs.stream().limit(2).collect(Collectors.toList());
// Build component instances input map to add to server
ComponentInstInputsMap buildComponentInstInputsMap = buildComponentInstInputsMap(vfInstance.getUniqueId(), inputsToAdd);
@@ -214,8 +215,8 @@ public class InputsApiTests extends ComponentBaseTest {
* @param inputs
* @return {@link org.openecomp.sdc.be.model.ComponentInstInputsMap}
*/
- private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<InputDefinition> inputs) {
- Map<String, List<InputDefinition>> map = new HashMap<>();
+ private ComponentInstInputsMap buildComponentInstInputsMap (String addToInput, List<ComponentInstancePropInput> inputs) {
+ Map<String, List<ComponentInstancePropInput>> map = new HashMap<>();
map.put(addToInput, inputs);
ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap();
componentInstInputsMap.setComponentInstanceInputsMap(map);
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/MultipleResourceUpdate.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/MultipleResourceUpdate.java
index 0a7b4a98aa..a33ee71f9e 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/MultipleResourceUpdate.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/sanity/MultipleResourceUpdate.java
@@ -86,7 +86,7 @@ public class MultipleResourceUpdate extends ComponentBaseTest {
ComponentInstance instanceCP2 = AtomicOperationUtils
.addComponentInstanceToComponentContainer(cp2, vf, UserRoleEnum.DESIGNER, true).left().value();
- vf = (Resource) AtomicOperationUtils.getCompoenntObject(vf, UserRoleEnum.DESIGNER);
+ vf = (Resource) AtomicOperationUtils.getComponentObject(vf, UserRoleEnum.DESIGNER);
// Create Vertex(Link/Associate 2 Resource Instances on Canvas)
AtomicOperationUtils.associate2ResourceInstances(vf, instanceCP1, instanceVL, AssocType.LINKABLE.getAssocType(),
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaDefinition.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaDefinition.java
index 5a89a6766c..18b2329663 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaDefinition.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaDefinition.java
@@ -111,7 +111,7 @@ public class ToscaDefinition {
typeDescription.putMapPropertyType("metadata", String.class, String.class);
// TODO Andrey imports format
typeDescription.putMapPropertyType("imports", String.class, ToscaImportsDefinition.class);
- typeDescription.putListPropertyType("imports", List.class);
+// typeDescription.putListPropertyType("imports", List.class);
typeDescription.putMapPropertyType("node_types", String.class, ToscaNodeTypesDefinition.class);
return typeDescription;
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaParameterConstants.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaParameterConstants.java
new file mode 100644
index 0000000000..18d7d7d97b
--- /dev/null
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaParameterConstants.java
@@ -0,0 +1,9 @@
+package org.openecomp.sdc.ci.tests.tosca.datatypes;
+
+public interface ToscaParameterConstants {
+
+ public static final String ENTRY_DEFINITION = "Entry-Definitions";
+ public static final String TOSCA_META_PATH = "TOSCA-Metadata/TOSCA.meta";
+ public static final String HEAT_META_PATH = "Artifacts/HEAT.meta";
+ public static final String IMPORT_STRUCTURE = "importStructure";
+}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarParserUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarParserUtils.java
index 69c8b2fe2f..cd6687be0e 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarParserUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarParserUtils.java
@@ -30,11 +30,13 @@ import java.util.Set;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
import org.openecomp.sdc.ci.tests.datatypes.GroupHeatMetaDefinition;
import org.openecomp.sdc.ci.tests.datatypes.HeatMetaFirstLevelDefinition;
import org.openecomp.sdc.ci.tests.datatypes.PropertyHeatMetaDefinition;
import org.openecomp.sdc.ci.tests.datatypes.TypeHeatMetaDefinition;
import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
+import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaParameterConstants;
import org.openecomp.sdc.ci.tests.utils.validation.CsarValidationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,40 +44,34 @@ import org.slf4j.LoggerFactory;
public class CsarParserUtils {
private static Logger log = LoggerFactory.getLogger(CsarValidationUtils.class.getName());
- public static List<TypeHeatMetaDefinition> getListTypeHeatMetaDefinition(File csarUUID) throws Exception {
-
- String artifactHeatMetaLocation = "Artifacts/HEAT.meta";
- JSONParser parser = new JSONParser();
- String csarPayload = CsarValidationUtils.getCsarPayload(csarUUID, artifactHeatMetaLocation);
- if (csarPayload != null) {
- Object parse = parser.parse(csarPayload);
- JSONObject jsonObject = (JSONObject) parse;
- JSONObject jsonObjectImportStructure = (JSONObject) jsonObject.get("importStructure");
- List<TypeHeatMetaDefinition> listHeatMetaDefenition = new ArrayList<TypeHeatMetaDefinition>();
- listHeatMetaDefenition = getArtifactsByGroup(jsonObjectImportStructure, listHeatMetaDefenition);
- return listHeatMetaDefenition;
- }
- return null;
+ public static List<TypeHeatMetaDefinition> getListTypeHeatMetaDefinition(File csarFileLocation) throws Exception {
+ String artifactHeatMetaLocation = ToscaParameterConstants.HEAT_META_PATH;
+ String csarPayload = ToscaParserUtils.getYamlPayloadFromCsar(csarFileLocation, artifactHeatMetaLocation);
+ return getListTypeHeatMetaDefinitionByPayload(csarPayload);
}
-
+
public static List<TypeHeatMetaDefinition> getListTypeHeatMetaDefinition(String csarUUID) throws Exception {
+
+ String artifactHeatMetaLocation = ToscaParameterConstants.HEAT_META_PATH;
+ String csarPayload = ToscaParserUtils.getCsarPayload(csarUUID, artifactHeatMetaLocation);
+ return getListTypeHeatMetaDefinitionByPayload(csarPayload);
+ }
- String artifactHeatMetaLocation = "Artifacts/HEAT.meta";
+ public static List<TypeHeatMetaDefinition> getListTypeHeatMetaDefinitionByPayload(String csarPayload) throws ParseException {
JSONParser parser = new JSONParser();
- String csarPayload = CsarValidationUtils.getCsarPayload(csarUUID, artifactHeatMetaLocation);
if (csarPayload != null) {
Object parse = parser.parse(csarPayload);
JSONObject jsonObject = (JSONObject) parse;
- JSONObject jsonObjectImportStructure = (JSONObject) jsonObject.get("importStructure");
+ JSONObject jsonObjectImportStructure = (JSONObject) jsonObject.get(ToscaParameterConstants.IMPORT_STRUCTURE);
List<TypeHeatMetaDefinition> listHeatMetaDefenition = new ArrayList<TypeHeatMetaDefinition>();
listHeatMetaDefenition = getArtifactsByGroup(jsonObjectImportStructure, listHeatMetaDefenition);
return listHeatMetaDefenition;
}
return null;
-
}
+
protected static List<TypeHeatMetaDefinition> getArtifactsByGroup(JSONObject jsonObjectImportStructure, List<TypeHeatMetaDefinition> listHeatMetaDefenition) {
@SuppressWarnings("unchecked")
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
index 26fac7fd6e..3bae41fc57 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/ToscaParserUtils.java
@@ -21,19 +21,30 @@
package org.openecomp.sdc.ci.tests.utils;
import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertTrue;
import java.io.File;
import java.io.FileInputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Map;
import java.util.Set;
import org.openecomp.sdc.ci.tests.datatypes.enums.ToscaKeysEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupsTopologyTemplateDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaNodeTemplatesTopologyTemplateDefinition;
+import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaParameterConstants;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaSubstitutionMappingsDefinition;
import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaTopologyTemplateDefinition;
+import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ImportRestUtils;
import org.openecomp.sdc.ci.tests.utils.validation.CsarValidationUtils;
+import org.openecomp.sdc.common.rest.api.RestResponseAsByteArray;
+import org.openecomp.sdc.common.util.ZipUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.TypeDescription;
@@ -45,20 +56,56 @@ public class ToscaParserUtils {
private static Logger log = LoggerFactory.getLogger(ToscaParserUtils.class.getName());
- public static ToscaDefinition parseToscaYamlToJavaObject(String csarUUID) throws Exception {
+
+ /**method get csarUUID and send GET API request toward BE
+ * @param csarUUID
+ * @return
+ * @throws Exception
+ */
+ public static ToscaDefinition parseToscaYamlToJavaObjectByCsarUuid(String csarUUID) throws Exception {
ToscaDefinition toscaDefinition = null;
- String TOSCAMetaLocation = "TOSCA-Metadata/TOSCA.meta";
+ String TOSCAMetaLocation = ToscaParameterConstants.TOSCA_META_PATH;
Map<?, ?> map = getToscaYamlMap(csarUUID, TOSCAMetaLocation);
assertNotNull("Tosca Entry-Definitions is null", map);
if (map != null) {
- File definitionYamlLocation = (File) map.get("Entry-Definitions");
+ File definitionYamlLocation = (File) map.get(ToscaParameterConstants.ENTRY_DEFINITION);
toscaDefinition = parseToscaYamlToJavaObject(definitionYamlLocation);
}
return toscaDefinition;
}
+ /**method read csar from location
+ * @param csarNameLocation - full path with csar name
+ * @return
+ * @throws Exception
+ */
+ public static ToscaDefinition parseToscaMainYamlToJavaObjectByCsarLocation(File csarNameLocation) throws Exception {
+
+ ToscaDefinition toscaDefinition = null;
+ String TOSCAMetaLocation = ToscaParameterConstants.TOSCA_META_PATH;
+// read file location of main yaml file(location+name) from TOSCA.meta file by
+ Map<?, ?> map = getToscaYamlMap(csarNameLocation, TOSCAMetaLocation);
+
+ assertNotNull("Tosca Entry-Definitions is null", map);
+
+ String definitionYamlLocation = (String) map.get(ToscaParameterConstants.ENTRY_DEFINITION);
+ String csarPayload = getYamlPayloadFromCsar(csarNameLocation, definitionYamlLocation);
+ toscaDefinition = parseToscaYamlPayloadToJavaObject(csarPayload);
+ return toscaDefinition;
+
+ }
+
+ public static ToscaDefinition parseToscaAnyYamlToJavaObjectByCsarLocation(File csarNameLocation, String yamlLocation) throws Exception {
+
+ ToscaDefinition toscaDefinition = null;
+ String csarPayload = getYamlPayloadFromCsar(csarNameLocation, yamlLocation);
+ toscaDefinition = parseToscaYamlPayloadToJavaObject(csarPayload);
+ return toscaDefinition;
+
+ }
+
public static ToscaDefinition parseToscaYamlToJavaObject(File path) throws Exception {
ToscaDefinition toscaDefinition = null;
@@ -72,7 +119,7 @@ public class ToscaParserUtils {
System.out.println("Exception: " + e);
}
- Constructor constructor = getConstructor();
+ Constructor constructor = initToscaDefinitionObject();
Yaml yaml = new Yaml(constructor);
try {
@@ -90,7 +137,7 @@ public class ToscaParserUtils {
public static ToscaDefinition parseToscaYamlPayloadToJavaObject(String payload){
ToscaDefinition toscaDefinition = null;
- Constructor constructor = getConstructor();
+ Constructor constructor = initToscaDefinitionObject();
Yaml yaml = new Yaml(constructor);
try {
@@ -104,23 +151,33 @@ public class ToscaParserUtils {
}
- public static Constructor getConstructor() {
- Constructor constructor = new Constructor(ToscaDefinition.class);
- constructor.addTypeDescription(ToscaDefinition.getTypeDescription());
- constructor.addTypeDescription(ToscaTopologyTemplateDefinition.getTypeDescription());
- constructor.addTypeDescription(ToscaNodeTemplatesTopologyTemplateDefinition.getTypeDescription());
- constructor.addTypeDescription(ToscaGroupsTopologyTemplateDefinition.getTypeDescription());
- constructor.addTypeDescription(ToscaSubstitutionMappingsDefinition.getTypeDescription());
+ public static Constructor initToscaDefinitionObject() {
+ Constructor toscaStructure = new Constructor(ToscaDefinition.class);
+ toscaStructure.addTypeDescription(ToscaDefinition.getTypeDescription());
+ toscaStructure.addTypeDescription(ToscaTopologyTemplateDefinition.getTypeDescription());
+ toscaStructure.addTypeDescription(ToscaNodeTemplatesTopologyTemplateDefinition.getTypeDescription());
+ toscaStructure.addTypeDescription(ToscaGroupsTopologyTemplateDefinition.getTypeDescription());
+ toscaStructure.addTypeDescription(ToscaSubstitutionMappingsDefinition.getTypeDescription());
// Skip properties which are found in YAML, but not found in POJO
PropertyUtils propertyUtils = new PropertyUtils();
propertyUtils.setSkipMissingProperties(true);
- constructor.setPropertyUtils(propertyUtils);
- return constructor;
+ toscaStructure.setPropertyUtils(propertyUtils);
+ return toscaStructure;
}
- public static Map<?, ?> getToscaYamlMap(String csarUUID, String fileLocation) throws Exception {
- String csarPayload = CsarValidationUtils.getCsarPayload(csarUUID, fileLocation);
+ public static Map<?, ?> getToscaYamlMap(String csarUUID, String yamlFileLocation) throws Exception {
+ String csarPayload = getCsarPayload(csarUUID, yamlFileLocation);
+ if (csarPayload != null) {
+ Yaml yaml = new Yaml();
+ Map<?, ?> map = (Map<?, ?>) yaml.load(csarPayload);
+ return map;
+ }
+ return null;
+ }
+
+ public static Map<?, ?> getToscaYamlMap(File csarPath, String yamlFileLocation) throws Exception {
+ String csarPayload = getYamlPayloadFromCsar(csarPath, yamlFileLocation);
if (csarPayload != null) {
Yaml yaml = new Yaml();
Map<?, ?> map = (Map<?, ?>) yaml.load(csarPayload);
@@ -129,6 +186,39 @@ public class ToscaParserUtils {
return null;
}
+
+ public static String getCsarPayload(String csarName, String yamlFileLocation) throws Exception {
+
+ RestResponseAsByteArray csar = ImportRestUtils.getCsar(csarName, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
+ assertTrue("Return response code different from 200", csar.getHttpStatusCode() == BaseRestUtils.STATUS_CODE_SUCCESS);
+ byte[] data = csar.getResponse();
+ return getDataFromZipFileByBytes(yamlFileLocation, data);
+
+ }
+
+ public static String getYamlPayloadFromCsar(File csarName, String fileLocation) throws Exception {
+
+ Path path = csarName.toPath();
+ byte[] data = Files.readAllBytes(path);
+ return getDataFromZipFileByBytes(fileLocation, data);
+
+ }
+
+ /** method get file data from zip data by file location in the zip structure
+ * @param fileLocation
+ * @param data
+ * @return
+ */
+ public static String getDataFromZipFileByBytes(String fileLocation, byte[] data) {
+ Map<String, byte[]> readZip = null;
+ if (data != null && data.length > 0) {
+ readZip = ZipUtil.readZip(data);
+
+ }
+ byte[] artifactsBs = readZip.get(fileLocation);
+ String str = new String(artifactsBs, StandardCharsets.UTF_8);
+ return str;
+ }
/* public static Map<?, ?> getToscaYamlMap(String csarUUID, String fileLocation) throws Exception {
String csarPayload = CsarValidationUtils.getCsarPayload(csarUUID, fileLocation);
if (csarPayload != null) {
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/AtomicOperationUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/AtomicOperationUtils.java
index 207c4bbe02..17148ce8a9 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/AtomicOperationUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/general/AtomicOperationUtils.java
@@ -261,7 +261,7 @@ public final class AtomicOperationUtils {
LifeCycleStatesEnum curentCompState = LifeCycleStatesEnum.findByCompState(component.getLifecycleState().toString());
if (curentCompState == targetState) {
- component = getCompoenntObject(component, userRole);
+ component = getComponentObject(component, userRole);
return Pair.of(component, null);
}
// List<LifeCycleStatesEnum> lifeCycleStatesEnumOrigList = new
@@ -299,7 +299,7 @@ public final class AtomicOperationUtils {
}
}
- Component componentJavaObject = getCompoenntObject(component, userRole);
+ Component componentJavaObject = getComponentObject(component, userRole);
if (validateState == true && isValidationFailed == true) {
assertTrue("change state failed" + lifeCycleStatesResponse.getResponse(), false);
@@ -431,6 +431,12 @@ public final class AtomicOperationUtils {
Service container = ResponseParser.convertServiceResponseToJavaObject(serviceResponse.getResponse());
return container;
}
+
+ public static Service getServiceObject(String uniqueId) throws Exception {
+ RestResponse serviceResponse = ServiceRestUtils.getService(uniqueId);
+ Service container = ResponseParser.convertServiceResponseToJavaObject(serviceResponse.getResponse());
+ return container;
+ }
public static Product getProductObject(Component containerDetails, UserRoleEnum userRole) throws Exception {
User defaultUser = ElementFactory.getDefaultUser(userRole);
@@ -439,7 +445,7 @@ public final class AtomicOperationUtils {
return container;
}
- public static Component getCompoenntObject(Component containerDetails, UserRoleEnum userRole) throws Exception {
+ public static Component getComponentObject(Component containerDetails, UserRoleEnum userRole) throws Exception {
User defaultUser = ElementFactory.getDefaultUser(userRole);
switch (containerDetails.getComponentType()) {
@@ -521,7 +527,7 @@ public final class AtomicOperationUtils {
if (changeComponentInstanceVersionResp.getErrorCode() == BaseRestUtils.STATUS_CODE_SUCCESS) {
- Component compoenntObject = AtomicOperationUtils.getCompoenntObject(containerDetails, userRole);
+ Component compoenntObject = AtomicOperationUtils.getComponentObject(containerDetails, userRole);
ComponentInstance componentInstanceJavaObject = ResponseParser.convertComponentInstanceResponseToJavaObject(changeComponentInstanceVersionResp.getResponse());
return Either.left(Pair.of(compoenntObject, componentInstanceJavaObject));
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
index 25fce34a75..e387cd2544 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/CatalogRestUtils.java
@@ -21,8 +21,7 @@
package org.openecomp.sdc.ci.tests.utils.rest;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import org.openecomp.sdc.ci.tests.api.Urls;
import org.openecomp.sdc.ci.tests.config.Config;
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/LifecycleRestUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/LifecycleRestUtils.java
index d53d2da91b..22a352cbfe 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/LifecycleRestUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/LifecycleRestUtils.java
@@ -262,19 +262,14 @@ public class LifecycleRestUtils extends BaseRestUtils {
LifeCycleStatesEnum LifeCycleStatesEnum) throws Exception {
Config config = Utils.getConfig();
String url = String.format(Urls.CHANGE_COMPONENT_LIFECYCLE_STATE, config.getCatalogBeHost(),
- config.getCatalogBePort(), ComponentTypeEnum.findParamByType(component.getComponentType()),
- component.getUniqueId(), LifeCycleStatesEnum);
- RestResponse LifeCycleStatesEnumServiceResponse = sendPost(url, createLifecycleCommentJson(COMMENT),
- sdncModifierDetails.getUserId(), acceptHeaderData);
+ config.getCatalogBePort(), ComponentTypeEnum.findParamByType(component.getComponentType()), component.getUniqueId(), LifeCycleStatesEnum);
+ RestResponse LifeCycleStatesEnumServiceResponse = sendPost(url, createLifecycleCommentJson(COMMENT), sdncModifierDetails.getUserId(), acceptHeaderData);
if (LifeCycleStatesEnumServiceResponse.getErrorCode() == STATUS_CODE_SUCCESS) {
- String productUniqueId = ResponseParser
- .getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "uniqueId");
+ String productUniqueId = ResponseParser.getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "uniqueId");
component.setUniqueId(productUniqueId);
- String productVersion = ResponseParser
- .getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "version");
+ String productVersion = ResponseParser.getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "version");
component.setVersion(productVersion);
- String newLifecycleState = ResponseParser
- .getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "lifecycleState");
+ String newLifecycleState = ResponseParser.getValueFromJsonResponse(LifeCycleStatesEnumServiceResponse.getResponse(), "lifecycleState");
component.setLifecycleState(LifecycleStateEnum.valueOf(newLifecycleState));
}
return LifeCycleStatesEnumServiceResponse;
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
index ad9f482bc1..95953838c9 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ResponseParser.java
@@ -60,6 +60,7 @@ import org.openecomp.sdc.ci.tests.datatypes.ResourceRespJavaObject;
import org.openecomp.sdc.ci.tests.datatypes.ServiceDistributionStatus;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
import org.openecomp.sdc.ci.tests.utils.Utils;
+import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.google.gson.Gson;
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ServiceRestUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ServiceRestUtils.java
index a93587dbbc..9ba4a906c6 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ServiceRestUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/rest/ServiceRestUtils.java
@@ -94,6 +94,7 @@ public class ServiceRestUtils extends BaseRestUtils {
}
public static RestResponse createService(ServiceReqDetails service, User user) throws Exception {
+
Config config = Utils.getConfig();
String url = String.format(Urls.CREATE_SERVICE, config.getCatalogBeHost(), config.getCatalogBePort());
String serviceBodyJson = gson.toJson(service);
@@ -256,6 +257,7 @@ public class ServiceRestUtils extends BaseRestUtils {
config.getCatalogBePort(), serviceName, serviceVersion);
RestResponse deleteResponse = http.httpSendDelete(url, headersMap);
+ deleteMarkedServices(sdncModifierDetails.getUserId());
return deleteResponse;
}
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/CsarValidationUtils.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/CsarValidationUtils.java
index 0fe11537e4..7423dbc808 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/CsarValidationUtils.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/validation/CsarValidationUtils.java
@@ -44,39 +44,6 @@ import org.openecomp.sdc.common.util.ZipUtil;
public class CsarValidationUtils {
- public static String getCsarPayload(String csarName, String fileLocation) throws Exception {
-
- RestResponseAsByteArray csar = ImportRestUtils.getCsar(csarName, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
- assertTrue("Return response code different from 200", csar.getHttpStatusCode() == BaseRestUtils.STATUS_CODE_SUCCESS);
- Map<String, byte[]> readZip = null;
- byte[] data = csar.getResponse();
- if (data != null && data.length > 0) {
- readZip = ZipUtil.readZip(data);
-
- }
- byte[] artifactsBs = readZip.get(fileLocation);
- String str = new String(artifactsBs, StandardCharsets.UTF_8);
- return str;
-
- }
-
- public static String getCsarPayload(File csarName, String fileLocation) throws Exception {
-
-// RestResponseAsByteArray csar = ImportRestUtils.getCsar(csarName, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
-// assertTrue("Return response code different from 200", csar.getHttpStatusCode() == BaseRestUtils.STATUS_CODE_SUCCESS);
- Map<String, byte[]> readZip = null;
- Path path = csarName.toPath();
-
- byte[] data = Files.readAllBytes(path);
- if (data != null && data.length > 0) {
- readZip = ZipUtil.readZip(data);
- }
- byte[] artifactsBs = readZip.get(fileLocation);
- String str = new String(artifactsBs, StandardCharsets.UTF_8);
- return str;
-
- }
-
public static void validateCsarVfArtifact(String csarUUID, Resource resource) throws Exception {
List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition = CsarParserUtils.getListTypeHeatMetaDefinition(csarUUID);
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
index a680990af8..127ae54784 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/CRUDExternalAPI.java
@@ -80,7 +80,6 @@ import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.AutomationUtils;
import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
import org.openecomp.sdc.ci.tests.utils.validation.DistributionValidationUtils;
@@ -356,42 +355,45 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// create component/s & upload artifact via external api
if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
component = getComponentWithResourceInstanceInTargetLifeCycleState(chosenLifeCycleState, resourceTypeEnum);
-
restResponse = uploadArtifactOfRIIncludingValiditionOfAuditAndResponseCode(component, component.getComponentInstances().get(0), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
- component =AtomicOperationUtils.getCompoenntObject(component, UserRoleEnum.DESIGNER);
-
- if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == chosenLifeCycleState) && (!component.getComponentType().toString().equals(ComponentTypeEnum.RESOURCE.toString()))) {
-// numberOfArtifact = component.getComponentInstances().get(0).getDeploymentArtifacts().size();
- numberOfArtifact = (component.getComponentInstances().get(0).getDeploymentArtifacts() == null ? 0 : component.getComponentInstances().get(0).getDeploymentArtifacts().size());
- } else {
-// numberOfArtifact = component.getComponentInstances().get(0).getDeploymentArtifacts().size() + 1;
- numberOfArtifact = (component.getComponentInstances().get(0).getDeploymentArtifacts() == null ? 0 : component.getComponentInstances().get(0).getDeploymentArtifacts().size());
- }
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+ numberOfArtifact = (component.getComponentInstances().get(0).getDeploymentArtifacts() == null ? 0 : component.getComponentInstances().get(0).getDeploymentArtifacts().size());
} else {
component = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, chosenLifeCycleState, resourceTypeEnum);
-
restResponse = uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
- numberOfArtifact = component.getDeploymentArtifacts().size() + 1;
+ component = updateComponentDetailsByLifeCycleState(chosenLifeCycleState, component);
+ numberOfArtifact = component.getDeploymentArtifacts().size();
}
-
-
ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
- component = getNewerVersionOfComponent(component, chosenLifeCycleState);
-
// Get list of deployment artifact + download them via external API
Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
- Assert.assertEquals(numberOfArtifact, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will be increase by one.");
+ Assert.assertEquals(numberOfArtifact, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifacts will be increase by one.");
// Download the uploaded artifact via external API
downloadResourceDeploymentArtifactExternalAPI(component, deploymentArtifacts.get(responseArtifact.getArtifactLabel()), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentTypeEnum);
-
+ return component;
+ }
+
+ /**
+ * according lifecycle state of component get updated component details
+ * @param chosenLifeCycleState
+ * @param component
+ * @return
+ * @throws Exception
+ */
+ public Component updateComponentDetailsByLifeCycleState(LifeCycleStatesEnum chosenLifeCycleState, Component component) throws Exception {
+ if(LifeCycleStatesEnum.CHECKOUT.equals(chosenLifeCycleState)){
+ component = AtomicOperationUtils.getComponentObject(component, UserRoleEnum.DESIGNER);
+ }else{
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+ }
return component;
}
// Upload artifact via external API + Check auditing for upload operation + Check response of external API
- public RestResponse uploadArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, resourceDetails.getComponentInstances().get(0));
+ public RestResponse uploadArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component component, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, component.getComponentInstances().get(0));
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -406,18 +408,16 @@ public class CRUDExternalAPI extends ComponentBaseTest {
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts");
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
return restResponse;
}
-
-
protected Component getComponentWithResourceInstanceInTargetLifeCycleState(LifeCycleStatesEnum lifeCycleStatesEnum, ResourceTypeEnum resourceTypeEnum) throws Exception {
Component component;
if(resourceTypeEnum == ResourceTypeEnum.VF) {
@@ -426,9 +426,9 @@ public class CRUDExternalAPI extends ComponentBaseTest {
Component resourceInstanceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.getValue(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, null);
AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails, component, UserRoleEnum.DESIGNER, true).left().value();
- // Add artifact to service if asked for certifcationrequest - must be at least one artifact for the flow
- if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == lifeCycleStatesEnum) || (LifeCycleStatesEnum.STARTCERTIFICATION == lifeCycleStatesEnum)) {
- }
+ // Add artifact to service if asked for certification request - must be at least one artifact for the flow
+// if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == lifeCycleStatesEnum) || (LifeCycleStatesEnum.STARTCERTIFICATION == lifeCycleStatesEnum)) {
+// }
AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, component, UserRoleEnum.DESIGNER, true, true).left().value();
component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, lifeCycleStatesEnum, true).getLeft();
} else {
@@ -446,8 +446,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// Upload artifact via external API + Check auditing for upload operation + Check response of external API
- protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails);
+ protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(component, sdncModifierDetails, artifactReqDetails);
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -460,10 +460,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
return restResponse;
@@ -478,7 +478,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// check that this version different for input version
// check that this component uniqueID different from input uniqueID
// Return: that version
- protected Component getNewerVersionOfComponent(Component component, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ protected synchronized Component getNewerVersionOfComponent(Component component, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
Component resourceDetails = null;
if((!lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CHECKOUT)) && (!lifeCycleStatesEnum.equals(LifeCycleStatesEnum.STARTCERTIFICATION))) {
@@ -501,7 +501,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
System.out.println("Service UniqueID: " + resourceDetails.getUniqueId());
// Checking that new version exist + different from old one by unique id
- Assert.assertNotEquals(resourceVersion, resourceNewVersion, "Expected for diffrent resource version.");
+ Assert.assertNotEquals(resourceVersion, resourceNewVersion, "Expected for different resource version.");
Assert.assertNotEquals(resourceUniqueID, resourceNewUniqueID, "Expected that resource will have new unique ID.");
} else {
if(component.getComponentType().equals(ComponentTypeEnum.SERVICE)) {
@@ -518,13 +518,13 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// download deployment via external api + check response code for success (200) + get artifactReqDetails and verify payload + verify audit
- protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, ArtifactDefinition artifactDefinition, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, ComponentTypeEnum componentTypeEnum) throws Exception {
+ protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component component, ArtifactDefinition artifactDefinition, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, ComponentTypeEnum componentTypeEnum) throws Exception {
RestResponse restResponse;
if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
- restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(component.getUUID(), component.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), component.getComponentType().toString());
} else {
- restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(component.getUUID(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), component.getComponentType().toString());
}
Integer responseCode = restResponse.getErrorCode();
@@ -532,7 +532,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
Assert.assertEquals(responseCode,expectedCode, "Response code is not correct.");
- // For known artifact/payload - verify payload of downloaded artfaict
+ // For known artifact/payload - verify payload of downloaded artifact
if (artifactReqDetails != null) {
String response = restResponse.getResponse();
String payloadData = artifactReqDetails.getPayload();
@@ -575,8 +575,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
// download deployment via external api + check response code for success (200) + verify audit
- protected void downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, ArtifactDefinition artifactDefinition, User sdncModifierDetails) throws Exception {
- downloadResourceDeploymentArtifactExternalAPI(resourceDetails, artifactDefinition, sdncModifierDetails, null, resourceDetails.getComponentType());
+ protected void downloadResourceDeploymentArtifactExternalAPI(Component component, ArtifactDefinition artifactDefinition, User sdncModifierDetails) throws Exception {
+ downloadResourceDeploymentArtifactExternalAPI(component, artifactDefinition, sdncModifierDetails, null, component.getComponentType());
}
@@ -821,13 +821,13 @@ public class CRUDExternalAPI extends ComponentBaseTest {
{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-// DE306360 {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-// DE306360 {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
-// DE306360 {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidCheckSum"},
{LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidCheckSum"},
@@ -902,104 +902,104 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
// Upload artifact with invalid type via external API - to long type
- protected void uploadArtifactWithInvalidTypeToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidTypeToLong(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
artifactReqDetails.setArtifactType("dsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfds");
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED.name());
List<String> variables = asList(artifactReqDetails.getArtifactType());
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with invalid type via external API - empty type
- protected void uploadArtifactWithInvalidTypeEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidTypeEmpty(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
artifactReqDetails.setArtifactType("");
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED.name());
List<String> variables = asList(artifactReqDetails.getArtifactType());
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with invalid checksum via external API
- protected void uploadArtifactWithInvalidCheckSum(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidCheckSum(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_INVALID_MD5.name());
List<String> variables = asList();
- uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables);
}
// Upload artifact with valid type & invalid name via external API - name to long
- protected void uploadArtifactWithInvalidNameToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidNameToLong(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
List<String> variables = asList("artifact name", "255");
artifactReqDetails.setArtifactName("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with valid type & invalid name via external API - name is empty
- protected void uploadArtifactWithInvalidNameEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidNameEmpty(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_ARTIFACT_NAME.name());
List<String> variables = asList();
artifactReqDetails.setArtifactName("");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with valid type & invalid label via external API - label to long
- protected void uploadArtifactWithInvalidLabelToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidLabelToLong(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
List<String> variables = asList("artifact label", "255");
artifactReqDetails.setArtifactLabel("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with valid type & invalid label via external API - label is empty
- protected void uploadArtifactWithInvalidLabelEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidLabelEmpty(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_DATA.name());
List<String> variables = asList("artifact label");
artifactReqDetails.setArtifactLabel("");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with invalid description via external API - to long description
- protected void uploadArtifactWithInvalidDescriptionToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidDescriptionToLong(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
List<String> variables = asList("artifact description", "256");
artifactReqDetails.setDescription("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
// Upload artifact with invalid description via external API - empty description
- protected void uploadArtifactWithInvalidDescriptionEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithInvalidDescriptionEmpty(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_DATA.name());
List<String> variables = asList("artifact description");
artifactReqDetails.setDescription("");
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
@@ -1007,14 +1007,14 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// Upload artifact with same label via external API
- protected void uploadArtifactWithSameLabel(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected void uploadArtifactWithSameLabel(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
ComponentInstance componentResourceInstanceDetails) throws Exception {
RestResponse restResponse = null;
if(componentResourceInstanceDetails != null) {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
} else {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
}
@@ -1022,18 +1022,18 @@ public class CRUDExternalAPI extends ComponentBaseTest {
ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_EXIST.name());
List<String> variables = asList(artifactDefinition.getArtifactDisplayName());
- uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null, false);
}
- protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
Integer expectedResponseCode, ComponentInstance componentResourceInstanceDetails, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum, Boolean includeResourceNameInAudit) throws Exception {
RestResponse restResponse;
if(componentResourceInstanceDetails != null) {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, componentResourceInstanceDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(component, sdncModifierDetails, artifactReqDetails, componentResourceInstanceDetails);
} else {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(component, sdncModifierDetails, artifactReqDetails);
}
@@ -1046,30 +1046,30 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
responseArtifact.setUpdaterFullName("");
responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, component.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(component.getComponentType().getValue());
expectedExternalAudit.setARTIFACT_DATA(null);
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentResourceInstanceDetails != null) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + component.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_NAME(component.getComponentInstances().get(0).getNormalizedName());
} else {
if(includeResourceNameInAudit) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
} else {
if((lifeCycleStatesEnum == LifeCycleStatesEnum.CHECKIN) || (lifeCycleStatesEnum == LifeCycleStatesEnum.STARTCERTIFICATION)) {
expectedExternalAudit.setRESOURCE_NAME("");
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, "");
} else {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
}
}
}
@@ -1085,14 +1085,14 @@ public class CRUDExternalAPI extends ComponentBaseTest {
- protected RestResponse uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ protected RestResponse uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
Integer expectedResponseCode, ComponentInstance componentResourceInstanceDetails, ErrorInfo errorInfo, List<String> variables) throws Exception {
RestResponse restResponse;
if(componentResourceInstanceDetails != null) {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfComponentInstanceOnAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
} else {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfTheAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
}
@@ -1109,23 +1109,23 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
responseArtifact.setUpdaterFullName("");
responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, component.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(component.getComponentType().getValue());
expectedExternalAudit.setARTIFACT_DATA(null);
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentResourceInstanceDetails != null) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + component.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_NAME(component.getComponentInstances().get(0).getNormalizedName());
} else {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
}
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
@@ -1542,7 +1542,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
// Verify that it cannot update VFC/VL/CP artifact on VFCi/VLi/CPi - Failure flow
@Test(dataProvider="updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI")
public void updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI(ResourceTypeEnum resourceTypeEnum) throws Exception {
@@ -1571,10 +1570,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
-
-
-
-
@DataProvider(name="updateArtifactOnRIViaExternalAPI", parallel=true)
public static Object[][] dataProviderUpdateArtifactOnRIViaExternalAPI() {
return new Object[][] {
@@ -1602,10 +1597,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
-
-
-
@Test(dataProvider="updateArtifactOnRIViaExternalAPI")
public void updateArtifactOnRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
getExtendTest().log(Status.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
@@ -1619,12 +1610,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
}
-
-
-
-
-
-
@DataProvider(name="updateArtifactOnVfcVlCpRIViaExternalAPI", parallel=true)
public static Object[][] dataProviderUpdateArtifactOnVfcVlCpRIViaExternalAPI() {
return new Object[][] {
@@ -1714,10 +1699,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
-
-
-
@Test(dataProvider="updateArtifactOnVfcVlCpRIViaExternalAPI")
public void updateArtifactOnVfcVlCpRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
getExtendTest().log(Status.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
@@ -1732,15 +1713,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
}
-
-
-
-
-
-
-
-
-
@DataProvider(name="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset", parallel=true)
public static Object[][] dataProviderUpdateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
return new Object[][] {
@@ -1789,8 +1761,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
-
// External API
// Update artifact by diffrent user then creator of asset - Fail
@Test(dataProvider="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
@@ -1812,8 +1782,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
-
// External API
// Upload artifact on VF via external API - happy flow
@Test(dataProvider="updateArtifactOnAssetWhichNotExist")
@@ -1875,7 +1843,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
@Test(dataProvider="updateArtifactOnAssetWhichInInvalidStateForUploading")
public void updateArtifactOnAssetWhichInInvalidStateForUploading(ComponentTypeEnum componentTypeEnum, String artifactType) throws Exception {
getExtendTest().log(Status.INFO, String.format("componentTypeEnum: %s, artifactType: %s", componentTypeEnum, artifactType));
@@ -2065,10 +2032,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
@@ -2100,10 +2067,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
@@ -2135,10 +2102,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
@@ -2170,10 +2137,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
@@ -2205,10 +2172,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
@@ -2241,21 +2208,14 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentInstance != null) {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
} else {
updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactReqDetails, artifactUUID, errorInfo, variables, null, true);
}
}
-
-
-
-
-
-
-
// Unhappy flow - get chosen life cycle state, artifact type and asset type
// update artifact via external API + check audit & response code
@@ -2305,14 +2265,14 @@ public class CRUDExternalAPI extends ComponentBaseTest {
return component;
}
- protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails,
+ protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails,
Integer expectedResponseCode, ComponentInstance componentInstance, ArtifactReqDetails artifactReqDetails, String artifactUUID, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum, Boolean resourceNameInAudit) throws Exception {
RestResponse restResponse;
if(componentInstance != null) {
- restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, componentInstance, artifactUUID);
+ restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(component, sdncModifierDetails, artifactReqDetails, componentInstance, artifactUUID);
} else {
- restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, artifactUUID);
+ restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(component, sdncModifierDetails, artifactReqDetails, artifactUUID);
}
@@ -2326,35 +2286,35 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPDATE_BY_API;
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
responseArtifact.setUpdaterFullName("");
responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, component.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(component.getComponentType().getValue());
expectedExternalAudit.setARTIFACT_DATA("");
expectedExternalAudit.setCURR_ARTIFACT_UUID(artifactUUID);
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentInstance != null) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + component.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(component.getComponentInstances().get(0).getNormalizedName());
} else {
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
if((lifeCycleStatesEnum == LifeCycleStatesEnum.CHECKIN) || (lifeCycleStatesEnum == LifeCycleStatesEnum.STARTCERTIFICATION)) {
if(resourceNameInAudit) {
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
} else {
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedExternalAudit.getRESOURCE_URL());
// body.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
expectedExternalAudit.setRESOURCE_NAME("");
}
} else {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
}
}
@@ -2381,7 +2341,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
return downloadResourceDeploymentArtifactExternalAPI(component, component.getDeploymentArtifacts().get(artifactName), sdncModifierDetails, artifactReqDetails, componentTypeEnum);
}
- // Get deployment artifact of asset
+ // Get deployment artifact of RI
protected Map<String, ArtifactDefinition> getDeploymentArtifactsOfAsset(Component component, ComponentTypeEnum componentTypeEnum) {
Map<String, ArtifactDefinition> deploymentArtifacts = null;
if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
@@ -2447,20 +2407,13 @@ public class CRUDExternalAPI extends ComponentBaseTest {
deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
numberOfArtifact = deploymentArtifacts.size();
-
// create component/s & upload artifact via external api
if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
- if((chosenLifeCycleState == LifeCycleStatesEnum.CERTIFICATIONREQUEST) && (!component.getComponentType().toString().equals(ComponentTypeEnum.RESOURCE.toString()))) {
- numberOfArtifact = numberOfArtifact - 1;
- }
restResponse = updateArtifactOfRIIncludingValiditionOfAuditAndResponseCode(component, component.getComponentInstances().get(0), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID, 200);
} else {
-
restResponse = updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID, 200);
}
-
-
ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
component = getNewerVersionOfComponent(component, chosenLifeCycleState);
@@ -2483,8 +2436,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// Update artifact via external API + Check auditing for upload operation + Check response of external API
- protected RestResponse updateArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, resourceDetails.getComponentInstances().get(0), artifactUUID);
+ protected RestResponse updateArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component component, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, component.getComponentInstances().get(0), artifactUUID);
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -2499,11 +2452,11 @@ public class CRUDExternalAPI extends ComponentBaseTest {
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
return restResponse;
@@ -2511,8 +2464,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// Update artifact via external API + Check auditing for upload operation + Check response of external API
- protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID);
+ protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID);
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -2525,10 +2478,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPDATE_BY_API;
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
@@ -2571,9 +2524,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
};
}
-
-
-
// Delete artifact for Service - Success
@Test(dataProvider="deleteArtifactForServiceViaExternalAPI")
public void deleteArtifactForServiceViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
@@ -2935,7 +2885,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
// External API
- // Delete artifact by diffrent user then creator of asset - Fail
+ // Delete artifact by different user then creator of asset - Fail
@Test(dataProvider="deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
public void deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset(ComponentTypeEnum componentTypeEnum, UserRoleEnum userRoleEnum, LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
getExtendTest().log(Status.INFO, String.format("componentTypeEnum: %s, userRoleEnum %s, lifeCycleStatesEnum %s, artifactType: %s", componentTypeEnum, userRoleEnum, lifeCycleStatesEnum, artifactType));
@@ -2955,10 +2905,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
- 409, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, lifeCycleStatesEnum, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, lifeCycleStatesEnum, true);
} else {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
- 409, null, artifactUUID, errorInfo, variables, lifeCycleStatesEnum, true);
+ errorInfo.getCode(), null, artifactUUID, errorInfo, variables, lifeCycleStatesEnum, true);
}
//TODO
@@ -3000,10 +2950,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 404, component.getComponentInstances().get(0), invalidArtifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), invalidArtifactUUID, errorInfo, variables, null, true);
} else {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 404, null, invalidArtifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, invalidArtifactUUID, errorInfo, variables, null, true);
}
@@ -3014,7 +2964,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER.name());
variables = asList("invalidNormalizedName", ComponentTypeEnum.RESOURCE_INSTANCE.getValue().toLowerCase(), ComponentTypeEnum.SERVICE.getValue(), component.getName());
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 404, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN, true);
} else {
component.setUUID("invalidComponentUUID");
if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE)) {
@@ -3024,7 +2974,7 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
variables = asList("invalidComponentUUID");
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 404, null, artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN, false);
+ errorInfo.getCode(), null, artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN, false);
}
@@ -3065,10 +3015,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 403, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null, true);
} else {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 403, null, artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), null, artifactUUID, errorInfo, variables, null, true);
}
@@ -3110,17 +3060,17 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
List<String> variables = asList(artifactUUID);
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- 404, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null, true);
+ errorInfo.getCode(), component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null, true);
}
- protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails,
+ protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails,
Integer expectedResponseCode, ComponentInstance componentInstance, String artifactUUID, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum, Boolean resourceNameInAudit) throws Exception {
RestResponse restResponse;
if(componentInstance != null) {
- restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, componentInstance, artifactUUID);
+ restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(component, sdncModifierDetails, componentInstance, artifactUUID);
} else {
- restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactUUID);
+ restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(component, sdncModifierDetails, artifactUUID);
}
@@ -3133,37 +3083,37 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_DELETE_BY_API;
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
responseArtifact.setUpdaterFullName("");
responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, component.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(component.getComponentType().getValue());
expectedExternalAudit.setARTIFACT_DATA(null);
expectedExternalAudit.setCURR_ARTIFACT_UUID(artifactUUID);
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
if(componentInstance != null) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + component.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(component.getComponentInstances().get(0).getNormalizedName());
} else {
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
if((errorInfo.getMessageId().equals(ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name()).getMessageId())) ||
errorInfo.getMessageId().equals(ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE.name()).getMessageId()) ||
(lifeCycleStatesEnum == LifeCycleStatesEnum.STARTCERTIFICATION)) {
if(resourceNameInAudit) {
- expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_NAME(component.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
} else {
expectedExternalAudit.setRESOURCE_NAME("");
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedExternalAudit.getRESOURCE_URL());
}
} else {
if(resourceNameInAudit) {
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
} else {
expectedExternalAudit.setRESOURCE_NAME("");
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedExternalAudit.getRESOURCE_URL());
@@ -3185,7 +3135,11 @@ public class CRUDExternalAPI extends ComponentBaseTest {
protected Component deleteArtifactOnAssetViaExternalAPI(Component component, ComponentTypeEnum componentTypeEnum, LifeCycleStatesEnum chosenLifeCycleState) throws Exception {
String artifactName = null;
component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, chosenLifeCycleState, true).getLeft();
-
+ if(!LifeCycleStatesEnum.CHECKOUT.equals(chosenLifeCycleState)){
+ component = AtomicOperationUtils.getComponentObject(component, UserRoleEnum.DESIGNER);
+ }else{
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+ }
// get updated artifact data
String artifactUUID = null;
int moduleTypeArtifact = 0;
@@ -3202,12 +3156,9 @@ public class CRUDExternalAPI extends ComponentBaseTest {
break;
}
}
-
String componentVersionBeforeDelete = component.getVersion();
int numberOfArtifact = deploymentArtifacts.size();
-
-
// create component/s & upload artifact via external api
if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
@@ -3215,8 +3166,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
} else {
deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID, 200);
}
-
- component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+
+ component = updateComponentDetailsByLifeCycleState(chosenLifeCycleState, component);
// Get list of deployment artifact + download them via external API
deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
@@ -3228,7 +3179,6 @@ public class CRUDExternalAPI extends ComponentBaseTest {
} else {
Assert.assertEquals(numberOfArtifact - 1, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will decrease by one.");
}
-
if(chosenLifeCycleState == LifeCycleStatesEnum.CHECKOUT) {
Assert.assertEquals(componentVersionBeforeDelete, component.getVersion(), "Expected that check-out component will not change version number.");
@@ -3242,8 +3192,8 @@ public class CRUDExternalAPI extends ComponentBaseTest {
}
// Delete artifact via external API + Check auditing for upload operation + Check response of external API
- protected RestResponse deleteArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentInstances().get(0), artifactUUID);
+ protected RestResponse deleteArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component component, ComponentInstance componentInstance, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), component.getComponentInstances().get(0), artifactUUID);
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -3258,20 +3208,20 @@ public class CRUDExternalAPI extends ComponentBaseTest {
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
- expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + component.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
-
+ component = AtomicOperationUtils.getComponentObject(component, UserRoleEnum.DESIGNER);
return restResponse;
}
// Delete artifact via external API + Check auditing for upload operation + Check response of external API
- protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
- RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID);
+ protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component component, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID);
// Check response of external API
Integer responseCode = restResponse.getErrorCode();
@@ -3284,26 +3234,26 @@ public class CRUDExternalAPI extends ComponentBaseTest {
AuditingActionEnum action = AuditingActionEnum.ARTIFACT_DELETE_BY_API;
Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
- body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
- AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((component.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, component);
expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
-
+ component = AtomicOperationUtils.getComponentObject(component, UserRoleEnum.DESIGNER);
return restResponse;
}
// download deployment via external api + check response code for success (200) + get artifactReqDetails and verify payload + verify audit
- protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, User sdncModifierDetails, String artifactUUID, ComponentTypeEnum componentTypeEnum) throws Exception {
+ protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component component, User sdncModifierDetails, String artifactUUID, ComponentTypeEnum componentTypeEnum) throws Exception {
RestResponse restResponse;
if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
- restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(component.getUUID(), component.getComponentInstances().get(0).getNormalizedName(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), component.getComponentType().toString());
} else {
- restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(component.getUUID(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), component.getComponentType().toString());
}
Integer responseCode = restResponse.getErrorCode();
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/GetCSARofVF.java b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/GetCSARofVF.java
index 6acc54b54c..9d56316b18 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/GetCSARofVF.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/GetCSARofVF.java
@@ -20,11 +20,10 @@
package org.openecomp.sdc.externalApis;
-import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
@@ -34,58 +33,27 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.io.IOUtils;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Rule;
import org.junit.rules.TestName;
-import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-import org.openecomp.sdc.be.model.ArtifactUiDownloadData;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
-import org.openecomp.sdc.ci.tests.api.Urls;
-import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ResourceAssetStructure;
-import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ServiceAssetStructure;
-import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedExternalAudit;
-import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
-import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
-import org.openecomp.sdc.ci.tests.utils.Utils;
-import org.openecomp.sdc.ci.tests.utils.cassandra.CassandraUtils;
import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
-import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.AssetRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
-import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
-import org.openecomp.sdc.common.api.Constants;
import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import static org.testng.AssertJUnit.assertTrue;
-
-import com.google.gson.Gson;
-
-import fj.data.Either;
public class GetCSARofVF extends ComponentBaseTest {
@@ -224,22 +192,42 @@ public class GetCSARofVF extends ComponentBaseTest {
}
-
-
-
-
+ /**
+ * all files in list(expectedDefinitionFolderFileList) must be found in csar file
+ * @param resource
+ * @param toscaModelCsarFile
+ * @throws ZipException
+ * @throws IOException
+ */
public void validateCsarContent(Component resource, File toscaModelCsarFile) throws ZipException, IOException {
ZipFile zipFile = new ZipFile(toscaModelCsarFile);
+ List<String> expectedDefinitionFolderFileList = new ArrayList<String>();
+ expectedDefinitionFolderFileList.add("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template.yml");
+ expectedDefinitionFolderFileList.add("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template-interface.yml");
+ expectedDefinitionFolderFileList.add("Definitions/relationships.yml");
+ expectedDefinitionFolderFileList.add("Definitions/policies.yml");
+ expectedDefinitionFolderFileList.add("Definitions/nodes.yml");
+ expectedDefinitionFolderFileList.add("Definitions/interfaces.yml");
+ expectedDefinitionFolderFileList.add("Definitions/groups.yml");
+ expectedDefinitionFolderFileList.add("Definitions/data.yml");
+ expectedDefinitionFolderFileList.add("Definitions/capabilities.yml");
+ expectedDefinitionFolderFileList.add("Definitions/artifacts.yml");
+
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while(entries.hasMoreElements()){
ZipEntry nextElement = entries.nextElement();
if (!(nextElement.getName().contains("Artifacts")||nextElement.getName().contains("csar.meta"))){
- assertTrue("missing file in csar template", (nextElement.getName().equals("TOSCA-Metadata/TOSCA.meta") ||
- nextElement.getName().equals("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template.yml")) ||
- nextElement.getName().equals("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template-interface.yml"));
+// assertTrue("missing file in csar template", (nextElement.getName().equals("TOSCA-Metadata/TOSCA.meta") ||
+// nextElement.getName().equals("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template.yml")) ||
+// nextElement.getName().equals("Definitions/"+ resource.getComponentType().getValue().toLowerCase()+"-"+ resource.getSystemName()+"-template-interface.yml"));
+ if(expectedDefinitionFolderFileList.contains(nextElement.getName())){
+ expectedDefinitionFolderFileList.remove(nextElement.getName());
}
}
+ }
+ zipFile.close();
+ assertTrue("missing files in csar template definitions folder", expectedDefinitionFolderFileList.size() == 0);
}
public void validateAudit(Component resource) throws Exception {
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/VFCMTExternalAPI.java b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/VFCMTExternalAPI.java
index f93958542d..6e212d3155 100644
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/VFCMTExternalAPI.java
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/externalApis/VFCMTExternalAPI.java
@@ -216,10 +216,10 @@ public class VFCMTExternalAPI extends ComponentBaseTest {
// Various failure flows
@Test(dataProvider="createVfcmtVariousFailureFlows")
public void createVfcmtVariousFailureFlows(String flow) throws Exception {
-
+ //TODO: check what happens now, test will prbably fail
if(flow.equals("resource_type_missing") || flow.equals("resource_type_invalid")) {
throw new SkipException("TC require repairs");
- }
+ }
User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
ResourceExternalReqDetails defaultResource = ElementFactory.getDefaultResourceByType("ci", ResourceCategoryEnum.TEMPLATE_MONITORING_TEMPLATE, defaultUser.getUserId(), ResourceTypeEnum.VFCMT.toString());
@@ -272,21 +272,21 @@ public class VFCMTExternalAPI extends ComponentBaseTest {
case "description_with_invalid_char":
defaultResource.setDescription("\uC2B5");
expectedResourceAuditJavaObject.setDesc("t");
- errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_INVALID_DESCRIPTION.name());
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_RESOURCE_TYPE.name());
variables = asList(ComponentTypeEnum.RESOURCE.getValue());
break;
// TODO: defect on the flow - need to get error instead create VFC
case "resource_type_missing":
defaultResource.setResourceType("");
expectedResourceAuditJavaObject.setResourceType("");
- errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_MISSING_DESCRIPTION.name());
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_CONTENT.name());
variables = asList(ComponentTypeEnum.RESOURCE.getValue());
break;
// TODO: in audit RESOURCE_NAME is empty
case "resource_type_invalid":
defaultResource.setResourceType("invalid");
expectedResourceAuditJavaObject.setResourceType(ComponentTypeEnum.RESOURCE.getValue());
- errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_CONTENT.name());
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_RESOURCE_TYPE.name());
variables = asList(ComponentTypeEnum.RESOURCE.getValue());
break;
case "category_type_missing":
@@ -377,7 +377,7 @@ public class VFCMTExternalAPI extends ComponentBaseTest {
// create vfcmt
RestResponse restResponse = ResourceRestUtilsExternalAPI.createResource(defaultResource, defaultUser);
- expectedResourceAuditJavaObject.setStatus("400");
+ expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
expectedResourceAuditJavaObject.setDesc(AuditValidationUtils.buildAuditDescription(errorInfo, variables));
AuditValidationUtils.validateAuditExternalCreateResource(expectedResourceAuditJavaObject, action.getName(), body);
diff --git a/test-apis-ci/src/main/resources/ci/conf/attsdc.yaml b/test-apis-ci/src/main/resources/ci/conf/attsdc.yaml
index 7273344672..10402eb2b0 100644
--- a/test-apis-ci/src/main/resources/ci/conf/attsdc.yaml
+++ b/test-apis-ci/src/main/resources/ci/conf/attsdc.yaml
@@ -1,6 +1,6 @@
outputFolder: target
reportName: index.html
-catalogBeHost: behost
+catalogBeHost: localhost
catalogFeHost: fehost
esHost: eshost
disributionClientHost: disClient
diff --git a/test-apis-ci/src/test/resources/CI/error-configuration.yaml b/test-apis-ci/src/test/resources/CI/error-configuration.yaml
index ef7a885678..899a225152 100644
--- a/test-apis-ci/src/test/resources/CI/error-configuration.yaml
+++ b/test-apis-ci/src/test/resources/CI/error-configuration.yaml
@@ -1776,3 +1776,9 @@ errors:
message: "Creation of %1 failed. Generic type %2 was not found",
messageId: "SVC4660"
}
+ #---------SVC4669-----------------------------
+ INVALID_RESOURCE_TYPE: {
+ code: 400,
+ message: "Error: Invalid resource type.",
+ messageId: "SVC4669"
+ } \ No newline at end of file
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/MIBsArtifactsOnResourceInstance.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/MIBsArtifactsOnResourceInstance.java
index 949a20b4a9..4e4192fe7e 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/MIBsArtifactsOnResourceInstance.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/MIBsArtifactsOnResourceInstance.java
@@ -78,10 +78,6 @@ public class MIBsArtifactsOnResourceInstance extends SetupCDTest {
setLog("mibsArtifactCRUDUi");
String filePath = FileHandling.getFilePath(folder);
- if(true){
- throw new SkipException("Open bug 197101");
- }
-
// import Resource
ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(resourceTypeEnum, getUser());
ResourceUIUtils.importVfc(resourceMetaData, filePath, fileName, getUser());
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/DataTestIdEnum.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/DataTestIdEnum.java
index ef510b8a12..fd6980fddd 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/DataTestIdEnum.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/datatypes/DataTestIdEnum.java
@@ -433,19 +433,19 @@ public final class DataTestIdEnum {
}
public enum StepsEnum {
- GENERAL("Generalstep"),
+ GENERAL("General"),
ICON("Iconstep"),
- DEPLOYMENT_ARTIFACT("Deployment Artifactstep"),
- INFORMATION_ARTIFACT("Information Artifactstep"),
- PROPERTIES("Propertiesstep"),
- COMPOSITION("Compositionstep"),
- ACTIVITY_LOG("Activity Logstep"),
- DEPLOYMENT_VIEW("Deploymentstep"),
- TOSCA_ARTIFACTS("TOSCA Artifactsstep"),
- MONITOR("Monitor step"),
- MANAGEMENT_WORKFLOW("Management Workflowstep"),
- INPUTS("Inputsstep"),
- HIERARCHY("Hierarchystep");
+ DEPLOYMENT_ARTIFACT("Deployment Artifact"),
+ INFORMATION_ARTIFACT("Information Artifact"),
+ PROPERTIES("Properties"),
+ COMPOSITION("Composition"),
+ ACTIVITY_LOG("Activity Log"),
+ DEPLOYMENT_VIEW("Deployment"),
+ TOSCA_ARTIFACTS("TOSCA Artifacts"),
+ MONITOR("Monitor "),
+ MANAGEMENT_WORKFLOW("Management Workflow"),
+ INPUTS("Inputs"),
+ HIERARCHY("Hierarchy");
private String value;
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/CatalogLeftPanelTest.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/CatalogLeftPanelTest.java
index 10389d9331..519f1e1a76 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/CatalogLeftPanelTest.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/CatalogLeftPanelTest.java
@@ -72,7 +72,7 @@ public class CatalogLeftPanelTest extends SetupCDTest{
public static String[] resourceTypes = Arrays.stream(ResourceTypeEnum.class.getEnumConstants()).
map(ResourceTypeEnum::name).toArray(String[]::new);
- public static String[] catalogTypes = {"RESOURCE", "SERVICE", "PRODUCT"};
+ public static String[] catalogTypes = {"RESOURCE", "SERVICE"};
public static Object[][] provideData(String[] arObj) {
Object[][] arObject = new Object[arObj.length][];
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Onboard.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Onboard.java
index fddb97ace3..76723bba11 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Onboard.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Onboard.java
@@ -27,9 +27,11 @@ import java.awt.AWTException;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Random;
import java.util.stream.Collectors;
import org.openecomp.sdc.ci.tests.datatypes.CanvasElement;
@@ -94,6 +96,36 @@ public class Onboard extends SetupCDTest {
return provideData(fileNamesFromFolder, filepath);
}
+
+ @DataProvider(name = "randomVNF_List", parallel = false)
+ private static final Object[][] randomVnfList() throws Exception {
+ int randomElementNumber = 3; //how many VNFs to onboard randomly
+ String filepath = getFilePath();
+ Object[] fileNamesFromFolder = FileHandling.getZipFileNamesFromFolder(filepath);
+ Object[] newRandomFileNamesFromFolder = getRandomElements(randomElementNumber, fileNamesFromFolder);
+ System.out.println(String.format("There are %s zip file(s) to test", newRandomFileNamesFromFolder.length));
+ return provideData(newRandomFileNamesFromFolder, filepath);
+ }
+
+
+ private static Object[] getRandomElements(int randomElementNumber, Object[] fileNamesFromFolder) {
+ if(fileNamesFromFolder.length == 0 || fileNamesFromFolder.length < randomElementNumber){
+ return null;
+ }else{
+ List<Integer> indexList = new ArrayList<>();
+ Object[] newRandomFileNamesFromFolder = new Object[randomElementNumber];
+ for(int i = 0; i < fileNamesFromFolder.length; i++){
+ indexList.add(i);
+ }
+ Collections.shuffle(indexList);
+ Integer[] randomArray = indexList.subList(0, randomElementNumber).toArray(new Integer[randomElementNumber]);
+ for(int i = 0; i < randomArray.length; i++){
+ newRandomFileNamesFromFolder[i] = fileNamesFromFolder[randomArray[i]];
+ }
+ return newRandomFileNamesFromFolder;
+ }
+ }
+
public static String getFilePath() {
String filepath = System.getProperty("filepath");
if (filepath == null && System.getProperty("os.name").contains("Windows")) {
@@ -116,6 +148,7 @@ public class Onboard extends SetupCDTest {
runOnboardToDistributionFlow(filepath, vnfFile);
}
+
public void runOnboardToDistributionFlow(String filepath, String vnfFile) throws Exception, AWTException {
Pair<String,Map<String,String>> onboardAndValidate = OnboardingUtils.onboardAndValidate(filepath, vnfFile, getUser());
String vspName = onboardAndValidate.left;
@@ -193,6 +226,14 @@ public class Onboard extends SetupCDTest {
runOnboardToDistributionFlow(filepath, vnfFile);
}
+ @Test(dataProvider = "randomVNF_List")
+ public void onboardRandomVNFsTest(String filepath, String vnfFile) throws Exception, Throwable {
+ setLog(vnfFile);
+ System.out.println("printttttttttttttt - >" + makeDistributionValue);
+ System.out.println("vnf File name is: " + vnfFile);
+ runOnboardToDistributionFlow(filepath, vnfFile);
+ }
+
@Test
public void onboardUpdateVNFTest() throws Exception, Throwable {
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/OnboardViaApis.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/OnboardViaApis.java
index cb647aec6d..0dc6740c30 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/OnboardViaApis.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/OnboardViaApis.java
@@ -25,6 +25,7 @@ import static org.testng.AssertJUnit.assertEquals;
import java.awt.AWTException;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.sql.Timestamp;
import java.util.ArrayList;
@@ -40,6 +41,7 @@ import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.ServiceDistributionStatus;
import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
@@ -49,6 +51,8 @@ import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.openecomp.sdc.toscaparser.api.common.JToscaException;
import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
@@ -125,6 +129,34 @@ public class OnboardViaApis{
}
+
+ @Test
+ public void onboardingAndParser() throws Exception {
+ Service service = null;
+ String filepath = getFilePath();
+ Object[] fileNamesFromFolder = FileHandling.getZipFileNamesFromFolder(filepath);
+ String vnfFile = fileNamesFromFolder[7].toString();
+ System.err.println(timestamp + " Starting test with VNF: " + vnfFile);
+ service = runOnboardViaApisOnly(filepath, vnfFile);
+
+// AtomicOperationUtils.getServiceObjectByNameAndVersion(sdncModifierDetails, serviceName, serviceVersion);
+// RestResponse distributeService = AtomicOperationUtils.distributeService(service, true);
+// Map<Long, ServiceDistributionStatus> convertServiceDistributionStatusToObject = ResponseParser.convertServiceDistributionStatusToObject(distributeService.getResponse());
+// convertServiceDistributionStatusToObject.
+ }
+
+ public static String getFilePath() {
+ String filepath = System.getProperty("filepath");
+ if (filepath == null && System.getProperty("os.name").contains("Windows")) {
+ filepath = FileHandling.getResourcesFilesPath() +"VNFs";
+ }
+
+ else if(filepath.isEmpty() && !System.getProperty("os.name").contains("Windows")){
+ filepath = FileHandling.getBasePath() + File.separator + "Files" + File.separator +"VNFs";
+ }
+ return filepath;
+ }
+
public static void downloadToscaCsarToDirectory(Service service, File file) {
try {
Either<String,RestResponse> serviceToscaArtifactPayload = AtomicOperationUtils.getServiceToscaArtifactPayload(service, "assettoscacsar");
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Service.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Service.java
index d5920a22ca..3a42d22d0e 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Service.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Service.java
@@ -387,10 +387,6 @@ public class Service extends SetupCDTest {
@Test
public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
- if(true){
- throw new SkipException("Open bug 300513");
- }
-
ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
@@ -405,10 +401,6 @@ public class Service extends SetupCDTest {
@Test
public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
- if(true){
- throw new SkipException("Open bug 300513");
- }
-
ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
@@ -434,10 +426,6 @@ public class Service extends SetupCDTest {
@Test
public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
- if(true){
- throw new SkipException("Open bug 300513");
- }
-
ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Vf.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Vf.java
index a94a63500d..ef7a534ee9 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Vf.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/Vf.java
@@ -231,10 +231,6 @@ public class Vf extends SetupCDTest {
@Test
public void addPropertiesToVfcInstanceInVfTest() throws Exception {
- if(true){
- throw new SkipException("Open bug 292047");
- }
-
String fileName = "vFW_VFC.yml";
ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/setup/DriverFactory.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/setup/DriverFactory.java
index 00c9ff4db4..705f0decaf 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/setup/DriverFactory.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/setup/DriverFactory.java
@@ -96,7 +96,7 @@ public class DriverFactory {
webDriverThread.quitDriver();
}
- MobProxy.removeAllProxyServers();
+// MobProxy.removeAllProxyServers();
deleteDownloadDirs();
}
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/utilities/OnboardingUtils.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/utilities/OnboardingUtils.java
index 621cc26a12..ae05e77aff 100644
--- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/utilities/OnboardingUtils.java
+++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/utilities/OnboardingUtils.java
@@ -506,6 +506,7 @@ public class OnboardingUtils {
jObject.put("description", "new VSP description");
jObject.put("category", "resourceNewCategory.generic");
jObject.put("subCategory", "resourceNewCategory.generic.database");
+ jObject.put("onboardingMethod", "HEAT");
jObject.put("licensingVersion", jlicensingVersionObj);
jObject.put("vendorName", vendorName);
jObject.put("vendorId", vendorId);
@@ -669,7 +670,7 @@ public class OnboardingUtils {
boolean vspFound = HomePage.searchForVSP(vspName);
if (vspFound){
-
+
List<WebElement> elemenetsFromTable = HomePage.getElemenetsFromTable();
// WebDriverWait wait = new WebDriverWait(GeneralUIUtils.getDriver(), 30);
// WebElement findElement = wait.until(ExpectedConditions.visibilityOf(elemenetsFromTable.get(1)));
@@ -767,24 +768,36 @@ public class OnboardingUtils {
LinkedList<HeatMetaFirstLevelDefinition> deploymentArtifacts = ((LinkedList<HeatMetaFirstLevelDefinition>) combinedMap.get("Deployment"));
ArtifactsCorrelationManager.addVNFartifactDetails(vspName, deploymentArtifacts);
- validateDeploymentArtifactsVersion(deploymentArtifacts);
+ List<String> heatEnvFilesFromCSAR = deploymentArtifacts.stream().filter(e -> e.getType().equals("HEAT_ENV")).
+ map(e -> e.getFileName()).
+ collect(Collectors.toList());
+
+ validateDeploymentArtifactsVersion(deploymentArtifacts, heatEnvFilesFromCSAR);
+
DeploymentArtifactPage.verifyArtifactsExistInTable(filepath, vnfFile);
return createVendorSoftwareProduct;
}
- public static void validateDeploymentArtifactsVersion(LinkedList<HeatMetaFirstLevelDefinition> deploymentArtifacts) {
- String artifactVersion = "1";
+ public static void validateDeploymentArtifactsVersion(LinkedList<HeatMetaFirstLevelDefinition> deploymentArtifacts,
+ List<String> heatEnvFilesFromCSAR) {
+ String artifactVersion;
String artifactName;
-
+
for(HeatMetaFirstLevelDefinition deploymentArtifact: deploymentArtifacts) {
+ artifactVersion = "1";
+
if(deploymentArtifact.getType().equals("HEAT_ENV")) {
continue;
} else if(deploymentArtifact.getFileName().contains(".")) {
- artifactName = deploymentArtifact.getFileName().trim().substring(0, deploymentArtifact.getFileName().lastIndexOf("."));
+ artifactName = deploymentArtifact.getFileName().trim().substring(0, deploymentArtifact.getFileName().lastIndexOf("."));
} else {
- artifactName = deploymentArtifact.getFileName().trim();
+ artifactName = deploymentArtifact.getFileName().trim();
+ }
+
+ if (heatEnvFilesFromCSAR.contains(artifactName + ".env")){
+ artifactVersion = "2";
}
- ArtifactUIUtils.validateArtifactNameVersionType(artifactName, artifactVersion, deploymentArtifact.getType());
+ ArtifactUIUtils.validateArtifactNameVersionType(artifactName, artifactVersion, deploymentArtifact.getType());
}
}